فهرست منبع

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

LAPTOP-KB9HII50\70708 1 هفته پیش
والد
کامیت
fe1eb6005c

+ 15 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/dao/WlyyReservationInfoDao.java

@ -0,0 +1,15 @@
package com.yihu.jw.hospital.prescription.dao;
import com.yihu.jw.entity.hospital.prescription.WlyyReservationInfoDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Trick on 2019/6/3.
 */
public interface WlyyReservationInfoDao extends PagingAndSortingRepository<WlyyReservationInfoDO, String>, JpaSpecificationExecutor<WlyyReservationInfoDO> {
}

+ 13 - 12
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/HcyyPrescriptionService.java

@ -2061,18 +2061,7 @@ public class HcyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
                    }
                    try {
                        sfToHis(outpatientId, realOrder);
                        WlyyHospitalSysDictDO hospitalSysDictDO = wlyyHospitalSysDictDao.findById("sendDrugsMessage");
                        String content = "有患者下单了,请及时登录系统查看并发药。";
                        if (hospitalSysDictDO!=null){
                            String message = hospitalSysDictDO.getDictValue();
                            if (StringUtils.isNoneBlank(message)){
                                String str[] = message.split(",");
                                for (int i =0;i<str.length;i++){
                                    String mobile = str[i];
                                    enterpriseService.sendMKMesByMobile("xm_hcyy_wx",mobile,content);
                                }
                            }
                        }
                    }catch (Exception e){
                        e.printStackTrace();
                    }
