浏览代码

初步诊断不完整修改bug

huj 5 年之前
父节点
当前提交
37c742317a
共有 1 个文件被更改,包括 19 次插入22 次删除
  1. 19 22
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0011.java

+ 19 - 22
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0011.java

@@ -21,12 +21,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -135,6 +130,16 @@ public class BEH0011 extends QCCatalogue {
         addInitDiagHospitalName(initDiags, initialDiagDiags);
 
         String infoStr = "";
+        /*先两两对比,能对上就删除,对不上的再走相似度模型*/
+        Iterator<String> iterator = presentPastDiags.iterator();
+        while (iterator.hasNext()) {
+            String presentPastDiag = iterator.next();
+            for (String initDiag : initDiags) {
+                if (presentPastDiag.equals(initDiag) || presentPastDiag.contains(initDiag) || initDiag.contains(presentPastDiag)) {
+                    iterator.remove();
+                }
+            }
+        }
         int matchSum = 0;
         ModelAI modelAI = new ModelAI();
         for (String presentPastDiag : presentPastDiags) {
@@ -160,7 +165,7 @@ public class BEH0011 extends QCCatalogue {
         if (matchSum == presentPastDiags.size()) {
             status.set("0");
         }
-        lackDiabetesFeritin(presentLabel.getText(), inputInfo.getBeHospitalizedDoc().getStructureMap().get("长期用药"), inputInfo.getBeHospitalizedDoc().getStructureMap().get("外院用药"), inputInfo.getMedicalRecordInfoDoc().getStructureMap().get("behospitalCode"));
+        lackDiabetesFeritin(initDiags, presentLabel.getText(), inputInfo.getBeHospitalizedDoc().getStructureMap().get("长期用药"), inputInfo.getBeHospitalizedDoc().getStructureMap().get("外院用药"), inputInfo.getMedicalRecordInfoDoc().getStructureMap().get("behospitalCode"));
         /*
         if (initDiags.containsAll(presentPastDiags)) {
             status.set("0");
@@ -242,7 +247,7 @@ public class BEH0011 extends QCCatalogue {
      */
 
     //糖尿病、高血压药品过滤
-    private void lackDiabetesFeritin(String... texts) {
+    private void lackDiabetesFeritin(List<String> initDiags, String... texts) {
         String checkText = "";
         if (StringUtil.isNotBlank(texts[0])) {
             checkText += texts[0] + "。";
@@ -256,9 +261,10 @@ public class BEH0011 extends QCCatalogue {
         if (StringUtil.isBlank(checkText)) {
             return;
         }
+        long diabetes = initDiags.stream().filter(x -> x.contains("糖尿病")).count();
         for (String diabetesDrug : diabetesDrugs) {
-            if (checkText.indexOf(diabetesDrug) > -1) {
-                if (StringUtil.isBlank(info.get()) || info.get().indexOf("糖尿病") == -1) {
+            if (checkText.contains(diabetesDrug) && diabetes == 0) {
+                if (StringUtil.isBlank(info.get()) || !info.get().contains("糖尿病")) {
                     info.set(CatalogueUtil.concatInfo(info.get(), "糖尿病"));
                     status.set("-1");
                     log.error("初步诊断不完整:" + texts[3]);
@@ -266,9 +272,10 @@ public class BEH0011 extends QCCatalogue {
                 break;
             }
         }
+        long hypertension = initDiags.stream().filter(x -> x.contains("高血压")).count();
         for (String feritinDrug : feritinDrugs) {
-            if (checkText.indexOf(feritinDrug) > -1) {
-                if (StringUtil.isBlank(info.get()) || info.get().indexOf("高血压") == -1) {
+            if (checkText.contains(feritinDrug) && hypertension == 0) {
+                if (StringUtil.isBlank(info.get()) || !info.get().contains("高血压")) {
                     info.set(CatalogueUtil.concatInfo(info.get(), "高血压"));
                     status.set("-1");
                     log.error("初步诊断不完整:" + texts[3]);
@@ -391,17 +398,7 @@ public class BEH0011 extends QCCatalogue {
             "哌唑嗪",
             "乌拉地尔",
             "乌拉地尔氯化钠",
-            "普萘洛尔",
-            "索他洛尔",
-            "阿替洛尔",
-            "艾司洛尔",
-            "贝凡洛尔",
-            "比索洛尔",
-            "美托洛尔",
-            "阿罗洛尔",
             "卡维地洛",
-            "拉贝洛尔",
-            "比索洛尔氢氯噻嗪",
             "阿夫唑嗪",
             "赛洛多辛",
             "坦洛新",