Преглед на файлове

Merge remote-tracking branch 'origin/master'

rengb преди 5 години
родител
ревизия
04767f8e1d
променени са 31 файла, в които са добавени 633 реда и са изтрити 251 реда
  1. 16 4
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0442.java
  2. 9 8
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0443.java
  3. 56 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0448.java
  4. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0560.java
  5. 16 11
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0196.java
  6. 1 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0146.java
  7. 14 11
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0147.java
  8. 11 5
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0148.java
  9. 14 10
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0149.java
  10. 9 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0150.java
  11. 8 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0151.java
  12. 8 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0152.java
  13. 8 3
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0153.java
  14. 10 6
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0154.java
  15. 10 6
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0155.java
  16. 10 6
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0156.java
  17. 10 4
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0396.java
  18. 6 3
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0507.java
  19. 14 10
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0509.java
  20. 26 22
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0514.java
  21. 8 5
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0515.java
  22. 3 2
      kernel/src/main/java/com/lantone/qc/kernel/web/controller/QCTestController.java
  23. 124 22
      kernel/src/test/java/com/lantone/qc/kernel/DataTest.java
  24. 42 20
      kernel/src/test/java/com/lantone/qc/kernel/TaizDataImportApiTest.java
  25. 10 0
      kernel/src/test/java/com/lantone/qc/kernel/model/ImportDiag.java
  26. 6 1
      public/src/main/java/com/lantone/qc/pub/Content.java
  27. 5 5
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxFirstPageRecordDocTrans.java
  28. 2 1
      trans/src/main/java/com/lantone/qc/trans/changx/util/CxXmlUtilTemp.java
  29. 83 79
      trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouDocTrans.java
  30. 37 0
      trans/src/main/java/com/lantone/qc/trans/taizhou/util/TzXmlUtil.java
  31. 56 0
      trans/src/main/java/com/lantone/qc/trans/util/http/db/DBUtil.java

+ 16 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0442.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.behospitalized;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.entity.GeneralDesc;
 import org.springframework.stereotype.Component;
 
@@ -18,16 +19,27 @@ import java.util.List;
 @Component
 public class BEH0442 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-
-        List<GeneralDesc> generals = inputInfo.getBeHospitalizedDoc().getPresentLabel().getGenerals();
+        status.set("0");
+        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
+        if(beHospitalizedDoc != null && beHospitalizedDoc.getPresentLabel() != null){
+            String text = beHospitalizedDoc.getPresentLabel().getText();
+            if(text != null && (text.contains("二便")|| text.contains("小便")
+                    ||text.contains("大便")||text.contains("大小便"))){
+                return;
+            }else {
+                status.set("-1");
+            }
+        }
+        /*List<GeneralDesc> generals = inputInfo.getBeHospitalizedDoc().getPresentLabel().getGenerals();
         if(generals.size() > 0 || generals != null){
             for (GeneralDesc general:generals) {
-                if(general.getName().contains("二便") || general.getName().contains("小便")||general.getName().contains("大便")){
+                if(general.getName().contains("二便") || general.getName().contains("小便")
+                        ||general.getName().contains("大便")||general.getName().contains("大小便")){
                     status.set("0");
                     break;
                 }
             }
-        }
+        }*/
 
     }
 }

+ 9 - 8
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0443.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.behospitalized;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.entity.GeneralDesc;
 import org.springframework.stereotype.Component;
 
@@ -18,14 +19,14 @@ import java.util.List;
 @Component
 public class BEH0443 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-
-        List<GeneralDesc> generals = inputInfo.getBeHospitalizedDoc().getPresentLabel().getGenerals();
-        if(generals.size() > 0 || generals != null){
-            for (GeneralDesc general:generals) {
-                if(general.getName().contains("体重")){
-                    status.set("0");
-                    break;
-                }
+        status.set("0");
+        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
+        if(beHospitalizedDoc != null && beHospitalizedDoc.getPresentLabel() != null){
+            String text = beHospitalizedDoc.getPresentLabel().getText();
+            if(text != null && text.contains("体重")){
+                return;
+            }else {
+                status.set("-1");
             }
         }
 

+ 56 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0448.java

@@ -0,0 +1,56 @@
+package com.lantone.qc.kernel.catalogue.behospitalized;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
+import com.lantone.qc.pub.model.entity.Clinical;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * @ClassName : BEH0448
+ * @Description : 现病史症状缺少伴随症状
+ * @Author : Mark
+ * @Date: 2020-04-05 10:58
+ */
+@Component
+public class BEH0448 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
+        if(beHospitalizedDoc != null){
+            int cnt = 0;
+
+            List<Clinical> clinicals_present = beHospitalizedDoc.getPresentLabel().getClinicals();
+
+            String present_txt = beHospitalizedDoc.getPresentLabel().getText();
+            String present_chief_txt = present_txt.split("伴")[0];
+
+            List<String> present_symp = new ArrayList<>();
+
+            for (Clinical clinical:clinicals_present) {
+                if (clinical.getNegative()==null) {
+                    if (present_symp.indexOf(clinical.getName()) == -1) {
+                        present_symp.add(clinical.getName());
+                    }
+                }
+                else {
+                    break;
+                }
+            }
+            for (String symp:present_symp) {
+                if (present_chief_txt.contains(symp)) {
+                    cnt += 1;
+                }
+            }
+
+            if(cnt==0){
+                status.set("-1");
+            }
+        }
+    }
+}

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0560.java