@ -2113,6 +2102,18 @@ public class HcyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
        }
        if (expressageDO!=null){
            if (expressageDO.getOneselfPickupFlg()==0){
                WlyyHospitalSysDictDO hospitalSysDictDO = wlyyHospitalSysDictDao.findById("sendDrugsMessage");
                String content = "患者"+outpatientDO.getPatientName()+"的处方药品已下单,需要快递配送,请及时登录系统进行查看处理!";
                if (hospitalSysDictDO!=null){
                    String message = hospitalSysDictDO.getDictValue();
                    if (StringUtils.isNoneBlank(message)){
                        String str[] = message.split(",");
                        for (int i =0;i<str.length;i++){
                            String mobile = str[i];
                            enterpriseService.sendMKMesByMobile("xm_hcyy_wx",mobile,content);
                        }
                    }
                }
                Object result=prescriptionService.getHcyySFExpressInfoNew(registerNo,realorder,"");
                String re = result.toString();
                if (re!=null){

+ 157 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -140,12 +140,19 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.lang.Boolean;
import java.math.BigDecimal;
import java.net.URL;
import java.net.URLEncoder;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@ -354,6 +361,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    private String wechatId;
    @Value("${wechat.flag}")
    private boolean flag;
    @Autowired
    private WlyyReservationInfoDao reservationInfoDao;
    /**
@ -16723,10 +16732,157 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    }
    public void delYlzRelationCode(String outpatientId){
    public void delYlzRelationCode(String outpatientId) {
        YlzMedicalRelationDO ylzMedicalRelationDO = ylzMedicailRelationDao.findByOutpatient(outpatientId);
        ylzMedicailRelationDao.delete(ylzMedicalRelationDO);
    }
    private static String reservationApi = "";
    private static String reservationKey = "";
    private static String reservationUrl = "";
    public void initReservation() throws Exception {
        List<WlyyHospitalSysDictDO> hospitalSysDictDOList = hospitalSysDictDao.findByDictName("reservation");
        for (WlyyHospitalSysDictDO sysDictDO:hospitalSysDictDOList){
            if (sysDictDO.getId().equalsIgnoreCase("reservationAppId")){
                reservationApi = sysDictDO.getDictValue();
            }else if (sysDictDO.getId().equalsIgnoreCase("reservationAppKey")){
                reservationKey = sysDictDO.getDictValue();
            }else if (sysDictDO.getId().equalsIgnoreCase("reservationUrl")){
                reservationUrl = sysDictDO.getDictValue();
            }
        }
        if (hospitalSysDictDOList==null||hospitalSysDictDOList.size()==0){
            throw new Exception("未找到配置数据");
        }
    }
    /**
     * 请求医技预约通用接口
     *
     * @param url
     * @param src
     * @return
     * @throws InvalidAlgorithmParameterException
     * @throws NoSuchPaddingException
     * @throws IllegalBlockSizeException
     * @throws IOException
     * @throws NoSuchAlgorithmException
     * @throws BadPaddingException
     * @throws InvalidKeyException
     */
    public String reservationCommonPost(String url, String src) throws Exception {
        logger.info("加密前参数"+src);
        String encryptData = AESUtils.encrypt(src, reservationKey.substring(0,16));//加密
        com.alibaba.fastjson.JSONObject data = new com.alibaba.fastjson.JSONObject();
        data.put("hlwyyparam",encryptData);
        String res = HttpClientUtil.postBody(url,data);
        logger.info("请求返回值:"+res);
        return res;
    }
    /**
     * 获取跳转链接
     *
     * @param patient
     * @param doctor
     * @param chiefComplaint
     * @param illRecord
     * @return
     * @throws Exception
     */
    public String getReservationUrl(String patient,String doctor,String chiefComplaint,String illRecord,String relationCode,Integer relationType) throws Exception {
        initReservation();
        String openHlwyyUrl = "";
        String url = reservationUrl+"/yy-prod-api/app-api/third-in/webhook/exam/xdzs-hlwyy/post-exam";
        com.alibaba.fastjson.JSONObject data = new com.alibaba.fastjson.JSONObject();
        BasePatientDO patientDO = basePatientDao.findById(patient);
        PatientMappingDO patientMappingDO = patientMappingDao.findByPatient(patient);
        PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_01",patient,"1");
        BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
        DoctorMappingDO doctorMappingDO = doctorMappingDao.findByDoctor(doctor);
        List<BaseDoctorHospitalDO> doctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(doctor);
        WlyyReservationInfoDO reservationInfoDO = new WlyyReservationInfoDO();
        reservationInfoDO.setCardNo(patientMedicareCardDO.getCode());
        reservationInfoDO.setPatient(patient);
        reservationInfoDO.setPatientName(patientDO.getName());
        reservationInfoDO.setDoctor(doctor);
        reservationInfoDO.setDoctorName(doctorDO.getName());
        reservationInfoDO.setChiefComplaint(chiefComplaint);
        reservationInfoDO.setIllRecord(illRecord);
        reservationInfoDO.setRelationCode(relationCode);
        reservationInfoDO.setRelationType(relationType);
        reservationInfoDO.setIllRecord(illRecord);
        reservationInfoDO.setCreateTime(new Date());
        reservationInfoDO = reservationInfoDao.save(reservationInfoDO);
        data.put("hospitalId","1");
        data.put("hisPatientId",patientMappingDO.getMappingCode());
        data.put("cardNo",patientMedicareCardDO.getCode());
        data.put("idNo",patientDO.getIdcard());
        data.put("idType","01");
        data.put("tel",patientDO.getMobile());
        data.put("patientName",patientDO.getName());
        data.put("openDoctorCode",doctorMappingDO.getMappingCode());
        data.put("openDoctorName",doctorDO.getName());
        data.put("openDoctorIdNo",doctorDO.getIdcard());
        data.put("openDoctorPhoneNo",doctorDO.getMobile());
        data.put("openDepartmentCode",doctorHospitalDOS.get(0).getDeptCode());
        data.put("openDepartmentName",doctorHospitalDOS.get(0).getDeptName());
        data.put("chiefComplaint",chiefComplaint);
        data.put("illRecord",illRecord);
        data.put("timestamp",new Date().getTime()+"");
        data.put("appId",reservationApi);
        String res = reservationCommonPost(url,data.toJSONString());
        if(StringUtils.isNoneBlank(res)){
            com.alibaba.fastjson.JSONObject resObj = com.alibaba.fastjson.JSONObject.parseObject(res);
            if (resObj.getString("code").equalsIgnoreCase("0")){
                String checkCode = resObj.getJSONObject("data").getString("checkKeyNo");
                com.alibaba.fastjson.JSONObject checkData = new com.alibaba.fastjson.JSONObject();
                checkData.put("checkKeyNo",checkCode);
                String hlwyyParam = AESUtils.encrypt(checkData.toJSONString(),reservationKey.substring(0,16));
                openHlwyyUrl = reservationUrl+"/doctor-h5/pages/check/open-hlwyy?hlwyyparam="+hlwyyParam;
                reservationInfoDO.setUrl(openHlwyyUrl);
                reservationInfoDO.setUpdateTime(new Date());
                reservationInfoDao.save(reservationInfoDO);
            }
        }
        return openHlwyyUrl;
    }
    public String getReservationList(int flag,String doctor,String patient,String cardNo) throws Exception {
        String url = "";
        initReservation();
        if (flag==1){
            //医生
            BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
            DoctorMappingDO doctorMappingDO = doctorMappingDao.findByDoctor(doctor);
            BasePatientDO patientDO = basePatientDao.findById(patient);
            com.alibaba.fastjson.JSONObject data= new com.alibaba.fastjson.JSONObject();
            data.put("openDoctorPhoneNo",doctorDO.getMobile());
            data.put("openDoctorIdNo",doctorDO.getIdcard());
            data.put("openDoctorName",doctorDO.getName());
            data.put("openDoctorCode",doctorMappingDO.getMappingCode());
            data.put("userPhoneNo",patientDO.getMobile());
            data.put("userIdNo",patientDO.getIdcard());
            data.put("userCardNo",cardNo);
            String entryData = AESUtils.encrypt(data.toJSONString(),reservationKey.substring(0,16));
            url = reservationUrl+"/doctor-h5/pages/patient/apply_list?hlwyyparam="+entryData;
        }else if (flag==2){
            //患者
            BasePatientDO patientDO = basePatientDao.findById(patient);
            com.alibaba.fastjson.JSONObject data= new com.alibaba.fastjson.JSONObject();
            data.put("userName",patientDO.getName());
            data.put("userPhoneNo",patientDO.getMobile());
            data.put("userIdNo",patientDO.getIdcard());
            data.put("userCardNo",cardNo);
            String entryData = AESUtils.encrypt(data.toJSONString(),reservationKey.substring(0,16));
            url = reservationUrl+"/user-h5/pages/resv/list?hlwyyparam="+entryData;
        }
        return url;
    }
}

+ 3 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/YkyyPrescriptionService.java

@ -702,6 +702,8 @@ public class YkyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
            object.put("stock_amount", map.get("kcsl"));//库存
            object.put("gjbm", map.get("gjbm"));//国家编码
            object.put("gjmc", map.get("gjmc"));//国家编码名称
            object.put("xzxyy",map.get("xzxyy"));//超限用药
            object.put("xzyytx",map.get("xzyytx"));//
            array.add(object);
        }
        return array;
@ -1634,6 +1636,7 @@ public class YkyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
            invoice.put("unit", mxDO.getChargeUnit());//单位
            invoice.put("specType", mxDO.getSpecificationType());//规格型号
            invoice.put("tax", 0);//
            invoice.put("favouredPolicyFlag","03");//优惠政策标识:0,不使用;1,使用;数电票时简易征收 02:稀土03:免税04:不征税 05:先征后退 06:100%先征后退 07:50%先征后退 08: 按 3%简易征收09:按5%简易征收 10: 按5% 简易征收减按1.5%计征11: 即征即退 30% 12: 即征即退 50% 13:即征即退 70%14 :即征即退 100%15:超税负 3%即征即退超税负 8%即征即退 17:超6:税负 12%即征即退 18:超税负 6%即征即退
            invoice.put("zeroRateFlag", 3);//
            invoice.put("deduction", 0);
            array.add(invoice);

+ 2 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/YkyyEntranceService.java

@ -1591,6 +1591,8 @@ public class YkyyEntranceService {
                "yp.pzwh as \"pzwh\","+
                "yp.gjbm as \"gjbm\","+
                "yp.gjmc as \"gjmc\","+
                "yp.xzxyy as \"xzxyy\","+
                "yp.xzyytx as \"xzyytx\","+
                "yp.yfsb as \"yfsb\""+" FROM " +
                "V_hlwyy_MZ_YPXX yp where 1=1 and yp.yfsb in(3,6)  ";
        if (StringUtils.isNoneBlank(ypdm)){

+ 131 - 0
business/base-service/src/main/java/com/yihu/jw/utils/AESUtils.java

@ -0,0 +1,131 @@
package com.yihu.jw.utils;
import javax.crypto.*;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Locale;
public class AESUtils {
    private static String iv = "1234567890123456";//偏移量字符串必须是16位 当模式是CBC 的时候必须设置 偏移量其他 错误 参考返回信息 msg
    private static String Algorithm = "AES";
    private static String AlgorithmProvider = "AES/ECB/PKCS5Padding"; //算法/模式/补码方式
    public static byte[] generatorKey() throws NoSuchAlgorithmException {
        KeyGenerator keyGenerator = KeyGenerator.getInstance(Algorithm);
        keyGenerator.init(256);//默认 128,获得无政策权限后可为 192 或 256
        SecretKey secretKey = keyGenerator.generateKey();
        return secretKey.getEncoded();
    }
    public static IvParameterSpec getIv() throws UnsupportedEncodingException {
        IvParameterSpec ivParameterSpec = new IvParameterSpec(iv.getBytes("utf-8"));
        System.out.println("偏移量:" + byteToHexString(ivParameterSpec.getIV()));
        return ivParameterSpec;
    }
    public static byte[] encrypt(String src, byte[] key) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException, InvalidAlgorithmParameterException {
        SecretKey secretKey = new SecretKeySpec(key, Algorithm);
        IvParameterSpec ivParameterSpec = getIv();
        Cipher cipher = Cipher.getInstance(AlgorithmProvider);
        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
        byte[] cipherBytes = cipher.doFinal(src.getBytes(Charset.forName("utf-8")));
        return cipherBytes;
    }
    public static String encrypt(String src, String keyStr) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException, InvalidAlgorithmParameterException {
        byte key[] = keyStr.getBytes("utf-8");//hexStringToBytes("0123456789ABCDEF");
        return byteToHexString(encrypt(src, key)).toUpperCase(Locale.ROOT);
    }
    public static byte[] decrypt(String src, byte[] key) throws Exception {
        SecretKey secretKey = new SecretKeySpec(key, Algorithm);
        IvParameterSpec ivParameterSpec = getIv();
        Cipher cipher = Cipher.getInstance(AlgorithmProvider);
        cipher.init(Cipher.DECRYPT_MODE, secretKey);//, ivParameterSpec
        byte[] hexBytes = hexStringToBytes(src);
        byte[] plainBytes = cipher.doFinal(hexBytes);
        return plainBytes;
    }
    public static String decrypt(String src, String keyStr) throws Exception {
        byte key[] = keyStr.getBytes("utf-8");//hexStringToBytes("0123456789ABCDEF");
        return new String(decrypt(src, key), "utf-8");
    }
    /**
     * 将 byte 转换为 16 进制字符串
     *
     * @param src
     * @return
     */
    public static String byteToHexString(byte[] src) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < src.length; i++) {
            int v = src[i] & 0xff;
            String hv = Integer.toHexString(v);
            if (hv.length() < 2) {
                sb.append("0");
            }
            sb.append(hv);
        }
        return sb.toString();
    }
    /**
     * 将 16 进制字符串装换为 byte 数组
     *
     * @param hexString
     * @return
     */
    public static byte[] hexStringToBytes(String hexString) {
        hexString = hexString.toUpperCase();
        int length = hexString.length() / 2;
        char[] hexChars = hexString.toCharArray();
        byte[] b = new byte[length];
        for (int i = 0; i < length; i++) {
            int pos = i * 2;
            b[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
        }
        return b;
    }
    private static byte charToByte(char c) {
        return (byte) "0123456789ABCDEF".indexOf(c);
    }
    public static void main(String[] args) {
        try {
            // byte key[] = generatorKey();
            // 密钥必须是 16 的倍数
            String key = "1d5551a3-c1b2-4b";
            String src = "11111";
            System.out.println("原字符串:" + src);
            String enc = encrypt(src, key);
            System.out.println("加密:" + enc);
            System.out.println("解密:" + decrypt(enc, key));
        } catch (InvalidKeyException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (NoSuchPaddingException e) {
            e.printStackTrace();
        } catch (IllegalBlockSizeException e) {
            e.printStackTrace();
        } catch (BadPaddingException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

+ 111 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyReservationInfoDO.java

@ -0,0 +1,111 @@
package com.yihu.jw.entity.hospital.prescription;
import com.yihu.jw.entity.UuidIdentityEntity;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * 中山医院医技预约详情表
 */
@Entity
@Table(name = "wlyy_reservation_info")
public class WlyyReservationInfoDO extends UuidIdentityEntityWithOperator {
    private String patient;
    private String patientName;
    private String doctor;
    private String doctorName;
    private String cardNo;
    private Integer relationType;
    private String relationCode;
    private String url;
    private String chiefComplaint;//主诉
    private String illRecord;//病史
    public String getChiefComplaint() {
        return chiefComplaint;
    }
    public void setChiefComplaint(String chiefComplaint) {
        this.chiefComplaint = chiefComplaint;
    }
    public String getIllRecord() {
        return illRecord;
    }
    public void setIllRecord(String illRecord) {
        this.illRecord = illRecord;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    public String getCardNo() {
        return cardNo;
    }
    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }
    public Integer getRelationType() {
        return relationType;
    }
    public void setRelationType(Integer relationType) {
        this.relationType = relationType;
    }
    public String getRelationCode() {
        return relationCode;
    }
    public void setRelationCode(String relationCode) {
        this.relationCode = relationCode;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
}

+ 17 - 0
common/common-util/src/main/java/com/yihu/jw/util/http/HttpClientUtil.java

@ -7,6 +7,7 @@ import com.yihu.jw.entity.base.dict.BaseExceptionServerDictDO;
import com.yihu.jw.util.dao.BaseExceptionDictUtilDao;
import com.yihu.jw.util.dao.BaseExceptionLogUtilDao;
import com.yihu.jw.util.dao.BaseExceptionServerDictUtilDao;
import okhttp3.*;
import org.apache.http.*;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
@ -370,6 +371,22 @@ public class HttpClientUtil {
        return ret;
    }
    public static String postmanBody(String url,JSONObject params) throws IOException {
        OkHttpClient client = new OkHttpClient();
        okhttp3.MediaType mediaType = okhttp3.MediaType.parse("application/json");;
        RequestBody body = RequestBody.create(mediaType, params.toJSONString());
        Request request = new Request.Builder()
                .url(url)
                .post(body)
                .addHeader("content-type", "application/json")
                .build();
        Response response = client.newCall(request).execute();
        ResponseBody responseBody = response.body();
        return responseBody.string();
    }
    public  static String postBodyStatic(String url, com.alibaba.fastjson.JSONObject params) {
        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();

+ 40 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java

@ -3847,5 +3847,45 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
    }
    @PostMapping("/getReservationUrl")
    @ApiOperation(value = "中山医院获取医技预约跳转地址", notes = "中山医院获取医技预约跳转地址")
    public Envelop getReservationUrl(
            @ApiParam(name = "relationCode", value = "关联业务编码",required = false)
            @RequestParam(value = "relationCode", required = false) String relationCode,
            @ApiParam(name = "patient", value = "患者编码",required = false)
            @RequestParam(value = "patient", required = false) String patient,
            @ApiParam(name = "doctor", value = "医生编码",required = false)
            @RequestParam(value = "doctor", required = false) String doctor,
            @ApiParam(name = "chiefComplaint", value = "主诉",required = false)
            @RequestParam(value = "chiefComplaint", required = false) String chiefComplaint,
            @ApiParam(name = "illRecord", value = "病史",required = false)
            @RequestParam(value = "illRecord", required = false) String illRecord,
            @ApiParam(name = "relationType", value = "业务类型1问诊2其他",required = false)
            @RequestParam(value = "relationType", required = false) Integer relationType) {
        try {
            return success("操作成功", prescriptionService.getReservationUrl(patient,doctor,chiefComplaint,illRecord,relationCode,relationType));
        } catch (Exception e) {
            return Envelop.getError(e.getMessage());
        }
    }
    @PostMapping("/getReservationList")
    @ApiOperation(value = "中山医院医技预约获取预约记录", notes = "中山医院医技预约获取预约记录")
    public Envelop getReservationList(
            @ApiParam(name = "flag", value = "标识1医生2患者",required = false)
            @RequestParam(value = "flag", required = false) Integer flag,
            @ApiParam(name = "patient", value = "患者编码",required = false)
            @RequestParam(value = "patient", required = false) String patient,
            @ApiParam(name = "doctor", value = "医生编码",required = false)
            @RequestParam(value = "doctor", required = false) String doctor,
            @ApiParam(name = "cardNo", value = "患者卡号",required = false)
            @RequestParam(value = "cardNo", required = false) String cardNo) {
        try {
            return success("查询成功", prescriptionService.getReservationList(flag,doctor,patient,cardNo));
        } catch (Exception e) {
            return Envelop.getError(e.getMessage());
        }
    }
}