Bläddra i källkod

Merge branch 'dev' of yeshijie/patient-co-management into dev

yeshijie 7 år sedan
förälder
incheckning
0d81c7cc6b

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 16 - 0
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/controller/PrescriptionController.java


+ 33 - 2
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/entity/prescription/Prescription.java

@ -50,10 +50,10 @@ public class Prescription extends IdEntity {
    //    private String dispensary_code;           //取药编码  关联wlyy_prescription_dispensary_code  code
//    private String dispensaryAddress;         //取药地址
    private Integer dispensaryType;            //取药类型:1 自取 2快递配送 3健管师配送
    private String caCertData;                  //ca加密信息
    private String caCertData;                  //ca加密信息(签名证书主题数据)
    //    private String expressNum;                  //快递单号
//    private String expressCompanyName;         //快递公司名称
    private String caMessage;                   //ca指纹信息
    private String caMessage;                   //ca指纹信息(签名值)
    private String remark;                     //处方备注
    private String reason;                      //续方原因
    //    private Double ybCost;                      //医保费用
@ -66,6 +66,12 @@ public class Prescription extends IdEntity {
    private String statusName; //
    private String digitalSignNo;//CA数字签名唯一流水号
    private String originalDataAbstract;//原文的MD5摘要
    private String strOriginalData; //CA原文数据
    @Column(name = "code", unique = true, nullable = false)
    public String getCode() {
@ -514,4 +520,29 @@ public class Prescription extends IdEntity {
    public void setSsc(String ssc) {
        this.ssc = ssc;
    }
    public String getOriginalDataAbstract() {
        return originalDataAbstract;
    }
    public void setOriginalDataAbstract(String originalDataAbstract) {
        this.originalDataAbstract = originalDataAbstract;
    }
    public String getDigitalSignNo() {
        return digitalSignNo;
    }
    public void setDigitalSignNo(String digitalSignNo) {
        this.digitalSignNo = digitalSignNo;
    }
    public String getStrOriginalData() {
        return strOriginalData;
    }
    public void setStrOriginalData(String strOriginalData) {
        this.strOriginalData = strOriginalData;
    }
}

+ 15 - 1
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/service/prescription/PrescriptionService.java

@ -406,7 +406,8 @@ public class PrescriptionService extends ZysoftBaseService{
    }
    /**
     * 7.4 挂号开处方接口
     * 7.4 挂号开处方接口,调整处方接口
     * 开方和调整处方接口的区别-开方会传ca认证
     * @param prescriptionCode
     * @return
     * @throws Exception
@ -433,6 +434,19 @@ public class PrescriptionService extends ZysoftBaseService{
        json.put("saveOperator",jwdoctor);// "saveOperator": "开单人员编码",
        List<PrescriptionDiagnosis> prescriptionDiagnosisList = prescriptionDiagnosisDao.findByPrescriptionCode(prescriptionCode);
        json.put("DIAGNOSE_CODE",prescriptionDiagnosisList.get(0).getCode());//"DIAGNOSE_CODE": "诊断编码",
        if(prescription.getCaCertData()==null){
            json.put("OriginalData",prescription.getStrOriginalData());//原文
            json.put("OriginalDataMD5",prescription.getOriginalDataAbstract());//原文的MD5摘要
            json.put("CA_SignData",prescription.getCaMessage());//签名值
            json.put("CA_CertMainData",prescription.getCaCertData());//签名证书主体数据
            json.put("CA_DigitalSignStreamNoUuid",prescription.getDigitalSignNo());//CA数字签名唯一流水号
        }else {
            json.put("OriginalData",null);
            json.put("OriginalDataMD5",null);
            json.put("CA_SignData",null);
            json.put("CA_CertMainData",null);
            json.put("CA_DigitalSignStreamNoUuid",null);
        }
        List<PrescriptionInfo> list = prescriptionInfoDao.findByPrescriptionCode(prescriptionCode);
        JSONArray ja = new JSONArray();

+ 95 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/adapter/PresModeAdapter.java

@ -129,7 +129,7 @@ public class PresModeAdapter {
                }else{
                    p.put("doctor",mode.getString("APPLY_OPERATOR"));
                    p.put("doctorName",mode.getString("APPLY_OPERATOR_NAME"));
                    //p.setHospitalName(doctor.getHospitalName());
                    p.put("hospitalName",mode.getString("HEALTH_ORG_CODE"));
                    p.put("hospital",mode.getString("HEALTH_ORG_CODE"));
                }
@ -199,4 +199,98 @@ public class PresModeAdapter {
        return null;
    }
    /**
     * 处方详情转换
     * @param json
     * @return
     */
    public JSONObject modelToSinglePrescription(String json){
        JSONObject oldJson = JSONObject.parseObject(json);
        JSONObject data = oldJson.getJSONObject("data");
        JSONArray returnData = data.getJSONArray("returnData");
        String code = data.getString("CODE");
        if(StringUtils.isNotBlank(code)&&"1".equals(code)){
            JSONArray modeArray = returnData.getJSONArray(0);
            JSONObject mode = (JSONObject) modeArray.get(0);
            JSONObject p  = new JSONObject();
            p.put("code",mode.getInteger("RECIPE_NO")+"");
            p.put("createTime",mode.getString("APPLY_TIME"));
            Doctor doctor =  zyDictService.getDoctByJw(mode.getString("APPLY_OPERATOR"),mode.getString("HEALTH_ORG_CODE"));
            // "APPLY_OPERATOR_NAME": 开单医生姓名","HEALTH_ORG_CODE": "开单机构编码",
            if(doctor!=null){
                p.put("doctor",doctor.getCode());
                p.put("doctorName",doctor.getName());
                p.put("hospitalName",doctor.getHospitalName());
                p.put("hospital",doctor.getHospital());
            }else{
                p.put("doctor",mode.getString("APPLY_OPERATOR"));
                p.put("doctorName",mode.getString("APPLY_OPERATOR_NAME"));
                p.put("hospitalName",mode.getString("HEALTH_ORG_CODE"));
                p.put("hospital",mode.getString("HEALTH_ORG_CODE"));
            }
            JSONObject diagnosis = new JSONObject();
//                String diagnoseCode = mode.getString("DIAGNOSE_CODE");
//                String diagnoseName = mode.getString("DIAGNOSE_NAME");
            String diagnoseCode = "E10.100";
            String diagnoseName = "1型糖尿病性酮症";
            diagnosis.put("code",diagnoseCode);//诊断代码
            diagnosis.put("name",diagnoseName);//诊断名称
            String icd10 = icd10DictServcie.getHealthProblemsByIcd10Code(diagnoseCode);
            if(!StringUtils.isEmpty(icd10)){
                JSONObject icd = JSONObject.parseObject(icd10);
                diagnosis.put("healthProblemName",icd.getString("value"));//诊断名称
                diagnosis.put("healthProblem",icd.getString("key"));//诊断代码
            }else{
                diagnosis.put("healthProblemName",diagnoseName);//诊断名称
                diagnosis.put("healthProblem",diagnoseCode);//诊断代码
            }
            JSONArray jsonArrayDt = new JSONArray();
            jsonArrayDt.add(diagnosis);
            p.put("prescriptionDt",jsonArrayDt);
            JSONArray infos = mode.getJSONArray("RECIPE_DETAIL");
            Iterator infoIt = infos.iterator();
            JSONArray prescriptionInfos = new JSONArray();
            while (infoIt.hasNext()){
                JSONObject info = (JSONObject) infoIt.next();
                JSONObject prescriptionInfo = new JSONObject();
                prescriptionInfo.put("Remark",info.getString("REMARK"));
                prescriptionInfo.put("BindFlag",info.getString("BIND_FLAG"));
                prescriptionInfo.put("direction",info.getString("USAGE_NAME"));//药品用法
                prescriptionInfo.put("drugCode",info.getString("ITEM_CODE"));//药品code
                prescriptionInfo.put("drugName",info.getString("ITEM_NAME"));//药品名称
                prescriptionInfo.put("drugRate",info.getString("FREQUENCY"));//吃药频率 FREQUENCY
                prescriptionInfo.put("drugRateName",info.getString("FREQUENCY_NAME"));
                prescriptionInfo.put("drugFormat",info.getString("ITEM_SPEC"));//药品规格
                prescriptionInfo.put("price",info.getInteger("ITEM_PRICE"));//药品单价
                prescriptionInfo.put("num",info.getInteger("ITEM_QUANTITY"));//药品数目
                prescriptionInfo.put("jwSubCode","");//智业子处方号
                prescriptionInfo.put("drugNumUnit",info.getString("ITEM_UNIT"));//数量单位编码
                prescriptionInfo.put("drugNumUnitName",info.getString("ITEM_UNIT_NAME"));//数量单位名称
                prescriptionInfo.put("cost",1);//金额
                prescriptionInfo.put("charge",0);//自付
                prescriptionInfo.put("bindFlag","0");//成组标志, 0.非成组,1.成组
                prescriptionInfo.put("dayCount",info.getInteger("DAY_COUNT"));//用药天数
                prescriptionInfo.put("drugUsage",info.getString("USAGE"));//用药方法编码
                prescriptionInfo.put("usageName",info.getString("USAGE_NAME"));//用药方法名称
                prescriptionInfo.put("physicDose",info.getString("PHYSIC_DOSE"));//用药剂量
                prescriptionInfo.put("physicDoseUnit",info.getString("PHYSIC_DOSE_UNIT"));//剂量单位编码
                prescriptionInfo.put("physicDoseUnitName",info.getString("PHYSIC_DOSE_UNIT_NAME"));//剂量单位名称
                prescriptionInfo.put("physicAmount",info.getString("PHYSIC_AMOUNT"));//用药总量
                prescriptionInfo.put("physicAmountUnit",info.getString("PHYSIC_AMOUNT_UNIT"));//总量单位编码
                prescriptionInfo.put("physicAmountUnitName",info.getString("PHYSIC_AMOUNT_UNIT_NAME"));//总量单位名称
                prescriptionInfo.put("physicInjectPlace","");//注射地点编码
                prescriptionInfo.put("physicInjectPlaceName","");//注射地点名称
                prescriptionInfo.put("physicSkinTest",info.getString("PHYSIC_SKIN_TEST"));//皮试类型名称
                prescriptionInfo.put("physicSkinTestName",info.getString("PHYSIC_SKIN_TEST_NAME"));//皮试类型名称
                prescriptionInfos.add(prescriptionInfo);
            }
            p.put("prescriptionInfo",prescriptionInfos);
            return p;
        }
        return null;
    }
}

+ 17 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/JwPrescriptionService.java

@ -79,6 +79,23 @@ public class JwPrescriptionService {
        return response;
    }
    /**
     * 获取单条历史处方
     * @param recipeNo
     * @param cardNo
     * @return
     */
    public String getRecipe(String recipeNo,String cardNo){
        String url = jwUrl + "/third/prescription/getRecipe";
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("recipeNo", recipeNo));
        params.add(new BasicNameValuePair("cardNo", cardNo));
        String response = httpClientUtil.post(url, params, "UTF-8");
        return response;
    }
    /**
     * 处方开方接口
     * @param prescriptionCode 续方code