Explorar o código

Merge remote-tracking branch 'origin/dev-1.2' into dev

hujing %!s(int64=5) %!d(string=hai) anos
pai
achega
cda338dee4

+ 4 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0001.java

@@ -6,6 +6,7 @@ import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.PD;
 import com.lantone.qc.pub.model.entity.PD;
 import com.lantone.qc.pub.model.label.ChiefLabel;
 import com.lantone.qc.pub.model.label.ChiefLabel;
+import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
@@ -30,9 +31,10 @@ public class BEH0001 extends QCCatalogue {
         if (chiefLabel == null) {
         if (chiefLabel == null) {
             return;
             return;
         }
         }
-        String chief_text = chiefLabel.getText();
-        if (chief_text.contains("检查") || chief_text.contains("术后") || chief_text.contains("药物")) {
+        String chiefText = chiefLabel.getText();
+        if (StringUtil.isNotBlank(chiefText) && (chiefText.contains("检查") || chiefText.contains("术后") || chiefText.contains("药物"))) {
             status.set("0");
             status.set("0");
+            return;
         } else {
         } else {
             List<Clinical> clinicals = inputInfo.getBeHospitalizedDoc().getChiefLabel().getClinicals();
             List<Clinical> clinicals = inputInfo.getBeHospitalizedDoc().getChiefLabel().getClinicals();
             if (clinicals.size() > 0) {
             if (clinicals.size() > 0) {

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

@@ -6,6 +6,7 @@ import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.PD;
 import com.lantone.qc.pub.model.entity.PD;
 import com.lantone.qc.pub.model.label.ChiefLabel;
 import com.lantone.qc.pub.model.label.ChiefLabel;
+import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
@@ -31,8 +32,8 @@ public class BEH0007 extends QCCatalogue {
             status.set("0");
             status.set("0");
             return;
             return;
         }
         }
-        String chief_text = chiefLabel.getText();
-        if (chief_text.contains("检查") || chief_text.contains("术后") || chief_text.contains("药物")) {
+        String chiefText = chiefLabel.getText();
+        if (StringUtil.isNotBlank(chiefText) && (chiefText.contains("检查") || chiefText.contains("术后") || chiefText.contains("药物"))) {
             status.set("0");
             status.set("0");
         } else {
         } else {
             List<Clinical> clinicals = chiefLabel.getClinicals();
             List<Clinical> clinicals = chiefLabel.getClinicals();

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

@@ -29,7 +29,7 @@ public class BEH0008 extends QCCatalogue {
             return;
             return;
         }
         }
         List<Clinical> clinicals = chiefLabel.getClinicals();
         List<Clinical> clinicals = chiefLabel.getClinicals();
-        if (clinicals.size() <= 3) {
+        if (clinicals != null && clinicals.size() <= 3) {
             status.set("0");
             status.set("0");
         }
         }
 
 

+ 7 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0009.java

@@ -6,6 +6,7 @@ import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.model.label.ChiefLabel;
 import com.lantone.qc.pub.model.label.ChiefLabel;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import java.util.HashMap;
 import java.util.HashMap;
@@ -32,12 +33,12 @@ public class BEH0009 extends QCCatalogue {
             status.set("0");
             status.set("0");
             return;
             return;
         }
         }
-        String chief_text = chiefLabel.getText();
-        if (chief_text.contains("检查") || chief_text.contains("术后") || chief_text.contains("药物") || chief_text.contains("发现")) {
+        String chiefText = chiefLabel.getText();
+        if (StringUtil.isNotBlank(chiefText) && (chiefText.contains("检查") || chiefText.contains("术后") || chiefText.contains("药物") || chiefText.contains("发现"))) {
             status.set("0");
             status.set("0");
         } else {
         } else {
             List<Diag> diags = chiefLabel.getDiags();
             List<Diag> diags = chiefLabel.getDiags();
-            if (diags.size() > 0) {
+            if (diags != null && diags.size() > 0) {
                 for (Diag diag : diags) {
                 for (Diag diag : diags) {
                     String hospitalDiagName = diag.getHospitalDiagName();
                     String hospitalDiagName = diag.getHospitalDiagName();
                     if (hospitalDiagName.contains("术后") || hospitalDiagName.contains("癌") ||
                     if (hospitalDiagName.contains("术后") || hospitalDiagName.contains("癌") ||
@@ -47,15 +48,14 @@ public class BEH0009 extends QCCatalogue {
                     }
                     }
                 }
                 }
             }
             }
-            if (status.get().equals("-1")) {
-                String chiefLabelText = chiefLabel.getText();
+            if (StringUtil.isNotBlank(chiefText) && status.get().equals("-1")) {
                 List<Clinical> clinicals = chiefLabel.getClinicals();
                 List<Clinical> clinicals = chiefLabel.getClinicals();
                 if (clinicals.size() > 0) {
                 if (clinicals.size() > 0) {
                     for (Clinical clinical : clinicals) {
                     for (Clinical clinical : clinicals) {
-                        indexMap.put(clinical.getName(), chiefLabelText.indexOf(clinical.getName()));
+                        indexMap.put(clinical.getName(), chiefText.indexOf(clinical.getName()));
                     }
                     }
                 }
                 }
-                int index_ban = chiefLabelText.indexOf("伴");
+                int index_ban = chiefText.indexOf("伴");
                 if (indexMap.size() > 0) {
                 if (indexMap.size() > 0) {
                     if (index_ban == -1) {
                     if (index_ban == -1) {
                         status.set("0");
                         status.set("0");

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

@@ -31,7 +31,7 @@ public class BEH0010 extends QCCatalogue {
             return;
             return;
         }
         }
         List<Diag> diags = chiefLabel.getDiags();
         List<Diag> diags = chiefLabel.getDiags();
-        if (diags.size() > 0) {
+        if (diags != null && diags.size() > 0) {
             Iterator<Diag> diagIterator = diags.iterator();
             Iterator<Diag> diagIterator = diags.iterator();
             while (diagIterator.hasNext()) {
             while (diagIterator.hasNext()) {
                 Diag diag = diagIterator.next();
                 Diag diag = diagIterator.next();
@@ -41,7 +41,7 @@ public class BEH0010 extends QCCatalogue {
                 }
                 }
             }
             }
         }
         }
-        if (diags.size() > 0) {
+        if (diags != null && diags.size() > 0) {
             status.set("-1");
             status.set("-1");
             for (Diag diag : diags) {
             for (Diag diag : diags) {
                 if (StringUtils.isEmpty(info.get())) {
                 if (StringUtils.isEmpty(info.get())) {

+ 11 - 8
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0013.java

@@ -5,6 +5,7 @@ import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.label.PresentLabel;
 import com.lantone.qc.pub.model.label.PresentLabel;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
@@ -21,27 +22,29 @@ import java.util.List;
 public class BEH0013 extends QCCatalogue {
 public class BEH0013 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
         status.set("0");
-        if(inputInfo.getBeHospitalizedDoc() == null){
+        if (inputInfo.getBeHospitalizedDoc() == null) {
             return;
             return;
         }
         }
         PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
         PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
-        if (presentLabel == null){
+        if (presentLabel == null) {
             return;
             return;
         }
         }
         String text = presentLabel.getText();
         String text = presentLabel.getText();
-        if (text.contains("无") || text.contains("否认")){
-            return;
+        if (StringUtil.isNotBlank(text)) {
+            if (text.contains("无") || text.contains("否认")) {
+                return;
+            }
         }
         }
         List<Clinical> clinicalNegative = new ArrayList<>();
         List<Clinical> clinicalNegative = new ArrayList<>();
         List<Clinical> clinicals = presentLabel.getClinicals();
         List<Clinical> clinicals = presentLabel.getClinicals();
-        if(clinicals.size()>0){
-            for (Clinical clinical:clinicals) {
-                if(clinical.getNegative() != null){
+        if (clinicals.size() > 0) {
+            for (Clinical clinical : clinicals) {
+                if (clinical.getNegative() != null) {
                     clinicalNegative.add(clinical);
                     clinicalNegative.add(clinical);
                 }
                 }
             }
             }
         }
         }
-        if(clinicalNegative.size() == 0){
+        if (clinicalNegative.size() == 0) {
             status.set("-1");
             status.set("-1");
         }
         }
     }
     }

+ 27 - 13
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0378.java

@@ -5,7 +5,8 @@ import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.entity.Family;
 import com.lantone.qc.pub.model.entity.Family;
-import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.model.label.FamilyLabel;
+import com.lantone.qc.pub.model.label.MaritalLabel;
 import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
@@ -26,13 +27,33 @@ public class BEH0378 extends QCCatalogue {
         if (inputInfo.getBeHospitalizedDoc() == null) {
         if (inputInfo.getBeHospitalizedDoc() == null) {
             return;
             return;
         }
         }
+        FamilyLabel familyLabel = inputInfo.getBeHospitalizedDoc().getFamilyLabel();
+        MaritalLabel maritalLabel = inputInfo.getBeHospitalizedDoc().getMaritalLabel();
+
+        if (familyLabel == null && maritalLabel == null) {
+            return;
+        }
+        List<Family> familiesFl = null;
+        List<Family> familiesMl = null;
+
+        if (familyLabel != null) {
+            familiesFl = familyLabel.getFamilies();
+            //规则匹配
+            String familyText = familyLabel.getText();
+            if (StringUtil.isNotBlank(familyText) && familyText.contains("自然死亡")) {
+                status.set("0");
+                return;
+            }
+        }
+        if (maritalLabel != null) {
+            familiesMl = maritalLabel.getFamily();
+        }
         List<Family> familyList = Lists.newArrayList();
         List<Family> familyList = Lists.newArrayList();
-        List<Family> familiesFl = inputInfo.getBeHospitalizedDoc().getFamilyLabel().getFamilies();
-        List<Family> familiesMl = inputInfo.getBeHospitalizedDoc().getMaritalLabel().getFamily();
-        if (ListUtil.isNotEmpty(familiesFl)) {
+
+        if (familiesFl != null && familiesFl.size() > 0) {
             familyList.addAll(familiesFl);
             familyList.addAll(familiesFl);
         }
         }
-        if (ListUtil.isNotEmpty(familiesMl)) {
+        if (familiesMl != null && familiesMl.size() > 0) {
             familyList.addAll(familiesMl);
             familyList.addAll(familiesMl);
         }
         }
 
 
@@ -41,7 +62,7 @@ public class BEH0378 extends QCCatalogue {
                 .filter(
                 .filter(
                         i -> i != null
                         i -> i != null
                                 && StringUtil.isNotBlank(i.getName())
                                 && StringUtil.isNotBlank(i.getName())
-                                && i.getName().indexOf("配偶") != -1
+                                && i.getName().contains("配偶")
                                 && i.getDead() != null
                                 && i.getDead() != null
                                 && StringUtil.isNotBlank(i.getDead().getName())
                                 && StringUtil.isNotBlank(i.getDead().getName())
                 )
                 )
@@ -59,12 +80,5 @@ public class BEH0378 extends QCCatalogue {
                 status.set("0");
                 status.set("0");
             }
             }
         }
         }
-
-        //规则匹配
-        if (inputInfo.getBeHospitalizedDoc().getFamilyLabel() != null
-                && inputInfo.getBeHospitalizedDoc().getFamilyLabel().getText().contains("自然死亡")) {
-            status.set("0");
-        }
     }
     }
-
 }
 }

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

@@ -53,15 +53,15 @@ public class BEH0397 extends QCCatalogue {
             familiesMl = maritalLabel.getFamily();
             familiesMl = maritalLabel.getFamily();
         }
         }
         if ((StringUtil.isNotBlank(familyText) && (familyText.contains("父母") || familyText.contains("详见原病历")))
         if ((StringUtil.isNotBlank(familyText) && (familyText.contains("父母") || familyText.contains("详见原病历")))
-                || (StringUtil.isNotBlank(maritalText) && maritalText.contains("父母") || maritalText.contains("详见原病历"))) {
+                || (StringUtil.isNotBlank(maritalText) && (maritalText.contains("父母") || maritalText.contains("详见原病历")))) {
             status.set("0");
             status.set("0");
             return;
             return;
         }
         }
         List<Family> familyList = Lists.newArrayList();
         List<Family> familyList = Lists.newArrayList();
-        if (ListUtil.isNotEmpty(familiesFl)) {
+        if (familiesFl != null && familiesFl.size() > 0) {
             familyList.addAll(familiesFl);
             familyList.addAll(familiesFl);
         }
         }
-        if (ListUtil.isNotEmpty(familiesMl)) {
+        if (familiesMl != null && familiesMl.size() > 0) {
             familyList.addAll(familiesMl);
             familyList.addAll(familiesMl);
         }
         }
 
 

+ 6 - 8
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0414.java

@@ -1,10 +1,10 @@
 package com.lantone.qc.kernel.catalogue.behospitalized;
 package com.lantone.qc.kernel.catalogue.behospitalized;
 
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 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.Content;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import java.util.Map;
 import java.util.Map;
@@ -25,13 +25,11 @@ public class BEH0414 extends QCCatalogue {
         }
         }
         Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
         Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
         Map<String, String> firstStructMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
         Map<String, String> firstStructMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
-        if (structureMap != null && firstStructMap != null) {
-            String contactAddress_bh = structureMap.get("年龄").replace("岁", "");
-            String contactAddress_first = firstStructMap.get(Content.age);
-            if (!CatalogueUtil.isEmpty(contactAddress_bh) && !CatalogueUtil.isEmpty(contactAddress_first)) {
-                if (!contactAddress_first.equals(contactAddress_bh)) {
-                    status.set("-1");
-                }
+        String contactAddress_bh = structureMap.get("年龄");
+        String contactAddress_first = firstStructMap.get(Content.age);
+        if (StringUtil.isNotBlank(contactAddress_bh) && StringUtil.isNotBlank(contactAddress_first)) {
+            if (!contactAddress_first.equals(contactAddress_bh)) {
+                status.set("-1");
             }
             }
         }
         }
     }
     }

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

@@ -43,6 +43,13 @@ public class BEH0441 extends QCCatalogue {
             }
             }
         }
         }
         List<GeneralDesc> generals = presentLabel.getGenerals();
         List<GeneralDesc> generals = presentLabel.getGenerals();
+        List<General> gens = presentLabel.getGens();
+
+        if (ListUtil.isEmpty(generals) && ListUtil.isEmpty(gens)) {
+            status.set("0");
+            return;
+        }
+
         if (ListUtil.isNotEmpty(generals)) {
         if (ListUtil.isNotEmpty(generals)) {
             for (GeneralDesc general : generals) {
             for (GeneralDesc general : generals) {
                 if (general.getName().contains("纳") || general.getName().contains("饮食")
                 if (general.getName().contains("纳") || general.getName().contains("饮食")
@@ -52,7 +59,7 @@ public class BEH0441 extends QCCatalogue {
                 }
                 }
             }
             }
         }
         }
-        List<General> gens = presentLabel.getGens();
+
         if (ListUtil.isNotEmpty(gens)) {
         if (ListUtil.isNotEmpty(gens)) {
             for (General general : gens) {
             for (General general : gens) {
                 if (general.getName().contains("纳") || general.getName().contains("饮食") || general.getName().contains("进食")) {
                 if (general.getName().contains("纳") || general.getName().contains("饮食") || general.getName().contains("进食")) {

+ 7 - 10
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0200.java

@@ -22,18 +22,15 @@ public class FIRP0200 extends QCCatalogue {
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             String newbornWeightStr = firstpageStructureMap.get(Content.newbornWeight);
             String newbornWeightStr = firstpageStructureMap.get(Content.newbornWeight);
-            if (CatalogueUtil.isEmpty(newbornWeightStr)){
+            if (CatalogueUtil.isEmpty(newbornWeightStr) || !CatalogueUtil.numbersOnly(newbornWeightStr)) {
                 return;
                 return;
             }
             }
-            newbornWeightStr = newbornWeightStr.replace("-","");
-            if (!CatalogueUtil.isEmpty(newbornWeightStr)) {
-                double newbornWeight = Double.parseDouble(newbornWeightStr);
-                if (newbornWeight / 1000 >= 1){
-                    newbornWeight = newbornWeight / 1000;
-                }
-                if (newbornWeight <= 1 || newbornWeight >= 10) {
-                    status.set("-1");
-                }
+            double newbornWeight = Double.parseDouble(newbornWeightStr);
+            if (newbornWeight / 1000 >= 1) {
+                newbornWeight = newbornWeight / 1000;
+            }
+            if (newbornWeight <= 1 || newbornWeight >= 10) {
+                status.set("-1");
             }
             }
         }
         }
     }
     }

+ 4 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0202.java

@@ -22,15 +22,12 @@ public class FIRP0202 extends QCCatalogue {
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             String newbornAdmisWeightStr = firstpageStructureMap.get(Content.newbornAdmisWeight);
             String newbornAdmisWeightStr = firstpageStructureMap.get(Content.newbornAdmisWeight);
-            if (CatalogueUtil.isEmpty(newbornAdmisWeightStr)){
+            if (CatalogueUtil.isEmpty(newbornAdmisWeightStr) || "-".equals(newbornAdmisWeightStr)) {
                 return;
                 return;
             }
             }
-            newbornAdmisWeightStr = newbornAdmisWeightStr.replace("-","");
-            if (!CatalogueUtil.isEmpty(newbornAdmisWeightStr)) {
-                int newbornAdmisWeight = Integer.parseInt(newbornAdmisWeightStr);
-                if (newbornAdmisWeight <= 1 || newbornAdmisWeight >= 10) {
-                    status.set("-1");
-                }
+            int newbornAdmisWeight = Integer.parseInt(newbornAdmisWeightStr);
+            if (newbornAdmisWeight <= 1 || newbornAdmisWeight >= 10) {
+                status.set("-1");
             }
             }
         }
         }
     }
     }

+ 13 - 4
kernel/src/main/java/com/lantone/qc/kernel/util/CatalogueUtil.java

@@ -288,10 +288,19 @@ public class CatalogueUtil {
     public static boolean isContainChinese(String str) {
     public static boolean isContainChinese(String str) {
         Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
         Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
         Matcher m = p.matcher(str);
         Matcher m = p.matcher(str);
-        if (m.find()) {
-            return true;
-        }
-        return false;
+        return m.find();
+    }
+
+    /**
+     * 判断字符串是否仅包含数字
+     *
+     * @param str
+     * @return
+     */
+    public static boolean numbersOnly(String str) {
+        Pattern p = Pattern.compile("[0-9]");
+        Matcher m = p.matcher(str);
+        return m.find();
     }
     }
 
 
     /**
     /**

+ 8 - 0
kernel/src/main/java/com/lantone/qc/kernel/web/controller/QCController.java

@@ -15,6 +15,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import java.util.LinkedHashMap;
+import java.util.Map;
+
 /**
 /**
  * @ClassName : QCController
  * @ClassName : QCController
  * @Description : 质控总入口
  * @Description : 质控总入口
@@ -34,6 +37,11 @@ public class QCController {
     public Response<OutputInfo> extract(@RequestBody QueryVo queryVo) {
     public Response<OutputInfo> extract(@RequestBody QueryVo queryVo) {
         Response response = new Response();
         Response response = new Response();
         try {
         try {
+//            Map<String, String> map1 = new LinkedHashMap<>();
+//            map1.put("code","FIRP02904");
+//            map1.put("precond","");
+//            map1.put("name","辅助检查未注明时间");
+//            queryVo.getInputCatalogueMap().put("FIRP02904",map1);
             response.setData(qCAnalysis.anlysis(queryVo));
             response.setData(qCAnalysis.anlysis(queryVo));
         } catch (AIException aie) {
         } catch (AIException aie) {
             response.setRet(-1);
             response.setRet(-1);

+ 16 - 4
public/src/main/java/com/lantone/qc/pub/model/doc/ThreeLevelWardDoc.java

@@ -34,13 +34,16 @@ public class ThreeLevelWardDoc extends ModelDoc {
      * @param allDoctorWradDoc
      * @param allDoctorWradDoc
      */
      */
     public void addAllDoctorWradDoc(ThreeLevelWardDoc allDoctorWradDoc) {
     public void addAllDoctorWradDoc(ThreeLevelWardDoc allDoctorWradDoc) {
+        if (StringUtil.isBlank(allDoctorWradDoc.getStructureMap().get("查房日期"))){
+            return;
+        }
         Map<Date, ThreeLevelWardDoc> dateRecord = new TreeMap<>(new Comparator<Date>() {
         Map<Date, ThreeLevelWardDoc> dateRecord = new TreeMap<>(new Comparator<Date>() {
             @Override
             @Override
             public int compare(Date o1, Date o2) {
             public int compare(Date o1, Date o2) {
                 // 升序排列
                 // 升序排列
                 return o1.compareTo(o2);
                 return o1.compareTo(o2);
             }
             }
-        });//按时间key排序,存放抢救记录、查房记录\
+        });//按时间key排序,查房记录
         dateRecord.put(StringUtil.parseDateTime(allDoctorWradDoc.getStructureMap().get("查房日期")), allDoctorWradDoc);
         dateRecord.put(StringUtil.parseDateTime(allDoctorWradDoc.getStructureMap().get("查房日期")), allDoctorWradDoc);
         allDoctorWradDocs.stream().forEach(
         allDoctorWradDocs.stream().forEach(
                 doc ->  dateRecord.put(StringUtil.parseDateTime(doc.getStructureMap().get("查房日期")), doc)
                 doc ->  dateRecord.put(StringUtil.parseDateTime(doc.getStructureMap().get("查房日期")), doc)
@@ -51,13 +54,16 @@ public class ThreeLevelWardDoc extends ModelDoc {
     }
     }
 
 
     public void addDirectorDoctorWardDoc(DirectorDoctorWardDoc directorDoctorWardDoc) {
     public void addDirectorDoctorWardDoc(DirectorDoctorWardDoc directorDoctorWardDoc) {
+        if (StringUtil.isBlank(directorDoctorWardDoc.getStructureMap().get("查房日期"))){
+            return;
+        }
         Map<Date, DirectorDoctorWardDoc> dateRecord = new TreeMap<>(new Comparator<Date>() {
         Map<Date, DirectorDoctorWardDoc> dateRecord = new TreeMap<>(new Comparator<Date>() {
             @Override
             @Override
             public int compare(Date o1, Date o2) {
             public int compare(Date o1, Date o2) {
                 // 升序排列
                 // 升序排列
                 return o1.compareTo(o2);
                 return o1.compareTo(o2);
             }
             }
-        });//按时间key排序,存放抢救记录、查房记录\
+        });//按时间key排序,存放查房记录
         dateRecord.put(StringUtil.parseDateTime(directorDoctorWardDoc.getStructureMap().get("查房日期")), directorDoctorWardDoc);
         dateRecord.put(StringUtil.parseDateTime(directorDoctorWardDoc.getStructureMap().get("查房日期")), directorDoctorWardDoc);
         directorDoctorWardDocs.stream().forEach(
         directorDoctorWardDocs.stream().forEach(
              doc ->  dateRecord.put(StringUtil.parseDateTime(doc.getStructureMap().get("查房日期")), doc)
              doc ->  dateRecord.put(StringUtil.parseDateTime(doc.getStructureMap().get("查房日期")), doc)
@@ -68,13 +74,16 @@ public class ThreeLevelWardDoc extends ModelDoc {
     }
     }
 
 
     public void addAttendingDoctorWardDoc(AttendingDoctorWardDoc attendingDoctorWardDoc) {
     public void addAttendingDoctorWardDoc(AttendingDoctorWardDoc attendingDoctorWardDoc) {
+        if (StringUtil.isBlank(attendingDoctorWardDoc.getStructureMap().get("查房日期"))){
+            return;
+        }
         Map<Date, AttendingDoctorWardDoc> dateRecord = new TreeMap<>(new Comparator<Date>() {
         Map<Date, AttendingDoctorWardDoc> dateRecord = new TreeMap<>(new Comparator<Date>() {
             @Override
             @Override
             public int compare(Date o1, Date o2) {
             public int compare(Date o1, Date o2) {
                 // 升序排列
                 // 升序排列
                 return o1.compareTo(o2);
                 return o1.compareTo(o2);
             }
             }
-        });//按时间key排序,存放抢救记录、查房记录\
+        });//按时间key排序,存放查房记录
         dateRecord.put(StringUtil.parseDateTime(attendingDoctorWardDoc.getStructureMap().get("查房日期")), attendingDoctorWardDoc);
         dateRecord.put(StringUtil.parseDateTime(attendingDoctorWardDoc.getStructureMap().get("查房日期")), attendingDoctorWardDoc);
         attendingDoctorWardDocs.stream().forEach(
         attendingDoctorWardDocs.stream().forEach(
                 doc ->  dateRecord.put(StringUtil.parseDateTime(doc.getStructureMap().get("查房日期")), doc)
                 doc ->  dateRecord.put(StringUtil.parseDateTime(doc.getStructureMap().get("查房日期")), doc)
@@ -85,13 +94,16 @@ public class ThreeLevelWardDoc extends ModelDoc {
     }
     }
 
 
     public void addGeneralDoctorWardDoc(GeneralDoctorWardDoc generalDoctorWardDoc) {
     public void addGeneralDoctorWardDoc(GeneralDoctorWardDoc generalDoctorWardDoc) {
+        if (StringUtil.isBlank(generalDoctorWardDoc.getStructureMap().get("查房日期"))){
+            return;
+        }
         Map<Date, GeneralDoctorWardDoc> dateRecord = new TreeMap<>(new Comparator<Date>() {
         Map<Date, GeneralDoctorWardDoc> dateRecord = new TreeMap<>(new Comparator<Date>() {
             @Override
             @Override
             public int compare(Date o1, Date o2) {
             public int compare(Date o1, Date o2) {
                 // 升序排列
                 // 升序排列
                 return o1.compareTo(o2);
                 return o1.compareTo(o2);
             }
             }
-        });//按时间key排序,存放抢救记录、查房记录\
+        });//按时间key排序,存放查房记录
         dateRecord.put(StringUtil.parseDateTime(generalDoctorWardDoc.getStructureMap().get("查房日期")), generalDoctorWardDoc);
         dateRecord.put(StringUtil.parseDateTime(generalDoctorWardDoc.getStructureMap().get("查房日期")), generalDoctorWardDoc);
         generalDoctorWardDocs.stream().forEach(
         generalDoctorWardDocs.stream().forEach(
                 doc ->  dateRecord.put(StringUtil.parseDateTime(doc.getStructureMap().get("查房日期")), doc)
                 doc ->  dateRecord.put(StringUtil.parseDateTime(doc.getStructureMap().get("查房日期")), doc)

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

@@ -42,7 +42,7 @@ public class ChangxThreeLevelWardDocTrans extends ModelDocTrans {
         String content = contentMap.get("xmlText").toString();
         String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
         xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
         xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
-//        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
+        //        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
         structureMap.put("查房日期", structureMap.get("记录时间"));
         structureMap.put("查房日期", structureMap.get("记录时间"));
 
 
@@ -105,10 +105,12 @@ public class ChangxThreeLevelWardDocTrans extends ModelDocTrans {
         String content = structureMap.get("病情记录");
         String content = structureMap.get("病情记录");
         //标题有代字
         //标题有代字
         DirectorDoctorWardDoc directorDoctorWardDoc = null;
         DirectorDoctorWardDoc directorDoctorWardDoc = null;
-        if ((StringUtils.isNotEmpty(subTitle(title)) && subTitle(title).contains("主任")) || findDirector(title, content)) {
-            directorDoctorWardDoc = new DirectorDoctorWardDoc();
-            directorDoctorWardDoc.setStructureMap(structureMap);
-            directorDoctorWardDoc.setPageData((Map) structureMap);
+        if (StringUtil.isNotBlank(title)) {
+            if ((StringUtils.isNotEmpty(subTitle(title)) && subTitle(title).contains("主任")) || findDirector(title, content)) {
+                directorDoctorWardDoc = new DirectorDoctorWardDoc();
+                directorDoctorWardDoc.setStructureMap(structureMap);
+                directorDoctorWardDoc.setPageData((Map) structureMap);
+            }
         }
         }
         return directorDoctorWardDoc;
         return directorDoctorWardDoc;
     }
     }
@@ -169,6 +171,8 @@ public class ChangxThreeLevelWardDocTrans extends ModelDocTrans {
             "病程记录标题=查房标题",
             "病程记录标题=查房标题",
             "在此输入查房记录=病情记录",
             "在此输入查房记录=病情记录",
             "签名++++=记录医师",
             "签名++++=记录医师",
+            "科主任=三级医师",
+            "入院诊断++++初步诊断=入院诊断",
             "记录日期=记录时间"
             "记录日期=记录时间"
     );
     );