Sfoglia il codice sorgente

1、修改部分条目逻辑问题

louhr 5 anni fa
parent
commit
ce47d4c1a3

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0072.java

@@ -32,8 +32,9 @@ public class BEH0072 extends QCCatalogue {
             for (Family family : families) {
                 if (family.getDead() != null) {
                     Dead dead = family.getDead();
-                    if (dead.getDeadReason() == null || StringUtil.isBlank(dead.getDeadReason().getName())
-                            && dead.getUnknow() == null || StringUtil.isBlank(dead.getUnknow().getName())) {
+                    if (dead.getDeadReason() != null || dead.getUnknow() != null) {
+                        return;
+                    } else {
                         status.set("-1");
                         return;
                     }

+ 15 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0449.java

@@ -7,6 +7,7 @@ import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
 import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.Diag;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -38,6 +39,20 @@ public class BEH0449 extends QCCatalogue {
                     }
                 }
             }
+
+            String chiefDiag = "";
+            List<Diag> diags = beHospitalizedDoc.getChiefLabel().getDiags();
+            if (diags != null && diags.size() > 0) {
+                chiefDiag = diags.get(0).getHospitalDiagName();
+            }
+            String presentDiag = "";
+            diags = beHospitalizedDoc.getPresentLabel().getDiags();
+            if (diags != null && diags.size() > 0) {
+                presentDiag = diags.get(0).getHospitalDiagName();
+            }
+            if (StringUtils.isNotEmpty(chiefDiag) && StringUtils.isNotEmpty(presentDiag) && chiefDiag.equals(presentDiag)) {
+                status.set("0");
+            }
         }
     }
 }

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0172.java

