Bladeren bron

修改逻辑及bug

hujing 5 jaren geleden
bovenliggende
commit
b85d9ed668

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

@@ -32,7 +32,8 @@ public class BEH0006 extends QCCatalogue {
         }
         String chiefText = chiefLabel.getText();
         if (StringUtil.isNotBlank(chiefText) && (chiefText.contains("复查")
-                || chiefText.contains("检查") || chiefText.contains("术后") || chiefText.contains("药物") || chiefText.contains("发现"))) {
+                || chiefText.contains("检查") || chiefText.contains("术后") || chiefText.contains("药物")
+                || chiefText.contains("发现") || chiefText.contains("半年"))) {
             status.set("0");
         } else {
             List<PD> pds = chiefLabel.getPds();
@@ -42,7 +43,7 @@ public class BEH0006 extends QCCatalogue {
                     if (!CatalogueUtil.isEmpty(pdName)) {
                         if (pdName.contains("天") || pdName.contains("周") || pdName.contains("月")
                                 || pdName.contains("时") || pdName.contains("半年") || pdName.contains("秒")
-                                || pdName.contains("日") || pdName.contains("今")) {
+                                || pdName.contains("分") || pdName.contains("日") || pdName.contains("今")) {
                             status.set("0");
                             break;
                         }

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

@@ -45,7 +45,9 @@ public class BEH0058 extends QCCatalogue {
         } else {
             String regex = ".*\\d?子\\d?女.*";
             boolean flag = maritalText.matches(regex);
-            if (flag) {
+            regex = ".*\\d+-\\d+-\\d+-0.*";
+            boolean matches = maritalText.matches(regex);
+            if (flag || matches) {
                 status.set("0");
                 return;
             }

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

@@ -31,7 +31,7 @@ public class BEH0072 extends QCCatalogue {
             String familyText = familyLabel.getText();
             if (StringUtil.isNotBlank(familyText)) {
                 familyText = familyText.substring(0, Math.min(10, familyText.length()));
-                if (familyText.contains("死因") || familyText.contains("原因") || familyText.contains("详")) {
+                if (familyText.contains("死因") || familyText.contains("原因") || familyText.contains("详")) {
                     return;
                 }
             }

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

@@ -52,14 +52,18 @@ public class BEH0376 extends QCCatalogue {
         }
         String maritalText = maritalLabel.getText();
         if (StringUtil.isNotBlank(maritalText)) {
-            List<String> words = Lists.newArrayList("未婚", "未育", "未婚育", "未生育", "未生", "0子0女"
-                    , "0-0-0-0", "详见原病历");
+            List<String> words = Lists.newArrayList("未婚", "未育", "未婚育", "未生育", "未生", "0子0女", "详见原病历");
             for (String word : words) {
                 if (maritalText.contains(word)) {
                     status.set("0");
                     return;
                 }
             }
+            String regex = ".*\\d+-\\d+-\\d+-0.*";
+            if (maritalText.matches(regex)){
+                status.set("0");
+                return;
+            }
         }
         //未婚 无子女
         if (maritalLabel.getMaritalStatus() != null && maritalLabel.getMaritalStatus().getName().contains("未婚")) {

+ 10 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0416.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.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.Map;
@@ -28,11 +29,18 @@ public class BEH0416 extends QCCatalogue {
         if (structureMap != null && firstStructMap != null) {
             String contactAddress_bh = structureMap.get("职业");
             String contactAddress_first = firstStructMap.get(Content.job);
-            if (!CatalogueUtil.isEmpty(contactAddress_bh) && !CatalogueUtil.isEmpty(contactAddress_first)) {
-                if (!contactAddress_first.equals(contactAddress_bh)) {
+            if (StringUtil.isNotBlank(contactAddress_bh) && StringUtil.isNotBlank(contactAddress_first)) {
+                if (!removeBrackets(contactAddress_first).equals(removeBrackets(contactAddress_bh))) {
                     status.set("-1");
                 }
             }
         }
     }
+
+    /*
+    去除括号
+     */
+    private String removeBrackets(String str){
+        return str.replaceAll("[()()]","");
+    }
 }

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

@@ -34,7 +34,7 @@ public class BEH0441 extends QCCatalogue {
         }
         String presentText = presentLabel.getText();
         if (StringUtil.isNotBlank(presentText)) {
-            List<String> words = Lists.newArrayList("胃纳", "食纳", "食欲", "未纳", "纳眠", "饮食", "纳眠","禁食","鼻饲");
+            List<String> words = Lists.newArrayList("胃纳", "食纳", "食欲", "未纳", "纳眠", "饮食", "纳眠","禁食","未食","鼻饲");
             for (String word : words) {
                 if (presentText.contains(word)) {
                     status.set("0");

+ 3 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0309.java

@@ -25,6 +25,9 @@ public class CLI0309 extends QCCatalogue {
         if (ListUtil.isEmpty(clinicalBloodDocs) || ListUtil.isEmpty(clinicBloodEffectDocs)) {
             return;
         }
+        if (clinicalBloodDocs.size() < clinicBloodEffectDocs.size()) {
+            return;
+        }
         if (clinicalBloodDocs.size() != clinicBloodEffectDocs.size()) {
             status.set("-1");
             info.set("部分输血记录未找到对应输血后效果评价");

+ 12 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0161.java

@@ -26,22 +26,27 @@ public class FIRP0161 extends QCCatalogue {
             Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
             String firstAdmissionAge = firstpageStructureMap.get(Content.age);
             String admissionAge = beHospitalStructureMap.get(Content.age);
-            if (StringUtil.isBlank(firstAdmissionAge) || StringUtil.isBlank(admissionAge)){
+            if (StringUtil.isBlank(firstAdmissionAge) || StringUtil.isBlank(admissionAge)) {
                 status.set("0");
                 return;
             }
-            firstAdmissionAge = removalUnit(firstAdmissionAge);
-            admissionAge = removalUnit(admissionAge);
-            if (!CatalogueUtil.compareToken(firstAdmissionAge, admissionAge)) {
+            int firstAdmissionAgeNum = removalUnit(firstAdmissionAge);
+            int admissionAgeNum = removalUnit(admissionAge);
+            if (firstAdmissionAgeNum != admissionAgeNum) {
                 status.set("-1");
             }
         }
     }
 
-    private String removalUnit(String admissionAge) {
+    private int removalUnit(String admissionAge) {
+        int age = 0;
         if (StringUtil.isNotBlank(admissionAge) && admissionAge.contains("岁")) {
-            admissionAge = admissionAge.replace("岁", "");
+            admissionAge = admissionAge.replaceAll("[天]", "");
         }
-        return admissionAge;
+        admissionAge = admissionAge.replaceAll("[^0-9]","");
+        if (CatalogueUtil.numbersOnly(admissionAge)) {
+            age = Integer.parseInt(admissionAge);
+        }
+        return age;
     }
 }

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

@@ -34,7 +34,7 @@ public class LEA02901 extends QCCatalogue {
             if (StringUtil.isNotBlank(dischargeOrder)) {
                 List<String> words = Lists.newArrayList("qd","bid","tid","qid","qh","q2h","q4h","q6h","q8h",
                         "qn","q3w","qod","biw","qw","prn","sos","ad","lib","st","stat","hs","am","po","ID","IH","IM",
-                        "IV","OD","OL","OS","OU","ivgtt","Q12H");
+                        "IV","OD","OL","OS","OU","ivgtt","Q12H","QN","ONCE");
                 for (String word : words) {
                     if (dischargeOrder.contains(word.toUpperCase()) || dischargeOrder.contains(word.toLowerCase())) {
                         status.set("-1");

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

@@ -92,7 +92,7 @@ public class CatalogueUtil {
             }
             for (String word : words) {
                 if (StringUtil.isNotBlank(word)) {
-                    String newWord = word.replaceAll("[“”]", "");
+                    String newWord = word.replaceAll("[“”]", "\"");
                     if (sections.stream().noneMatch(section -> section.contains(newWord))) {
                         retWords.add(word);
                     }