Преглед изворни кода

北仑:病历前后不一致,增加其他判断

wangsy пре 4 година
родитељ
комит
213539b0cc

+ 5 - 45
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/behospitalized/BEH02980.java

@@ -83,11 +83,7 @@ public class BEH02980 extends QCCatalogue {
         if (pastLabel != null && StringUtils.isNotEmpty(pastLabel.getText())) {
             extract_diags(pastLabel.getDiags(), pos_diags, neg_diags);
             //过敏史
-            extract_Allergy(pastLabel.getAllergies(), pos_diags, neg_diags);
-            //食物过敏史
-            extract_AllergyFoods(pastLabel.getAllergyFoods(), pos_diags, neg_diags);
-            //药物过敏史
-            extract_Medicine(pastLabel.getAllergyMedicines(), pos_diags, neg_diags);
+            extract_Allergy(pastLabel.getAllergies(), pos_diags, neg_diags, pastLabel.getText());
         } else {
             //例如邵逸夫 台州这种结构化数据,判断高血压 和 糖尿病是否有冲突
             List<Diag> pastDiags = new ArrayList<>();
@@ -183,7 +179,7 @@ public class BEH02980 extends QCCatalogue {
     }
 
     //过敏史
-    private List<String> extract_Allergy(List<Allergy> allergys, List<String> pos_diags, List<String> neg_diags) {
+    private List<String> extract_Allergy(List<Allergy> allergys, List<String> pos_diags, List<String> neg_diags, String text) {
         List<String> dgs = new ArrayList<>();
         for (Allergy dg : allergys) {
             String dgname = dg.getName();
@@ -192,45 +188,9 @@ public class BEH02980 extends QCCatalogue {
                     pos_diags.add(dgname);
                 }
             } else {
-                if (!neg_diags.contains(dgname)) {
-                    neg_diags.add(dgname);
-                    dgs.add(dgname);
-                }
-            }
-        }
-        return dgs;
-    }
-
-    //食物过敏史
-    private List<String> extract_AllergyFoods(List<AllergyFood> allergyFoods, List<String> pos_diags, List<String> neg_diags) {
-        List<String> dgs = new ArrayList<>();
-        for (AllergyFood af : allergyFoods) {
-            String dgname = af.getName();
-            if (af.getNegative() == null) {
-                if (!pos_diags.contains(dgname)) {
-                    pos_diags.add(dgname);
-                }
-            } else {
-                if (!neg_diags.contains(dgname)) {
-                    neg_diags.add(dgname);
-                    dgs.add(dgname);
-                }
-            }
-        }
-        return dgs;
-    }
-
-    //药物过敏史
-    private List<String> extract_Medicine(List<AllergyMedicine> allergyMedicines, List<String> pos_diags, List<String> neg_diags) {
-        List<String> dgs = new ArrayList<>();
-        for (AllergyMedicine am : allergyMedicines) {
-            String dgname = am.getName();
-            if (am.getNegative() == null) {
-                if (!pos_diags.contains(dgname)) {
-                    pos_diags.add(dgname);
-                }
-            } else {
-                if (!neg_diags.contains(dgname)) {
+                int index = text.indexOf(dgname);
+                text = text.substring(Math.max(0, index - 10), index);
+                if (!neg_diags.contains(dgname) && !text.contains("其他")) {
                     neg_diags.add(dgname);
                     dgs.add(dgname);
                 }