@@ -24,7 +24,7 @@ public class BEH0560 extends QCCatalogue {
         BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
         if(beHospitalizedDoc != null){
             int cnt = 0;
-//            List<Clinical> clinicals_chief = beHospitalizedDoc.getChiefLabel().getClinicals();
+
             List<Clinical> clinicals_present = beHospitalizedDoc.getPresentLabel().getClinicals();
 
             String chief_txt = beHospitalizedDoc.getChiefLabel().getText();

+ 16 - 11
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0196.java

@@ -1,15 +1,13 @@
 package com.lantone.qc.kernel.catalogue.firstpagerecord;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
 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.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 /**
  * @ClassName : FIRP0196
@@ -22,14 +20,21 @@ public class FIRP0196 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
-            String brainInjuryComaTime = firstpageStructureMap.get(Content.brainInjuryComaTime).toString();
-            if (!CatalogueUtil.isEmpty(brainInjuryComaTime)) {
-                Pattern digit = Pattern.compile("[\\d|一二三四五六七八九十壹贰叁肆伍陆柒捌玖拾]+");
-                Matcher matcher = digit.matcher(brainInjuryComaTime);
-                if (!matcher.find()) {
-                    status.set("-1");
-                }
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String brainInjuryComaBeforeDays = firstpageStructureMap.get(Content.brainInjuryComaBeforeDays);
+            String brainInjuryComaBeforeHours = firstpageStructureMap.get(Content.brainInjuryComaBeforeHours);
+            String brainInjuryComaBeforeMins = firstpageStructureMap.get(Content.brainInjuryComaBeforeMins);
+            String brainInjuryComaAfterDays = firstpageStructureMap.get(Content.brainInjuryComaAfterDays);
+            String brainInjuryComaAfterHours = firstpageStructureMap.get(Content.brainInjuryComaAfterHours);
+            String brainInjuryComaAfterMins = firstpageStructureMap.get(Content.brainInjuryComaAfterMins);
+            if (StringUtil.isBlank(brainInjuryComaBeforeDays)
+                    || StringUtil.isBlank(brainInjuryComaBeforeHours)
+                    || StringUtil.isBlank(brainInjuryComaBeforeMins)
+                    || StringUtil.isBlank(brainInjuryComaAfterDays)
+                    || StringUtil.isBlank(brainInjuryComaAfterHours)
+                    || StringUtil.isBlank(brainInjuryComaAfterMins)
+            ) {
+                status.set("-1");
             }
         }
     }

+ 1 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0146.java

@@ -15,6 +15,7 @@ public class LEA0146 extends QCCatalogue {
 
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
 
     }
     

+ 14 - 11
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0147.java

@@ -5,6 +5,7 @@ import com.lantone.qc.kernel.util.KernelConstants;
 import com.lantone.qc.kernel.util.RedisUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
@@ -28,19 +29,21 @@ public class LEA0147 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        List<Diag> diags = inputInfo.getLeaveHospitalDoc().getLeaveDiagLabel().getDiags();
-        Map<String, Map<String, String>> hospitalDiagMap = redisUtil.getJsonStringValue(KernelConstants.HOSPITAL_DIAG_MAP);
-        if (ListUtil.isNotEmpty(diags) && hospitalDiagMap != null) {
-            long count = diags.stream().filter(i -> {
-                if (i != null && StringUtil.isNotBlank(i.getHospitalDiagName())) {
-                    return hospitalDiagMap.get(i.getHospitalDiagName()) == null;
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if(deathRecordDoc == null || deathRecordDoc.getText()==null){
+            List<Diag> diags = inputInfo.getLeaveHospitalDoc().getLeaveDiagLabel().getDiags();
+            Map<String, Map<String, String>> hospitalDiagMap = redisUtil.getJsonStringValue(KernelConstants.HOSPITAL_DIAG_MAP);
+            if (ListUtil.isNotEmpty(diags) && hospitalDiagMap != null) {
+                long count = diags.stream().filter(i -> {
+                    if (i != null && StringUtil.isNotBlank(i.getHospitalDiagName())) {
+                        return hospitalDiagMap.get(i.getHospitalDiagName()) == null;
+                    }
+                    return false;
+                }).count();
+                if (count > 0) {
+                    status.set("-1");
                 }
-                return false;
-            }).count();
-            if (count > 0) {
-                status.set("-1");
             }
         }
     }
-
 }

+ 11 - 5
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0148.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.leavehospital;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.util.DateUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
@@ -17,12 +18,17 @@ public class LEA0148 extends QCCatalogue {
 
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        String timeQm = inputInfo.getLeaveHospitalDoc().getStructureMap().get("签名时间");
-        String timeCy = inputInfo.getLeaveHospitalDoc().getStructureMap().get("出院时间");
-        if (StringUtil.isNotBlank(timeQm)
-                && StringUtil.isNotBlank(timeCy)
-                && DateUtil.parseDate(timeQm).getTime() <= DateUtil.parseDate(timeCy).getTime()) {
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if(deathRecordDoc == null || deathRecordDoc.getText() !=null){
             status.set("0");
+        }else {
+            String timeQm = inputInfo.getLeaveHospitalDoc().getStructureMap().get("签名时间");
+            String timeCy = inputInfo.getLeaveHospitalDoc().getStructureMap().get("出院时间");
+            if (StringUtil.isNotBlank(timeQm)
+                    && StringUtil.isNotBlank(timeCy)
+                    && DateUtil.parseDate(timeQm).getTime() <= DateUtil.parseDate(timeCy).getTime()) {
+                status.set("0");
+            }
         }
     }
 

+ 14 - 10
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0149.java

@@ -4,6 +4,7 @@ import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
 import com.lantone.qc.pub.model.entity.Chief;
 import com.lantone.qc.pub.model.entity.General;
@@ -28,16 +29,19 @@ public class LEA0149 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
-        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
-        if(leaveHospitalDoc != null && beHospitalizedDoc != null){
-            Map<String, String> lhStructureMap = leaveHospitalDoc.getStructureMap();
-            ChiefLabel chiefLabel = beHospitalizedDoc.getChiefLabel();
-            if(lhStructureMap != null && chiefLabel != null){
-                String bhChief = chiefLabel.getText();
-                String bhThings = lhStructureMap.get("入院情况");
-                if(bhThings.indexOf(bhChief)<0){
-                    status.set("-1");
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if (deathRecordDoc == null || deathRecordDoc.getText() == null) {
+            LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
+            BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
+            if (leaveHospitalDoc != null && beHospitalizedDoc != null) {
+                Map<String, String> lhStructureMap = leaveHospitalDoc.getStructureMap();
+                ChiefLabel chiefLabel = beHospitalizedDoc.getChiefLabel();
+                if (lhStructureMap != null && chiefLabel != null) {
+                    String bhChief = chiefLabel.getText();
+                    String bhThings = lhStructureMap.get("入院情况");
+                    if (bhThings.indexOf(bhChief) < 0) {
+                        status.set("-1");
+                    }
                 }
             }
         }

+ 9 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0150.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.leavehospital;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
@@ -16,10 +17,16 @@ public class LEA0150 extends QCCatalogue {
 
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        String message = inputInfo.getLeaveHospitalDoc().getStructureMap().get("入院情况");
-        if (StringUtil.isNotBlank(message)) {
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if(deathRecordDoc == null || deathRecordDoc.getText() != null){
             status.set("0");
+        }else {
+            String message = inputInfo.getLeaveHospitalDoc().getStructureMap().get("入院情况");
+            if (StringUtil.isNotBlank(message)) {
+                status.set("0");
+            }
         }
+
     }
 
 }

+ 8 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0151.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.leavehospital;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
@@ -21,9 +22,14 @@ public class LEA0151 extends QCCatalogue {
 
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        String text = inputInfo.getLeaveHospitalDoc().getBeHospitalizedLabel().getText();
-        if(!StringUtils.isBlank(text)){
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if (deathRecordDoc == null || deathRecordDoc.getText() != null) {
             status.set("0");
+        } else {
+            String text = inputInfo.getLeaveHospitalDoc().getBeHospitalizedLabel().getText();
+            if (!StringUtils.isBlank(text)) {
+                status.set("0");
+            }
         }
     }
 

+ 8 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0152.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.leavehospital;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
@@ -16,9 +17,14 @@ public class LEA0152 extends QCCatalogue {
 
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        String message = inputInfo.getLeaveHospitalDoc().getStructureMap().get("诊治经过");
-        if (StringUtil.isNotBlank(message)) {
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if (deathRecordDoc == null || deathRecordDoc.getText() != null) {
             status.set("0");
+        } else {
+            String message = inputInfo.getLeaveHospitalDoc().getStructureMap().get("诊治经过");
+            if (StringUtil.isNotBlank(message)) {
+                status.set("0");
+            }
         }
     }
 

+ 8 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0153.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.leavehospital;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
@@ -16,10 +17,14 @@ public class LEA0153 extends QCCatalogue {
 
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        String message = inputInfo.getLeaveHospitalDoc().getStructureMap().get("出院情况");
-        if (StringUtil.isNotBlank(message)) {
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if (deathRecordDoc == null || deathRecordDoc.getText() != null) {
             status.set("0");
+        } else {
+            String message = inputInfo.getLeaveHospitalDoc().getStructureMap().get("出院情况");
+            if (StringUtil.isNotBlank(message)) {
+                status.set("0");
+            }
         }
     }
-
 }

+ 10 - 6
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0154.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.leavehospital;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
 import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.model.label.DiagLabel;
@@ -25,12 +26,15 @@ public class LEA0154 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
-        if(leaveHospitalDoc != null){
-            DiagLabel leaveDiagLabel = leaveHospitalDoc.getLeaveDiagLabel();
-            if(leaveDiagLabel != null){
-                if(StringUtils.isBlank(leaveDiagLabel.getText())){
-                    status.set("-1");
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if(deathRecordDoc == null || deathRecordDoc.getText() == null){
+            LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
+            if(leaveHospitalDoc != null){
+                DiagLabel leaveDiagLabel = leaveHospitalDoc.getLeaveDiagLabel();
+                if(leaveDiagLabel != null){
+                    if(StringUtils.isBlank(leaveDiagLabel.getText())){
+                        status.set("-1");
+                    }
                 }
             }
         }

+ 10 - 6
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0155.java

@@ -4,6 +4,7 @@ import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
 import com.lantone.qc.pub.model.entity.DoctorAdvice;
 import com.lantone.qc.pub.model.label.LeaveHospitalLabel;
@@ -26,12 +27,15 @@ public class LEA0155 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
-        if(leaveHospitalDoc != null){
-            Map<String, String> structureMap = leaveHospitalDoc.getStructureMap();
-            if(structureMap != null){
-                if(StringUtils.isBlank(structureMap.get("出院医嘱"))){
-                    status.set("-1");
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if (deathRecordDoc == null || deathRecordDoc.getText() == null) {
+            LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
+            if (leaveHospitalDoc != null) {
+                Map<String, String> structureMap = leaveHospitalDoc.getStructureMap();
+                if (structureMap != null) {
+                    if (StringUtils.isBlank(structureMap.get("出院医嘱"))) {
+                        status.set("-1");
+                    }
                 }
             }
         }

+ 10 - 6
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0156.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.leavehospital;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
 import com.lantone.qc.pub.model.entity.Notes;
 import com.lantone.qc.pub.model.label.LeaveHospitalLabel;
@@ -25,12 +26,15 @@ public class LEA0156 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
-        if(leaveHospitalDoc != null){
-            Map<String, String> structureMap = leaveHospitalDoc.getStructureMap();
-            if(structureMap != null){
-                if(StringUtils.isBlank(structureMap.get("健康教育"))){
-                    status.set("-1");
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if(deathRecordDoc == null || deathRecordDoc.getText() == null) {
+            LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
+            if (leaveHospitalDoc != null) {
+                Map<String, String> structureMap = leaveHospitalDoc.getStructureMap();
+                if (structureMap != null) {
+                    if (StringUtils.isBlank(structureMap.get("健康教育"))) {
+                        status.set("-1");
+                    }
                 }
             }
         }

+ 10 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0396.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.leavehospital;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
@@ -16,10 +17,15 @@ public class LEA0396 extends QCCatalogue {
 
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        String time = inputInfo.getLeaveHospitalDoc().getStructureMap().get("出院时间");
-        if (StringUtil.isNotBlank(time)) {
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if(deathRecordDoc == null || deathRecordDoc.getText() == null){
             status.set("0");
+        }else {
+            String time = inputInfo.getLeaveHospitalDoc().getStructureMap().get("出院时间");
+            if (StringUtil.isNotBlank(time)) {
+                status.set("0");
+            }
         }
-    }
 
-}
+    }
+}

+ 6 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0507.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.leavehospital;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
@@ -16,9 +17,11 @@ public class LEA0507 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if (inputInfo.getLeaveHospitalDoc() == null) {
-            status.set("-1");
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if (deathRecordDoc == null || deathRecordDoc.getText() == null) {
+            if (inputInfo.getLeaveHospitalDoc() == null) {
+                status.set("-1");
+            }
         }
     }
-
 }

+ 14 - 10
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0509.java

@@ -4,6 +4,7 @@ import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.model.label.DiagLabel;
 import com.lantone.qc.pub.util.ListUtil;
@@ -21,16 +22,19 @@ public class LEA0509 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if (inputInfo.getLeaveHospitalDoc() != null || inputInfo.getFirstCourseRecordDoc() != null) {
-            DiagLabel beHospitalizedLabel = inputInfo.getLeaveHospitalDoc().getBeHospitalizedLabel();
-            DiagLabel initialDiagLabel = inputInfo.getFirstCourseRecordDoc().getInitialDiagLabel();
-            if (beHospitalizedLabel != null && initialDiagLabel != null) {
-                //出院记录入院诊断
-                List<Diag> beHospitalizedDiags = beHospitalizedLabel.getDiags();
-                //首程初步诊断
-                List<Diag> initialDiags = initialDiagLabel.getDiags();
-                if (!ListUtil.equals(beHospitalizedDiags, initialDiags)) {
-                    status.set("-1");
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if(deathRecordDoc == null || deathRecordDoc.getText() == null) {
+            if (inputInfo.getLeaveHospitalDoc() != null || inputInfo.getFirstCourseRecordDoc() != null) {
+                DiagLabel beHospitalizedLabel = inputInfo.getLeaveHospitalDoc().getBeHospitalizedLabel();
+                DiagLabel initialDiagLabel = inputInfo.getFirstCourseRecordDoc().getInitialDiagLabel();
+                if (beHospitalizedLabel != null && initialDiagLabel != null) {
+                    //出院记录入院诊断
+                    List<Diag> beHospitalizedDiags = beHospitalizedLabel.getDiags();
+                    //首程初步诊断
+                    List<Diag> initialDiags = initialDiagLabel.getDiags();
+                    if (!ListUtil.equals(beHospitalizedDiags, initialDiags)) {
+                        status.set("-1");
+                    }
                 }
             }
         }

+ 26 - 22
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0514.java

@@ -5,6 +5,7 @@ import com.lantone.qc.kernel.util.CatalogueUtil;
 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.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.model.label.DiagLabel;
 import com.lantone.qc.pub.util.ListUtil;
@@ -24,29 +25,32 @@ public class LEA0514 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if (inputInfo.getLeaveHospitalDoc() != null || inputInfo.getFirstPageRecordDoc() != null) {
-            DiagLabel leaveDiagLabel = inputInfo.getLeaveHospitalDoc().getLeaveDiagLabel();
-            Map<String, Object> firstPageRecordStructureExtMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
-            List<Map<String, String>> dischargeDiagStructure = (List<Map<String, String>>) firstPageRecordStructureExtMap.get(Content.dischargeDiag);
-            if (ListUtil.isEmpty(dischargeDiagStructure)){
-                return;
-            }
-            //首页出院诊断
-            List<Diag> dischargeDiags = new ArrayList<>();
-            for (Map<String, String> dischargeDiagMap:dischargeDiagStructure) {
-                String diagnoseName = dischargeDiagMap.get(Content.diagnoseName);
-                if (CatalogueUtil.isEmpty(diagnoseName)){
-                    continue;
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if (deathRecordDoc == null || deathRecordDoc.getText() == null) {
+            if (inputInfo.getLeaveHospitalDoc() != null || inputInfo.getFirstPageRecordDoc() != null) {
+                DiagLabel leaveDiagLabel = inputInfo.getLeaveHospitalDoc().getLeaveDiagLabel();
+                Map<String, Object> firstPageRecordStructureExtMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
+                List<Map<String, String>> dischargeDiagStructure = (List<Map<String, String>>) firstPageRecordStructureExtMap.get(Content.dischargeDiag);
+                if (ListUtil.isEmpty(dischargeDiagStructure)) {
+                    return;
                 }
-                Diag diag = new Diag();
-                diag.setName(diagnoseName);
-                dischargeDiags.add(diag);
-            }
-            if (leaveDiagLabel != null) {
-                //出院记录出院诊断
-                List<Diag> beHospitalizedDiags = leaveDiagLabel.getDiags();
-                if (!ListUtil.equals(beHospitalizedDiags, dischargeDiags)) {
-                    status.set("-1");
+                //首页出院诊断
+                List<Diag> dischargeDiags = new ArrayList<>();
+                for (Map<String, String> dischargeDiagMap : dischargeDiagStructure) {
+                    String diagnoseName = dischargeDiagMap.get(Content.diagnoseName);
+                    if (CatalogueUtil.isEmpty(diagnoseName)) {
+                        continue;
+                    }
+                    Diag diag = new Diag();
+                    diag.setName(diagnoseName);
+                    dischargeDiags.add(diag);
+                }
+                if (leaveDiagLabel != null) {
+                    //出院记录出院诊断
+                    List<Diag> beHospitalizedDiags = leaveDiagLabel.getDiags();
+                    if (!ListUtil.equals(beHospitalizedDiags, dischargeDiags)) {
+                        status.set("-1");
+                    }
                 }
             }
         }

+ 8 - 5
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0515.java

@@ -4,6 +4,7 @@ import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import org.springframework.stereotype.Component;
 
 import java.util.Map;
@@ -18,12 +19,14 @@ public class LEA0515 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if (inputInfo.getLeaveHospitalDoc() != null && inputInfo.getLeaveHospitalDoc().getStructureMap() != null) {
-            Map<String, String> leaveHospitalStructureMap = inputInfo.getLeaveHospitalDoc().getStructureMap();
-            if (CatalogueUtil.isEmpty(leaveHospitalStructureMap.get("健康教育(包括饮食指导)"))) {
-                status.set("-1");
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if (deathRecordDoc == null || deathRecordDoc.getText() == null) {
+            if (inputInfo.getLeaveHospitalDoc() != null && inputInfo.getLeaveHospitalDoc().getStructureMap() != null) {
+                Map<String, String> leaveHospitalStructureMap = inputInfo.getLeaveHospitalDoc().getStructureMap();
+                if (CatalogueUtil.isEmpty(leaveHospitalStructureMap.get("健康教育(包括饮食指导)"))) {
+                    status.set("-1");
+                }
             }
         }
     }
-
 }

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/web/controller/QCTestController.java

@@ -150,7 +150,7 @@ public class QCTestController {
                 modeIds.add(r1);
             }
 
-            sql = "select code, name from qc_cases_entry q1, qc_cases_entry_hospital q2 where q1.id = q2.cases_entry_id ";   //查询所有条目
+            sql = "select code, name, precond from qc_cases_entry q1, qc_cases_entry_hospital q2 where q1.id = q2.cases_entry_id ";   //查询所有条目
             if (StringUtils.isNotEmpty(hospitalId)) {
                 sql = sql + " and q2.hospital_id = " + hospitalId;
             }
@@ -159,8 +159,9 @@ public class QCTestController {
             while (rs.next()) {
                 r1 = rs.getString(1);
                 r2 = rs.getString(2);
+                r3 = rs.getString(3);
                 Map<String, String> m = new HashMap<>();
-                m.put("precond", "");
+                m.put("precond", r3);
                 m.put("name", r2);
                 m.put("code", r1);
                 inputCatalogueMap.put(r1, m);

+ 124 - 22
kernel/src/test/java/com/lantone/qc/kernel/DataTest.java

@@ -3,6 +3,8 @@ package com.lantone.qc.kernel;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONException;
 import com.alibaba.fastjson.JSONObject;
+import com.lantone.qc.kernel.model.ImportDiag;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.pub.util.PropertiesUtil;
 
 import java.sql.*;
@@ -19,27 +21,13 @@ public class DataTest {
 
     }
 
-    public static List<Map<String, String>> loadHomePage(String tableName, String patientId) {
+    public static List<Map<String, Object>> loadHomePage(String tableName, String patientId) {
         Connection conn = null;
         Statement stmt = null;
         ResultSet rs = null;
-        List<Map<String, String>> resultList = null;
+        List<Map<String, Object>> resultList = null;
         try {
-            PropertiesUtil propertiesUtil = new PropertiesUtil("kernel.properties");
-            Class.forName(propertiesUtil.getProperty("oracle.test.driver"));
-
-            Properties props = new Properties();
-            String url = propertiesUtil.getProperty("oracle.test.url");
-            // 127.0.0.1是本机地址,1521是Oracle默认连接端口,DATABASE_NAME为实例名(SID)
-            String user = propertiesUtil.getProperty("oracle.test.user");// 用户系统默认的账户名
-            String password = propertiesUtil.getProperty("oracle.test.password");// 你安装时选设置的密码
-            props.put("user", user);
-            props.put("password", password);
-            props.put("defaultRowPrefetch", "15");
-            props.put("remarksReporting", "true");
-            //默认情况下不允许用dba身份连接数据库,通过property设置以实现dba连接
-            conn = DriverManager.getConnection(url, props);
-            System.out.println("connection succeed!");
+            conn = getConnection();
             stmt = conn.createStatement();
 
             DatabaseMetaData dmd = conn.getMetaData();
@@ -53,8 +41,6 @@ public class DataTest {
 
             rs = stmt.executeQuery("select * from " + tableName + " where brzyid = '" + patientId + "'");
             resultList = resultSetToJson(rs, colMap);
-        } catch (SQLException ex) {
-            ex.printStackTrace();
         } catch (Exception e) {
             e.printStackTrace();
         } finally {
@@ -78,14 +64,112 @@ public class DataTest {
         return resultList;
     }
 
-    public static List<Map<String, String>> resultSetToJson(ResultSet rs, Map<String, String> map) throws SQLException, JSONException {
+    public static List<Map<String, String>> loadHomePageDiagnose(String tableName, String zdlbdm, String patientId) {
+        Connection conn = null;
+        Statement stmt = null;
+        ResultSet rs = null;
+        List<Map<String, String>> resultList = new ArrayList<>();
+        try {
+            conn = getConnection();
+            stmt = conn.createStatement();
+            if (zdlbdm.equals("1")) {
+                zdlbdm = "'门诊诊断'";
+            } else if (zdlbdm.equals("2")) {
+                zdlbdm = "'主要诊断','其他诊断'";
+            } else if (zdlbdm.equals("3")) {
+                zdlbdm = "'损伤中毒诊断'";
+            } else if (zdlbdm.equals("4")) {
+                zdlbdm = "'病理诊断'";
+            }
+            rs = stmt.executeQuery("select zdjbmc, icdm from " + tableName + " where zdlbdm in (" + zdlbdm + ") and basyid = '" + patientId + "' order by zdlbdm desc");
+            while (rs.next()) {
+                Map<String, String> map = new LinkedHashMap<>();
+                map.put("诊断名称", rs.getString(1));
+                map.put("诊断编码", rs.getString(2));
+                resultList.add(map);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                if (rs != null) {
+                    rs.close();
+                    rs = null;
+                }
+                if (stmt != null) {
+                    stmt.close();
+                    stmt = null;
+                }
+                if (conn != null) {
+                    conn.close();
+                    conn = null;
+                }
+            } catch (SQLException e) {
+                e.printStackTrace();
+            }
+        }
+        return resultList;
+    }
+
+    public static List<Map<String, String>> loadHomePageOperation(String tableNameOperation, String tableNameUser, String patientId) {
+        Connection conn = null;
+        Statement stmt = null;
+        ResultSet rs = null;
+        List<Map<String, String>> resultList = new ArrayList<>();
+        try {
+            conn = getConnection();
+            stmt = conn.createStatement();
+            rs = stmt.executeQuery("SELECT r.BASYID, r.brssxh, r.BRSSRQ, r.BRSSMC, SSDMID, r.QKDJDM, r.YHDJDM, SSYSID, \n" +
+                    "U1.YHRYMC, r.YZHSID, u3.yhrymc, r.MZYSID, u2.yhrymc, r.MZFFMC  FROM " + tableNameOperation + " r\n" +
+                    "left join " + tableNameUser + " u1 on r.SSYSID = u1.YHRYDM\n" +
+                    "left join " + tableNameUser + " u2 on r.mzysid = u2.YHRYDM\n" +
+                    "left join " + tableNameUser + " u3 on r.yzhsid = u3.YHRYDM\n" +
+                    "where r.BASYID = '" + patientId + "' " +
+                    "order by r.BASYID, r.brssxh");
+            while (rs.next()) {
+                Map<String, String> map = new LinkedHashMap<>();
+                map.put("手术日期", rs.getString(3));
+                map.put("手术名称", rs.getString(4));
+                map.put("手术编码", rs.getString(5));
+                map.put("切口等级", rs.getString(6));
+                map.put("愈合等级", rs.getString(7));
+                map.put("术者", rs.getString(9));
+                map.put("一助", rs.getString(11));
+                map.put("麻醉医师", rs.getString(13));
+                map.put("麻醉方式", rs.getString(14));
+                resultList.add(map);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                if (rs != null) {
+                    rs.close();
+                    rs = null;
+                }
+                if (stmt != null) {
+                    stmt.close();
+                    stmt = null;
+                }
+                if (conn != null) {
+                    conn.close();
+                    conn = null;
+                }
+            } catch (SQLException e) {
+                e.printStackTrace();
+            }
+        }
+        return resultList;
+    }
+
+    public static List<Map<String, Object>> resultSetToJson(ResultSet rs, Map<String, String> map) throws SQLException, JSONException {
         // 获取列数
         ResultSetMetaData metaData = (ResultSetMetaData) rs.getMetaData();
         int columnCount = metaData.getColumnCount();
-        List<Map<String, String>> resultList = new ArrayList<>();
+        List<Map<String, Object>> resultList = new ArrayList<>();
         while (rs.next()) {
             // 遍历ResultSet中的每条数据
-            Map<String, String> result = new LinkedHashMap<>();
+            Map<String, Object> result = new LinkedHashMap<>();
             // 遍历每一列
             for (int i = 1; i <= columnCount; i++) {
                 String columnName = metaData.getColumnLabel(i);
@@ -97,4 +181,22 @@ public class DataTest {
         return resultList;
     }
 
+    private static Connection getConnection() throws Exception {
+        PropertiesUtil propertiesUtil = new PropertiesUtil("kernel.properties");
+        Class.forName(propertiesUtil.getProperty("oracle.test.driver"));
+
+        Properties props = new Properties();
+        String url = propertiesUtil.getProperty("oracle.test.url");
+        // 127.0.0.1是本机地址,1521是Oracle默认连接端口,DATABASE_NAME为实例名(SID)
+        String user = propertiesUtil.getProperty("oracle.test.user");// 用户系统默认的账户名
+        String password = propertiesUtil.getProperty("oracle.test.password");// 你安装时选设置的密码
+        props.put("user", user);
+        props.put("password", password);
+        props.put("defaultRowPrefetch", "15");
+        props.put("remarksReporting", "true");
+        //默认情况下不允许用dba身份连接数据库,通过property设置以实现dba连接
+        Connection conn = DriverManager.getConnection(url, props);
+        return conn;
+    }
+
 }

+ 42 - 20
kernel/src/test/java/com/lantone/qc/kernel/TaizDataImportApiTest.java

@@ -31,23 +31,39 @@ public class TaizDataImportApiTest {
     private static String cid = "changx";
 
     private Map<String,String> caseMap = new HashMap<>();
-
     private List<String> deletePatient = new ArrayList<>();
 
+    private static Map<String, String> tableMap = new HashMap<>();
+
+    private static void initTableMap() {
+        if (cid.equals("changx")) {
+            tableMap.put("BR_INPATIENTINFO", "BR_INPATIENTINFO_CX");//患者信息
+            tableMap.put("GI_USERINFO", "GI_USERINFO_CX"); //医生
+            tableMap.put("HI_DEPTINFO", "HI_DEPTINFO_CX");//科室
+            tableMap.put("BR_RECHOME", "BR_RECHOME_CX");//病案首页
+            tableMap.put("BR_RECDIAGNOSE", "BR_RECDIAGNOSE_CX");//病案首页--出院诊断 门急诊诊断
+            tableMap.put("BR_DOCTADVICE", "BR_DOCTADVICE_CX");//医嘱
+            tableMap.put("BR_RECOPERATION", "BR_RECOPERATION_CX");//病案首页--手术
+        } else if (cid.equals("taizhou")) {
+            tableMap.put("BR_INPATIENTINFO", "BR_INPATIENTINFO_TZ");
+            tableMap.put("GI_USERINFO", "GI_USERINFO_TZ");
+            tableMap.put("HI_DEPTINFO", "HI_DEPTINFO_TZ");
+            tableMap.put("BR_RECHOME", "BR_RECHOME_TZ");
+            tableMap.put("BR_RECDIAGNOSE", "BR_RECDIAGNOSE_TZ");
+            tableMap.put("BR_DOCTADVICE", "BR_DOCTADVICE_TZ");
+            tableMap.put("BR_RECOPERATION", "BR_RECOPERATION_CX");
+        }
+    }
+
     public static void main(String[] args) {
         TaizDataImportApiTest test = new TaizDataImportApiTest();
+        initTableMap();
         //模块映射
         test.loadModelHospital();
-        //长兴患者信息
-        if (cid.equals("changx")) {
-            test.insertPatient(test.loadOraclePatients("BR_INPATIENTINFO_CX"));
-            test.insertDoctor(test.loadOracleDoctorInfos("GI_USERINFO", "HI_DEPTINFO"));
-        }
-        //台州患者信息
-        if (cid.equals("taizhou")) {
-            test.insertPatient(test.loadOraclePatients("BR_INPATIENTINFO_TZ20200330"));
-            test.insertDoctor(test.loadOracleDoctorInfos("GI_USERINFO", "HI_DEPTINFO"));
-        }
+        //患者信息
+        test.insertPatient(test.loadOraclePatients(tableMap.get("BR_INPATIENTINFO")));
+        test.insertDoctor(test.loadOracleDoctorInfos(tableMap.get("GI_USERINFO"), tableMap.get("HI_DEPTINFO")));
+
         //病人流水号获取    病历号--->id
         Map<String, String> patientMap = test.loadPatients(hospitalId);
         //model-->id
@@ -82,24 +98,30 @@ public class TaizDataImportApiTest {
 
     private void insertPatientText(Map<String, String> patientMap, Map<String, String> modelMap) {
         List<Map<String, Object>> list = new ArrayList<>();
-
         for (Map.Entry<String, String> entry : patientMap.entrySet()) {
             List<PatientText> patientTexts = new ArrayList<>();
             //病人的病案首页内容
-            List<Map<String, String>> homePageMap = DataTest.loadHomePage("BR_RECHOME_CX", entry.getKey());
-            if (homePageMap == null || homePageMap.isEmpty()) { //没病案首页直接不导入
+            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.get(0)));
+            firstPageTextMap.put("origin_text", FastJsonUtils.getBeanToJson(homePageMap));
             String pagetext = "";
-            for (Map.Entry<String, String> e : homePageMap.get(0).entrySet()) {
+            for (Map.Entry<String, Object> e : homePageMap.entrySet()) {
                 pagetext = pagetext + "【" + e.getKey() + "】:" + e.getValue().toString() + "\n";
             }
             firstPageTextMap.put("text", pagetext);
@@ -116,8 +138,8 @@ public class TaizDataImportApiTest {
             list.add(firstPageTextMap);
 
             //病人医嘱信息
-            List<Map<String, String>> docAdviceMap = DataTest.loadHomePage("BR_DOCTADVICE_CX", entry.getKey());
-            for (Map<String, String> docMap : docAdviceMap) {
+            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()));
@@ -126,7 +148,7 @@ public class TaizDataImportApiTest {
                 docAdviceTextMap.put("origin_mode", "医嘱信息");
                 docAdviceTextMap.put("origin_text", FastJsonUtils.getBeanToJson(docMap));
                 pagetext = "";
-                for (Map.Entry<String, String> e : docMap.entrySet()) {
+                for (Map.Entry<String, Object> e : docMap.entrySet()) {
                     pagetext = pagetext + "【" + e.getKey() + "】:" + e.getValue().toString() + "\n";
                 }
                 docAdviceTextMap.put("text", pagetext);
@@ -184,7 +206,7 @@ public class TaizDataImportApiTest {
             }
             m.put(modelId, modelId);
         }
-        if (m.get("1") != null && m.get("2") != null && m.get("4") != null && m.get("5") != null) {
+        if (m.get("1") != null && m.get("2") != null && m.get("4") != null && (m.get("5") != null || m.get("24") != null)) {
             return true;
         } else {
             deletePatient.add(patientTexts.get(0).getBrzyid());

+ 10 - 0
kernel/src/test/java/com/lantone/qc/kernel/model/ImportDiag.java

@@ -0,0 +1,10 @@
+package com.lantone.qc.kernel.model;
+
+/**
+ * @ClassName : ImportDiag
+ * @Description :
+ * @Author : 楼辉荣
+ * @Date: 2020-04-05 11:28
+ */
+public class ImportDiag {
+}

+ 6 - 1
public/src/main/java/com/lantone/qc/pub/Content.java

@@ -219,7 +219,12 @@ public class Content {
     public static final String operation_Discussion="术后首次病程及谈话记录";
 
     public static final String outWay="离院方式";
-    public static final String brainInjuryComaTime="颅脑损伤患者昏迷时间";
+    public static final String brainInjuryComaBeforeDays="颅脑损伤患者昏迷前天数";
+    public static final String brainInjuryComaBeforeHours="颅脑损伤患者昏迷前小时";
+    public static final String brainInjuryComaBeforeMins="颅脑损伤患者昏迷前分钟";
+    public static final String brainInjuryComaAfterDays="颅脑损伤患者昏迷后天数";
+    public static final String brainInjuryComaAfterHours="颅脑损伤患者昏迷后小时";
+    public static final String brainInjuryComaAfterMins="颅脑损伤患者昏迷后分钟";
     public static final String daCode="医嘱转院机构名称";
     public static final String reHospitalization="31天内再住院计划";
 

+ 5 - 5
trans/src/main/java/com/lantone/qc/trans/changx/ChangxFirstPageRecordDocTrans.java

@@ -23,11 +23,11 @@ public class ChangxFirstPageRecordDocTrans extends ModelDocTrans {
         firstPageRecordDoc.setStructureMap(content);
 
         Map<String, Object> structureExtMap = Maps.newHashMap();
-//        structureExtMap.put(Content.diagnose_cts, FastJsonUtils.getJsonToBean(content.get(Content.diagnose_cts), Object.class));
-//        structureExtMap.put(Content.outpatientEmergencyDiag, FastJsonUtils.getJsonToBean(content.get(Content.outpatientEmergencyDiag), Object.class));
-//        structureExtMap.put(Content.operative_information, FastJsonUtils.getJsonToBean(content.get(Content.operative_information), Object.class));
-//        structureExtMap.put(Content.dischargeDiag, FastJsonUtils.getJsonToBean(content.get(Content.dischargeDiag), Object.class));
-//        structureExtMap.put(Content.pathologyDiagnose, FastJsonUtils.getJsonToBean(content.get(Content.pathologyDiagnose), Object.class));
+        structureExtMap.put(Content.diagnose_cts, FastJsonUtils.getJsonToBean(content.get(Content.diagnose_cts), Object.class));
+        structureExtMap.put(Content.outpatientEmergencyDiag, FastJsonUtils.getJsonToBean(content.get(Content.outpatientEmergencyDiag), Object.class));
+        structureExtMap.put(Content.operative_information, FastJsonUtils.getJsonToBean(content.get(Content.operative_information), Object.class));
+        structureExtMap.put(Content.dischargeDiag, FastJsonUtils.getJsonToBean(content.get(Content.dischargeDiag), Object.class));
+        structureExtMap.put(Content.pathologyDiagnose, FastJsonUtils.getJsonToBean(content.get(Content.pathologyDiagnose), Object.class));
         firstPageRecordDoc.setStructureExtMap(structureExtMap);
         firstPageRecordDoc.setPageData(medrecVo.getContent());
 

+ 2 - 1
trans/src/main/java/com/lantone/qc/trans/changx/util/CxXmlUtilTemp.java

@@ -43,7 +43,8 @@ public class CxXmlUtilTemp {
 
             if (modelName.equals("首次病程录") || modelName.equals("查房记录") || modelName.equals("会诊记录") || modelName.equals("输血记录")
                     || modelName.equals("术前讨论小结") || modelName.equals("阶段小结") || modelName.equals("术后首次谈话及病程录")
-                    || modelName.equals("转出记录") || modelName.equals("输血后效果评价") || modelName.equals("输血后效果评价") || modelName.equals("危急值记录")) {
+                    || modelName.equals("转出记录") || modelName.equals("输血后效果评价") || modelName.equals("输血后效果评价") || modelName.equals("危急值记录")
+                    || modelName.equals("抢救记录") || modelName.equals("死亡病例讨论记录")) {
                 if (rootElement.element("Region") != null && rootElement.element("Region").element("Content_Text") != null) {
                     retMap.put("内容", rootElement.element("Region").element("Content_Text").getText());
                     return retMap;

+ 83 - 79
trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouDocTrans.java

@@ -17,85 +17,89 @@ public class TaiZhouDocTrans extends DocTrans {
     protected InputInfo extract(QueryVo queryVo) {
         InputInfo inputInfo = new InputInfo();
         for (MedrecVo i : queryVo.getMedrec()) {
-            if (i.getTitle().equals("会诊")) {
-                TaiZhouConsultationDocTrans consultationDocTrans = new TaiZhouConsultationDocTrans();
-                inputInfo.setConsultationDocs(consultationDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("手术")) {
-                TaiZhouOperationDocTrans operationDocTrans = new TaiZhouOperationDocTrans();
-                inputInfo.setOperationDocs(operationDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("转科记录")) {
-                TaiZhouTransferRecordDocTrans transferRecordDocTrans = new TaiZhouTransferRecordDocTrans();
-                inputInfo.setTransferRecordDocs(transferRecordDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("入院记录")) {
-                TaiZhouBeHospitalizedDocTrans beHospitalizedDocTrans = new TaiZhouBeHospitalizedDocTrans();
-                inputInfo.setBeHospitalizedDoc(beHospitalizedDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("输血/血制品病程记录")) {
-                TaiZhouClinicalBloodDocTrans clinicalBloodDocTrans = new TaiZhouClinicalBloodDocTrans();
-                inputInfo.setClinicalBloodDocs(clinicalBloodDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("危急值记录")) {
-                TaiZhouCrisisValueReportDocTrans crisisValueReportDocTrans = new TaiZhouCrisisValueReportDocTrans();
-                inputInfo.setCrisisValueReportDocs(crisisValueReportDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("病危通知书")) {
-                TaiZhouCriticallyIllNoticeDocTrans criticallyIllNoticeDocTrans = new TaiZhouCriticallyIllNoticeDocTrans();
-                inputInfo.setCriticallyIllNoticeDocs(criticallyIllNoticeDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("死亡病例讨论记录")) {
-                TaiZhouDeathCaseDiscussDocTrans deathCaseDiscussDocTrans = new TaiZhouDeathCaseDiscussDocTrans();
-                inputInfo.setDeathCaseDiscussDoc(deathCaseDiscussDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("死亡记录")) {
-                TaiZhouDeathRecordDocTrans deathRecordDocTrans = new TaiZhouDeathRecordDocTrans();
-                inputInfo.setDeathRecordDoc(deathRecordDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("疑难病例讨论记录")) {
-                TaiZhouDifficultCaseDiscussDocTrans difficultCaseDiscussDocTrans = new TaiZhouDifficultCaseDiscussDocTrans();
-                inputInfo.setDifficultCaseDiscussDocs(difficultCaseDiscussDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("医嘱信息")) {
-                TaiZhouDoctorAdviceDocTrans doctorAdviceDocTrans = new TaiZhouDoctorAdviceDocTrans();
-                inputInfo.setDoctorAdviceDocs(doctorAdviceDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("值班交接制度")) {
-                TaiZhouDutyShiftSystemDocTrans dutyShiftSystemDocTrans = new TaiZhouDutyShiftSystemDocTrans();
-                inputInfo.setDutyShiftSystemDocs(dutyShiftSystemDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("首次病程录")) {
-                TaiZhouFirstCourseRecordDocTrans firstCourseRecordDocTrans = new TaiZhouFirstCourseRecordDocTrans();
-                inputInfo.setFirstCourseRecordDoc(firstCourseRecordDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("病案首页")) {
-                TaiZhouFirstPageRecordDocTrans firstPageRecordDocTrans = new TaiZhouFirstPageRecordDocTrans();
-                inputInfo.setFirstPageRecordDoc(firstPageRecordDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("出院小结")) {
-                TaiZhouLeaveHospitalDocTrans leaveHospitalDocTrans = new TaiZhouLeaveHospitalDocTrans();
-                inputInfo.setLeaveHospitalDoc(leaveHospitalDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("分级护理制度")) {
-                TaiZhouNursingSystemDocTrans nursingSystemDocTrans = new TaiZhouNursingSystemDocTrans();
-                inputInfo.setNursingSystemDoc(nursingSystemDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("抢救记录")) {
-                TaiZhouRescueDocTrans rescueDocTrans = new TaiZhouRescueDocTrans();
-                inputInfo.setRescueDocs(rescueDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("病重通知书")) {
-                TaiZhouSeriouslyIllNoticeDocTrans seriouslyIllNoticeDocTrans = new TaiZhouSeriouslyIllNoticeDocTrans();
-                inputInfo.setSeriouslyIllNoticeDocs(seriouslyIllNoticeDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("阶段小结")) {
-                TaiZhouStagesSummaryDocTrans stagesSummaryDocTrans = new TaiZhouStagesSummaryDocTrans();
-                inputInfo.setStagesSummaryDocs(stagesSummaryDocTrans.extract(i));
-            }
-            if (i.getTitle().equals("查房记录")) {
-                TaiZhouThreeLevelWardDocTrans threeLevelWardDocTrans = new TaiZhouThreeLevelWardDocTrans();
-                inputInfo.setThreeLevelWardDocs(threeLevelWardDocTrans.extract(i));
+            switch (i.getTitle()) {
+                case "会诊":
+                    TaiZhouConsultationDocTrans consultationDocTrans = new TaiZhouConsultationDocTrans();
+                    inputInfo.setConsultationDocs(consultationDocTrans.extract(i));
+                    break;
+                case "手术":
+                    TaiZhouOperationDocTrans operationDocTrans = new TaiZhouOperationDocTrans();
+                    inputInfo.setOperationDocs(operationDocTrans.extract(i));
+                    break;
+                case "转科记录":
+                    TaiZhouTransferRecordDocTrans transferRecordDocTrans = new TaiZhouTransferRecordDocTrans();
+                    inputInfo.setTransferRecordDocs(transferRecordDocTrans.extract(i));
+                    break;
+                case "入院记录":
+                    TaiZhouBeHospitalizedDocTrans beHospitalizedDocTrans = new TaiZhouBeHospitalizedDocTrans();
+                    inputInfo.setBeHospitalizedDoc(beHospitalizedDocTrans.extract(i));
+                    break;
+                case "输血/血制品病程记录":
+                    TaiZhouClinicalBloodDocTrans clinicalBloodDocTrans = new TaiZhouClinicalBloodDocTrans();
+                    inputInfo.setClinicalBloodDocs(clinicalBloodDocTrans.extract(i));
+                    break;
+                case "危急值记录":
+                    TaiZhouCrisisValueReportDocTrans crisisValueReportDocTrans = new TaiZhouCrisisValueReportDocTrans();
+                    inputInfo.setCrisisValueReportDocs(crisisValueReportDocTrans.extract(i));
+                    break;
+                case "病危通知书":
+                    TaiZhouCriticallyIllNoticeDocTrans criticallyIllNoticeDocTrans = new TaiZhouCriticallyIllNoticeDocTrans();
+                    inputInfo.setCriticallyIllNoticeDocs(criticallyIllNoticeDocTrans.extract(i));
+                    break;
+                case "死亡病例讨论记录":
+                    TaiZhouDeathCaseDiscussDocTrans deathCaseDiscussDocTrans = new TaiZhouDeathCaseDiscussDocTrans();
+                    inputInfo.setDeathCaseDiscussDoc(deathCaseDiscussDocTrans.extract(i));
+                    break;
+                case "死亡记录":
+                    TaiZhouDeathRecordDocTrans deathRecordDocTrans = new TaiZhouDeathRecordDocTrans();
+                    inputInfo.setDeathRecordDoc(deathRecordDocTrans.extract(i));
+                    break;
+                case "疑难病例讨论记录":
+                    TaiZhouDifficultCaseDiscussDocTrans difficultCaseDiscussDocTrans = new TaiZhouDifficultCaseDiscussDocTrans();
+                    inputInfo.setDifficultCaseDiscussDocs(difficultCaseDiscussDocTrans.extract(i));
+                    break;
+                case "医嘱信息":
+                    TaiZhouDoctorAdviceDocTrans doctorAdviceDocTrans = new TaiZhouDoctorAdviceDocTrans();
+                    inputInfo.setDoctorAdviceDocs(doctorAdviceDocTrans.extract(i));
+                    break;
+                case "值班交接制度":
+                    TaiZhouDutyShiftSystemDocTrans dutyShiftSystemDocTrans = new TaiZhouDutyShiftSystemDocTrans();
+                    inputInfo.setDutyShiftSystemDocs(dutyShiftSystemDocTrans.extract(i));
+                    break;
+                case "首次病程录":
+                    TaiZhouFirstCourseRecordDocTrans firstCourseRecordDocTrans = new TaiZhouFirstCourseRecordDocTrans();
+                    inputInfo.setFirstCourseRecordDoc(firstCourseRecordDocTrans.extract(i));
+                    break;
+                case "病案首页":
+                    TaiZhouFirstPageRecordDocTrans firstPageRecordDocTrans = new TaiZhouFirstPageRecordDocTrans();
+                    inputInfo.setFirstPageRecordDoc(firstPageRecordDocTrans.extract(i));
+                    break;
+                case "出院小结":
+                    TaiZhouLeaveHospitalDocTrans leaveHospitalDocTrans = new TaiZhouLeaveHospitalDocTrans();
+                    inputInfo.setLeaveHospitalDoc(leaveHospitalDocTrans.extract(i));
+                    break;
+                case "分级护理制度":
+                    TaiZhouNursingSystemDocTrans nursingSystemDocTrans = new TaiZhouNursingSystemDocTrans();
+                    inputInfo.setNursingSystemDoc(nursingSystemDocTrans.extract(i));
+                    break;
+                case "抢救记录":
+                    TaiZhouRescueDocTrans rescueDocTrans = new TaiZhouRescueDocTrans();
+                    inputInfo.setRescueDocs(rescueDocTrans.extract(i));
+                    break;
+                case "病重通知书":
+                    TaiZhouSeriouslyIllNoticeDocTrans seriouslyIllNoticeDocTrans = new TaiZhouSeriouslyIllNoticeDocTrans();
+                    inputInfo.setSeriouslyIllNoticeDocs(seriouslyIllNoticeDocTrans.extract(i));
+                    break;
+                case "阶段小结":
+                    TaiZhouStagesSummaryDocTrans stagesSummaryDocTrans = new TaiZhouStagesSummaryDocTrans();
+                    inputInfo.setStagesSummaryDocs(stagesSummaryDocTrans.extract(i));
+                    break;
+                case "查房记录":
+                    TaiZhouThreeLevelWardDocTrans threeLevelWardDocTrans = new TaiZhouThreeLevelWardDocTrans();
+                    inputInfo.setThreeLevelWardDocs(threeLevelWardDocTrans.extract(i));
+                    break;
+                default:
+                    break;
             }
         }
         return inputInfo;

+ 37 - 0
trans/src/main/java/com/lantone/qc/trans/taizhou/util/TzXmlUtil.java

@@ -2,10 +2,16 @@ package com.lantone.qc.trans.taizhou.util;
 
 import com.google.common.collect.Maps;
 import com.lantone.qc.pub.util.StringUtil;
+import com.lantone.qc.trans.changx.util.CxXmlUtil;
+import com.lantone.qc.trans.util.http.db.DBUtil;
 import org.dom4j.Document;
 import org.dom4j.DocumentHelper;
 import org.dom4j.Element;
 
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
 import java.util.List;
 import java.util.Map;
 
@@ -33,4 +39,35 @@ public class TzXmlUtil {
         return retMap;
     }
 
+
+    /**
+     * 测试入口
+     * @param args
+     */
+    public static void main(String[] args) {
+
+        String case_number = "ZY010000656777";
+        String mode_id = "1";
+        String nodePath = "//DocObjContent";
+        try {
+            Connection connection = DBUtil.getConnection();
+            Statement st = connection.createStatement();
+            ResultSet rs = null;
+            //执行查询
+            String sql = "select mode_id, origin_text from qc_model_mapping where case_number='" + case_number + "' and mode_id='" + mode_id + "'";
+            rs = st.executeQuery(sql);
+            //遍历
+            while(rs.next()) {
+                String context = rs.getString("origin_text");
+                Map<String, String> sourceMap = CxXmlUtil.firstLevelNodeValue(nodePath, context);
+                for (String key : sourceMap.keySet()) {
+                    System.out.println("\"" + key + "=\",");
+                }
+            }
+            //进行资源释放
+            DBUtil.release(connection, st, rs);
+        } catch (SQLException e) {
+            e.printStackTrace();
+        }
+    }
 }

+ 56 - 0
trans/src/main/java/com/lantone/qc/trans/util/http/db/DBUtil.java

@@ -0,0 +1,56 @@
+package com.lantone.qc.trans.util.http.db;
+
+/**
+ * @description:
+ * @author: zhoutg
+ * @time: 2020/4/5 10:56
+ */
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+public class DBUtil {
+
+    //将获得的数据库与java的链接返回(返回的类型为Connection)
+    public static Connection getConnection(){
+        Connection connection = null;
+        try {
+            //1.加载驱动程序
+            Class.forName("com.mysql.jdbc.Driver");
+            //2.获得数据库的连接
+            connection = DriverManager.getConnection("jdbc:mysql://192.168.2.236:3306/sys-qctest?useUnicode=true&characterEncoding=UTF-8", "root", "lantone");
+        } catch (ClassNotFoundException e) {
+            e.printStackTrace();
+        } catch (SQLException e) {
+            e.printStackTrace();
+        };
+        return connection;
+    }
+
+    //将获得的数据库与java的链接返回(返回的类型为Connection)
+    public static Statement getStatement(){
+        Connection connection = getConnection();
+        Statement st = null;
+        try {
+            //1.加载驱动程序
+            st = connection.createStatement();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return st;
+    }
+
+    // 释放资源
+    public static void release(Connection connection, Statement st, ResultSet rs ){
+        try {
+            connection.close();
+            st.close();
+            rs.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}