Browse Source

Merge branch 'master' into 'master'

传染病诊疗活动出院优化

See merge request lighter/web-server!192
huangshuhua 1 month ago
parent
commit
01511dd032

+ 41 - 16
src/main/java/thyyxxk/webserver/service/crbmanagement/EmrActivityInfoService.java

@@ -172,7 +172,7 @@ public class EmrActivityInfoService {
             }
             List<EmrActivityInfoVo> zyList = dao.selectEmrActivityInfoByZy(orgCode, orgName, "5", "入院", zyQw);
             List<EmrActivityInfoVo> adZy = assembleEmrActivityInfoByZy(zyQw, orgCode, orgName, zyList, isCrb);
-            if(null != adZy && !adZy.isEmpty()){
+            if(!adZy.isEmpty()){
                 result.addAll(adZy);
             }
             List<EmrActivityInfoVo> adCy = assembleEmrActivityInfoByCy(cyQw, orgCode, orgName, isCrb);
@@ -396,31 +396,56 @@ public class EmrActivityInfoService {
             // crbUpdateByEmr.getEmrAdmissionInfo()
             for(EmrActivityInfoVo infoVo : cyList){
                 EmrAdmissionInfo emrAdmissionInfo = crbUpdateByEmr.getEmrAdmissionInfo(infoVo.getPatientId(), infoVo.getTimes());
-                EmrDischargeInfo emrDischargeInfo = crbUpdateByEmr.getEmrDischargeInfo(infoVo.getPatientId(), infoVo.getTimes(), emrAdmissionInfo);
-                if(null != emrDischargeInfo){
-                    Map<String, String> m = crbBaseService.selectDeptYbInfoByCode(emrDischargeInfo.getDeptCode());
-                    if(null != m){
-                        emrDischargeInfo.setDeptCode(Convert.toStr(m.get("siCaty"), infoVo.getDeptCode()));
-                        emrDischargeInfo.setDeptName(Convert.toStr(m.get("siCatyName"), infoVo.getDeptName()));
-                    } else {
-                        emrDischargeInfo.setDeptCode(infoVo.getDeptCode());
-                        emrDischargeInfo.setDeptName(infoVo.getDeptName());
-                    }
-                    BeanUtils.copyProperties(emrDischargeInfo, infoVo);
-                    infoVo.setWmDiseaseCode(emrDischargeInfo.getDischargeDiagnosisCode());
-                    infoVo.setWmDiseaseName(emrDischargeInfo.getDischargeDiagnosisName());
-                    EmployeeMi emi = dao.selectEmployeeMiNyCode(emrDischargeInfo.getChiefPhysicianId());
+                if(null == emrAdmissionInfo){
+                    EmrPatientData emrData = emrDao.findEmrDataByCode(infoVo.getPatientId(), infoVo.getTimes(), "chuyuanjilu");
+                    EmrJsonUtils2 emrJsonUtils2 = EmrJsonUtils2.create(emrData.getEmrDataElementStr());
+                    emrJsonUtils2.getArrStrMore("出院诊断", ",", (val) -> {
+                        infoVo.setWmDiseaseCode(val.getCode());
+                        infoVo.setWmDiseaseName(val.getName());
+                    });
+                    infoVo.setChiefComplaint(emrJsonUtils2.getStr("主诉"));
+                    infoVo.setPresentIllnessHis(emrJsonUtils2.getStr("现病史"));
+                    infoVo.setId(emrData.getEmrDocumentId());
+                    infoVo.setOperatorId(emrData.getCreateId());
+                    EmployeeMi emi = dao.selectEmployeeMiNyCode(emrData.getCreateId());
                     if(null != emi){
                         infoVo.setFillDoctor(StringUtils.trim(emi.getName()));
                         infoVo.setOperatorId(StringUtils.trim(emi.getCode()));
                     }
                     // 查询上传状态
-                    EmrActivityInfoVo upVo = dao.selectEmrActivityInfoById(emrDischargeInfo.getId());
+                    EmrActivityInfoVo upVo = dao.selectEmrActivityInfoById(infoVo.getId());
                     if(null != upVo){
                         infoVo.setUploadFlag(upVo.getUploadFlag());
                         infoVo.setUploadType(upVo.getUploadType());
                         infoVo.setUploadMsg(upVo.getUploadMsg());
                     }
+                } else {
+                    EmrDischargeInfo emrDischargeInfo = crbUpdateByEmr.getEmrDischargeInfo(infoVo.getPatientId(), infoVo.getTimes(), emrAdmissionInfo);
+                    if(null != emrDischargeInfo){
+                        Map<String, String> m = crbBaseService.selectDeptYbInfoByCode(emrDischargeInfo.getDeptCode());
+                        if(null != m){
+                            emrDischargeInfo.setDeptCode(Convert.toStr(m.get("siCaty"), infoVo.getDeptCode()));
+                            emrDischargeInfo.setDeptName(Convert.toStr(m.get("siCatyName"), infoVo.getDeptName()));
+                        } else {
+                            emrDischargeInfo.setDeptCode(infoVo.getDeptCode());
+                            emrDischargeInfo.setDeptName(infoVo.getDeptName());
+                        }
+                        BeanUtils.copyProperties(emrDischargeInfo, infoVo);
+                        infoVo.setWmDiseaseCode(emrDischargeInfo.getDischargeDiagnosisCode());
+                        infoVo.setWmDiseaseName(emrDischargeInfo.getDischargeDiagnosisName());
+                        EmployeeMi emi = dao.selectEmployeeMiNyCode(emrDischargeInfo.getChiefPhysicianId());
+                        if(null != emi){
+                            infoVo.setFillDoctor(StringUtils.trim(emi.getName()));
+                            infoVo.setOperatorId(StringUtils.trim(emi.getCode()));
+                        }
+                        // 查询上传状态
+                        EmrActivityInfoVo upVo = dao.selectEmrActivityInfoById(emrDischargeInfo.getId());
+                        if(null != upVo){
+                            infoVo.setUploadFlag(upVo.getUploadFlag());
+                            infoVo.setUploadType(upVo.getUploadType());
+                            infoVo.setUploadMsg(upVo.getUploadMsg());
+                        }
+                    }
                 }
             }
         }

+ 2 - 2
src/main/java/thyyxxk/webserver/service/medicine/YpDictService.java

@@ -744,9 +744,9 @@ public class YpDictService {
         map.put("getYpUnitCode", ypUnitDao.selectYpUnitCode());
         // 药品费别
         map.put("getYpChargeGroupCode", ypChargeGroupDao.selectYpChargeGroupCode());
-        // 生产厂家字典
-        map.put("getYpSupplyCode", ypSupplyDao.selectYpSupplyCode());
         // 药品供应商字典
+        map.put("getYpSupplyCode", ypSupplyDao.selectYpSupplyCode());
+        // 生产厂家字典
         map.put("getYpManuFactoryCode", ypManuFactoryDao.selectYpManuFactoryCode());
         // 药品大类
         map.put("getYpCategoriesCode", dao.selectYpCategories());

+ 38 - 0
src/main/java/thyyxxk/webserver/utils/EmrJsonUtils2.java

@@ -127,6 +127,38 @@ public class EmrJsonUtils2 {
         return null;
     }
 
+    /**
+     * @Description 获取数组对象的拼接结果
+     * @param key 业务编码
+     * @param str 拼接字符
+     * @return CodeName
+     * @Date 2025/10/22 0022 18:35
+     */
+    public CodeName getArrStr(String key, String str) {
+        List<CodeName> arr = getArr(key);
+        if (arr != null) {
+            if(arr.size() == 1){
+                return arr.get(0);
+            } else {
+                CodeName n = new CodeName();
+                StringBuilder codes = new StringBuilder();
+                StringBuilder names = new StringBuilder();
+                for(int i = 0; i < arr.size(); i++){
+                    if(i == arr.size() - 1){
+                        codes.append(arr.get(i).getCode());
+                        names.append(arr.get(i).getName());
+                    } else {
+                        codes.append(arr.get(i).getCode()).append(str);
+                        names.append(arr.get(i).getName()).append(str);
+                    }
+                }
+                n.setCode(codes.toString());
+                n.setName(names.toString());
+                return n;
+            }
+        }
+        return null;
+    }
 
     public void getFirstArr(String key, Consumer<CodeName> predicate) {
         CodeName firstArr = getFirstArr(key);
@@ -135,6 +167,12 @@ public class EmrJsonUtils2 {
         }
     }
 
+    public void getArrStrMore(String key, String str, Consumer<CodeName> predicate) {
+        CodeName firstArr = getArrStr(key, str);
+        if (firstArr != null) {
+            predicate.accept(firstArr);
+        }
+    }
 
     /**
      * 如果一个数据源在一份病历中有多个的话就会是一个数组