@@ -5,6 +5,7 @@ import com.lantone.qc.pub.Content;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.util.ListUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -22,8 +23,8 @@ public class FIRP0172 extends QCCatalogue {
         status.set("0");
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
-            List<Map<String, String>> outpatientEmergencyDiag = (List) firstpageStructureMap.get(Content.outpatientEmergencyDiag);
-            if (ListUtil.isEmpty(outpatientEmergencyDiag)) {
+            String outpatientEmergencyDiag = (String) firstpageStructureMap.get(Content.outpatientEmergencyDiag);
+            if (StringUtils.isEmpty(outpatientEmergencyDiag)) {
                 status.set("-1");
             }
         }

+ 5 - 12
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0173.java

@@ -6,7 +6,7 @@ import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
@@ -27,9 +27,8 @@ public class FIRP0173 extends QCCatalogue {
                 && inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getPresentLabel() != null) {
             Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
             //病案首页门急诊诊断
-            List<Map<String, String>> outpatientEmergencyDiag = (List) firstpageStructureMap.get(Content.outpatientEmergencyDiag);
-            if (ListUtil.isEmpty(outpatientEmergencyDiag)
-                    || ListUtil.isEmpty(inputInfo.getBeHospitalizedDoc().getPresentLabel().getDiags())) {
+            String outpatientEmergencyDiag = (String) firstpageStructureMap.get(Content.outpatientEmergencyDiag);
+            if (StringUtils.isEmpty(outpatientEmergencyDiag)) {
                 return;
             }
             //现病史所有诊断
@@ -51,14 +50,8 @@ public class FIRP0173 extends QCCatalogue {
 
     }
 
-    private void putFirstpageDiagToList(List<Map<String, String>> outpatientEmergencyDiag, List<String> firstpageDiag) {
-        String outpatientEmergencyDiagStr = "";
-        for (Map<String, String> outpatientEmergencyDiagMap : outpatientEmergencyDiag) {
-            outpatientEmergencyDiagStr = outpatientEmergencyDiagMap.get(Content.diagnoseName);
-            if (StringUtil.isNotBlank(outpatientEmergencyDiagStr)) {
-                firstpageDiag.add(outpatientEmergencyDiagStr);
-            }
-        }
+    private void putFirstpageDiagToList(String outpatientEmergencyDiag, List<String> firstpageDiag) {
+        firstpageDiag.add(outpatientEmergencyDiag);
     }
 
     private void putPossibleDiagToList(List<Diag> diagList, List<String> presentPossibleDiag) {

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0259.java

@@ -26,7 +26,7 @@ public class FIRP0259 extends QCCatalogue {
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureExtMap() != null
                 && inputInfo.getLeaveHospitalDoc() != null && inputInfo.getLeaveHospitalDoc().getLeaveDiagLabel() != null) {
             Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
-            List<Map<String, String>> outpatientEmergencyDiagList = (List) firstpageStructureMap.get(Content.outpatientEmergencyDiag);
+            List<Map<String, String>> outpatientEmergencyDiagList = (List) firstpageStructureMap.get(Content.dischargeDiag);
             List<Diag> dischargeDiags = inputInfo.getLeaveHospitalDoc().getLeaveDiagLabel().getDiags();
             if (ListUtil.isEmpty(outpatientEmergencyDiagList) || ListUtil.isEmpty(dischargeDiags)) {
                 return;

+ 44 - 45
kernel/src/test/java/com/lantone/qc/kernel/TaizDataImportApiTest.java

@@ -27,8 +27,8 @@ import java.util.zip.GZIPInputStream;
  * @Date: 2020-03-31 19:34
  */
 public class TaizDataImportApiTest {
-    private static String hospitalId = "3";
-    private static String cid = "taizhou";
+    private static String hospitalId = "1";
+    private static String cid = "changx";
 
     private Map<String,String> caseMap = new HashMap<>();
     private List<String> deletePatient = new ArrayList<>();
@@ -101,30 +101,29 @@ public class TaizDataImportApiTest {
         for (Map.Entry<String, String> entry : patientMap.entrySet()) {
             List<PatientText> patientTexts = new ArrayList<>();
             //病人的病案首页内容
-//            List<Map<String, Object>> homePageList = DataTest.loadHomePage(tableMap.get("BR_RECHOME"), entry.getKey());
-//            if (homePageList == null || homePageList.isEmpty()) { //没病案首页直接不导入
-//                deletePatient.add(entry.getKey()); //没病案首页的患者也要删除
-//                continue;
-//            }
-//            Map<String, Object> homePageMap = homePageList.get(0);
-//            homePageMap.put("门急诊诊断", FastJsonUtils.getBeanToJson(DataTest.loadHomePageDiagnose(tableMap.get("BR_RECDIAGNOSE"), "1", entry.getKey())).replaceAll("\"", "'"));
-//            homePageMap.put("出院诊断", FastJsonUtils.getBeanToJson(DataTest.loadHomePageDiagnose(tableMap.get("BR_RECDIAGNOSE"),"2", entry.getKey())).replaceAll("\"", "'"));
-//            homePageMap.put("损伤、中毒外部原因", FastJsonUtils.getBeanToJson(DataTest.loadHomePageDiagnose(tableMap.get("BR_RECDIAGNOSE"),"3", entry.getKey())).replaceAll("\"", "'"));
-//            homePageMap.put("病理诊断", FastJsonUtils.getBeanToJson(DataTest.loadHomePageDiagnose(tableMap.get("BR_RECDIAGNOSE"), "4", entry.getKey())).replaceAll("\"", "'"));
-//            homePageMap.put("手术信息", FastJsonUtils.getBeanToJson(DataTest.loadHomePageOperation(tableMap.get("BR_RECOPERATION"), tableMap.get("GI_USERINFO"), entry.getKey())).replaceAll("\"", "'"));
-//
-//            Map<String, Object> firstPageTextMap = new HashMap<>();
-//            firstPageTextMap.put("case_number", entry.getKey());
-//            firstPageTextMap.put("case_number_id", patientMap.get(entry.getKey()));
-//            firstPageTextMap.put("hospital_id", hospitalId);
-//            firstPageTextMap.put("mode_id", 6);
-//            firstPageTextMap.put("origin_mode", "病案首页");
-//            firstPageTextMap.put("origin_text", FastJsonUtils.getBeanToJson(homePageMap));
-//            String pagetext = "";
-//            for (Map.Entry<String, Object> e : homePageMap.entrySet()) {
-//                pagetext = pagetext + "【" + e.getKey() + "】:" + e.getValue().toString() + "\n";
-//            }
-//            firstPageTextMap.put("text", pagetext);
+            List<Map<String, Object>> homePageList = DataTest.loadHomePage(tableMap.get("BR_RECHOME"), entry.getKey());
+            if (homePageList == null || homePageList.isEmpty()) { //没病案首页直接不导入
+                deletePatient.add(entry.getKey()); //没病案首页的患者也要删除
+                continue;
+            }
+            Map<String, Object> homePageMap = homePageList.get(0);
+            homePageMap.put("出院诊断", FastJsonUtils.getBeanToJson(DataTest.loadHomePageDiagnose(tableMap.get("BR_RECDIAGNOSE"),"2", entry.getKey())).replaceAll("\"", "'"));
+            homePageMap.put("损伤、中毒外部原因", FastJsonUtils.getBeanToJson(DataTest.loadHomePageDiagnose(tableMap.get("BR_RECDIAGNOSE"),"3", entry.getKey())).replaceAll("\"", "'"));
+            homePageMap.put("病理诊断", FastJsonUtils.getBeanToJson(DataTest.loadHomePageDiagnose(tableMap.get("BR_RECDIAGNOSE"), "4", entry.getKey())).replaceAll("\"", "'"));
+            homePageMap.put("手术信息", FastJsonUtils.getBeanToJson(DataTest.loadHomePageOperation(tableMap.get("BR_RECOPERATION"), tableMap.get("GI_USERINFO"), entry.getKey())).replaceAll("\"", "'"));
+
+            Map<String, Object> firstPageTextMap = new HashMap<>();
+            firstPageTextMap.put("case_number", entry.getKey());
+            firstPageTextMap.put("case_number_id", patientMap.get(entry.getKey()));
+            firstPageTextMap.put("hospital_id", hospitalId);
+            firstPageTextMap.put("mode_id", 6);
+            firstPageTextMap.put("origin_mode", "病案首页");
+            firstPageTextMap.put("origin_text", FastJsonUtils.getBeanToJson(homePageMap));
+            String pagetext = "";
+            for (Map.Entry<String, Object> e : homePageMap.entrySet()) {
+                pagetext = pagetext + "【" + e.getKey() + "】:" + e.getValue().toString() + "\n";
+            }
+            firstPageTextMap.put("text", pagetext);
             if ("changx".equals(cid)) {
                 patientTexts = loadChangxOraclePatientTexts(entry.getKey());
             }
@@ -135,25 +134,25 @@ public class TaizDataImportApiTest {
                 continue;
             }
             //数据完整后才放入病案首页
-//            list.add(firstPageTextMap);
+            list.add(firstPageTextMap);
 
             //病人医嘱信息
-//            List<Map<String, Object>> docAdviceMap = DataTest.loadHomePage(tableMap.get("BR_DOCTADVICE"), entry.getKey());
-//            for (Map<String, Object> docMap : docAdviceMap) {
-//                Map<String, Object> docAdviceTextMap = new HashMap<>();
-//                docAdviceTextMap.put("case_number", entry.getKey());
-//                docAdviceTextMap.put("case_number_id", patientMap.get(entry.getKey()));
-//                docAdviceTextMap.put("hospital_id", hospitalId);
-//                docAdviceTextMap.put("mode_id", 8);
-//                docAdviceTextMap.put("origin_mode", "医嘱信息");
-//                docAdviceTextMap.put("origin_text", FastJsonUtils.getBeanToJson(docMap));
-//                pagetext = "";
-//                for (Map.Entry<String, Object> e : docMap.entrySet()) {
-//                    pagetext = pagetext + "【" + e.getKey() + "】:" + e.getValue().toString() + "\n";
-//                }
-//                docAdviceTextMap.put("text", pagetext);
-//                list.add(docAdviceTextMap);
-//            }
+            List<Map<String, Object>> docAdviceMap = DataTest.loadHomePage(tableMap.get("BR_DOCTADVICE"), entry.getKey());
+            for (Map<String, Object> docMap : docAdviceMap) {
+                Map<String, Object> docAdviceTextMap = new HashMap<>();
+                docAdviceTextMap.put("case_number", entry.getKey());
+                docAdviceTextMap.put("case_number_id", patientMap.get(entry.getKey()));
+                docAdviceTextMap.put("hospital_id", hospitalId);
+                docAdviceTextMap.put("mode_id", 8);
+                docAdviceTextMap.put("origin_mode", "医嘱信息");
+                docAdviceTextMap.put("origin_text", FastJsonUtils.getBeanToJson(docMap));
+                pagetext = "";
+                for (Map.Entry<String, Object> e : docMap.entrySet()) {
+                    pagetext = pagetext + "【" + e.getKey() + "】:" + e.getValue().toString() + "\n";
+                }
+                docAdviceTextMap.put("text", pagetext);
+                list.add(docAdviceTextMap);
+            }
             //病人其他文书信息
             for (PatientText patientText : patientTexts) {
                 Map<String, Object> patientTextMap = new HashMap<>();
@@ -182,7 +181,7 @@ public class TaizDataImportApiTest {
                 list.add(patientTextMap);
             }
         }
-        initMysqlJdbc().insert(list, "qc_model_mapping_add", new String[]{"case_number", "case_number_id", "origin_text", "mode_id", "text", "origin_mode"});
+        initMysqlJdbc().insert(list, "qc_model_mapping_copy", new String[]{"case_number", "case_number_id", "origin_text", "mode_id", "text", "origin_mode"});
 
         deletePatientInfos(deletePatient);
     }
@@ -362,7 +361,7 @@ public class TaizDataImportApiTest {
         Map<String, String> map = new HashMap<>();
         try {
             st = conn.createStatement();
-            String sql = "select id, case_number from qc_cases_number_copy where hospital_id = " + hospitalId;
+            String sql = "select id, case_number from qc_cases_number where hospital_id = " + hospitalId;
             rs = st.executeQuery(sql);
             while (rs.next()) {
                 r1 = rs.getString(1);