瀏覽代碼

合理用药调整

hurugang 2 年之前
父節點
當前提交
e622fa2bfa
共有 1 個文件被更改,包括 33 次插入27 次删除
  1. 33 27
      src/main/java/cn/hnthyy/thmz/service/impl/thmz/RationalUseServiceImpl.java

+ 33 - 27
src/main/java/cn/hnthyy/thmz/service/impl/thmz/RationalUseServiceImpl.java

@@ -144,7 +144,7 @@ public class RationalUseServiceImpl implements RationalUseService {
                 setTryResult(psLiust, mzChargeDetail);
             }
         }
-        String detailsXml = drugInfoFunc(currentList, hisList, mzPrescriptionVo.getPatientId(), psLiust, mzPrescriptionVo.getIcdCode(), mzPrescriptionVo.getIcdText(), doctXml);
+        String detailsXml = drugInfoFunc(currentList, hisList, psLiust, doctXml,mzPrescriptionVo);
         String params = String.format("{\"BaseXml\": \"%s\", \"DetailsXml\" : \"%s\"}", baseXml, detailsXml);
         log.info(params);
         String data = HttpUtil.httpPost(rationalUseOfMedicineUrl, params, "application/json", 4000);
@@ -226,20 +226,18 @@ public class RationalUseServiceImpl implements RationalUseService {
      *
      * @param currentList
      * @param hisList
-     * @param patientId
      * @param psLiust
-     * @param icdCode
-     * @param icdText
      * @param doctXml
+     * @param mzPrescriptionVo
      * @return
      */
-    private String drugInfoFunc(List<List<MzChargeDetail>> currentList, List<List<MzChargeDetail>> hisList, String patientId, List<XunHuanJieDian> psLiust, String icdCode, String icdText, String doctXml) throws MzException {
+    private String drugInfoFunc(List<List<MzChargeDetail>> currentList, List<List<MzChargeDetail>> hisList, List<XunHuanJieDian> psLiust, String doctXml,MzPrescriptionVo mzPrescriptionVo) throws MzException {
         int times = 0;
-        MzPatientMi mzPatientMi = mzPatientMiMapper.selectByPatientId(patientId);
+        MzPatientMi mzPatientMi = mzPatientMiMapper.selectByPatientId(mzPrescriptionVo.getPatientId());
         if (mzPatientMi == null) {
             throw new MzException("当前病人信息不存在,请先保存病人信息!");
         }
-        MzVisitTable lastMzVisitTable = mzVisitTableService.queryLastMzVisitTableByPatientId(patientId);
+        MzVisitTable lastMzVisitTable = mzVisitTableService.queryLastMzVisitTableByPatientId(mzPrescriptionVo.getPatientId());
         if (lastMzVisitTable != null) {
             times = lastMzVisitTable.getTimes();
         }
@@ -258,17 +256,17 @@ public class RationalUseServiceImpl implements RationalUseService {
                 // 就诊类型
                 .append("<treat_type>").append("100").append("</treat_type>")
                 // 就诊号
-                .append("<treat_code>").append(patientId).append("_").append(times).append("_1").append("</treat_code>")
+                .append("<treat_code>").append(mzPrescriptionVo.getPatientId()).append("_").append(times).append("_1").append("</treat_code>")
                 .append("<is_repeat>").append("1").append("</is_repeat>")
                 .append("<bed_no></bed_no>")
                 .append("<patient>")
-                .append("<pati_id>").append(patientId).append("</pati_id>")
+                .append("<pati_id>").append(mzPrescriptionVo.getPatientId()).append("</pati_id>")
                 .append("<name>").append(nullToBlank(mzPatientMi.getName())).append("</name>")
                 .append("<is_infant></is_infant>")
                 .append("<birth>").append(nullToBlank(mzPatientMi.getBirthDayStr())).append("</birth>")
                 .append("<sex>").append(nullToBlank(mzPatientMi.getGender())).append("</sex>")
-                .append("<weight></weight>")
-                .append("<height></height>")
+                .append("<weight>").append(mzPrescriptionVo.getMzBlRecord().getWeight()).append("</weight>")
+                .append("<height>").append("</height>")
                 .append("<id_card>").append(mzPatientMi.getSocialNo()).append("</id_card>")
                 .append("<medical_record></medical_record>")
                 .append("<card_type></card_type>")
@@ -299,17 +297,25 @@ public class RationalUseServiceImpl implements RationalUseService {
         // 诊断
         sbf.append("<diagnose_data>");
         List<XunHuanJieDian> diagnosticData = new ArrayList<>();
-        List<String> arr = Arrays.asList(icdCode.split(","));
-        List<String> icdTextArr = Arrays.asList(icdText.split(","));
-        for (int i = 0; i < arr.size(); i++) {
-            String str = arr.get(i);
-            if (str == null || StringUtils.isBlank(str)) {
-                continue;
+        if(mzPrescriptionVo.getIcdCode()!=null && StringUtils.isNotBlank(mzPrescriptionVo.getIcdCode())){
+            List<String> arr = Arrays.asList(mzPrescriptionVo.getIcdCode().split(","));
+            List<String> icdTextArr = Arrays.asList(mzPrescriptionVo.getIcdText().split(","));
+            for (int i = 0; i < arr.size(); i++) {
+                String str = arr.get(i);
+                if (str == null || StringUtils.isBlank(str)) {
+                    continue;
+                }
+                XunHuanJieDian xunHuanJieDian = new XunHuanJieDian();
+                xunHuanJieDian.setCode(str);
+                xunHuanJieDian.setType("2");
+                xunHuanJieDian.setName(icdTextArr.get(i));
+                diagnosticData.add(xunHuanJieDian);
             }
+        }else if(StringUtils.isNotBlank(mzPrescriptionVo.getMzBlRecord().getTentativeDiagnosis())){
             XunHuanJieDian xunHuanJieDian = new XunHuanJieDian();
-            xunHuanJieDian.setCode(str);
+            xunHuanJieDian.setCode("");
             xunHuanJieDian.setType("0");
-            xunHuanJieDian.setName(icdTextArr.get(i));
+            xunHuanJieDian.setName(mzPrescriptionVo.getMzBlRecord().getTentativeDiagnosis());
             diagnosticData.add(xunHuanJieDian);
         }
         // 诊断节点
@@ -317,9 +323,9 @@ public class RationalUseServiceImpl implements RationalUseService {
         sbf.append("</diagnose_data>").append("</patient>");
         // 处方信息
         sbf.append("<prescription_data>");
-        setYpDetail(currentList, patientId, doctXml, times, date, sbf);
+        setYpDetail(currentList, mzPrescriptionVo.getPatientId(), doctXml, times, date, sbf);
         if (hisList != null && hisList.size() > 0) {
-            setYpDetail(hisList, patientId, doctXml, times, date, sbf);
+            setYpDetail(hisList, mzPrescriptionVo.getPatientId(), doctXml, times, date, sbf);
         }
         sbf.append("</prescription_data></details_xml>");
         return sbf.toString();
@@ -362,15 +368,15 @@ public class RationalUseServiceImpl implements RationalUseService {
                         .append("<quantity>").append(nullToBlank(quantity + ypZdDict.getPackUnitDesc())).append("</quantity>")
                         .append("<group>").append(mzChargeDetail.getGroupOrder()).append("</group>")
                         .append("<reason>").append("</reason>")
-                        .append("<dose_unit>").append(StringUtils.isNotBlank(ypZdDict.getWeighUnit()) ? UnitTypeEnum.getUnitTypeByCode(mzChargeDetail.getDrugUnit()).name : "").append("</dose_unit>")
+                        .append("<dose_unit>").append(StringUtils.isNotBlank(mzChargeDetail.getDrugUnit()) ? UnitTypeEnum.getUnitTypeByCode(mzChargeDetail.getDrugUnit()).name : "").append("</dose_unit>")
                         .append("<dose>").append(mzChargeDetail.getDrugQuan()).append("</dose>")
-                        .append("<kyzl>").append("</kyzl>")
-                        .append("<zl_unit>").append("</zl_unit>")
+                        .append("<zl_unit>").append(StringUtils.isNotBlank(ypZdDict.getPackUnit()) ? UnitTypeEnum.getUnitTypeByCode(ypZdDict.getPackUnit()).name : "").append("</zl_unit>")
+                        .append("<kyzl>").append(quantity).append("</kyzl>")
                         .append("<freq>").append("MZ").append(nullToBlank(mzChargeDetail.getFrequency())).append("</freq>")
                         .append("<administer>").append("MZ").append(mzChargeDetail.getSupplyCode()).append("</administer>")
-                        .append("<begin_time></begin_time>")
-                        .append("<end_time></end_time>")
-                        .append("<days>").append("</days>")
+                        .append("<begin_time>").append(date).append("</begin_time>")
+                        //.append("<end_time>").append(date).append("</end_time>")
+                        .append("<days>").append(mzChargeDetail.getOrderDays()).append("</days>")
                         .append(doctXml)
                         .append("<PREVENTIVE_TYPE>").append("0").append("</PREVENTIVE_TYPE>")
                         .append("<money>").append(ypZdDict.getPackRetprice().multiply(quantity)).append("</money>")