Forráskód Böngészése

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

zhangzw 4 éve
szülő
commit
890ed39a7c

+ 24 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/behospitalized/BEH02980.java

@@ -82,6 +82,27 @@ public class BEH02980 extends QCCatalogue {
 
         if (pastLabel != null && StringUtils.isNotEmpty(pastLabel.getText())) {
             extract_diags(pastLabel.getDiags(), pos_diags, neg_diags);
+            //否认其他的情况
+            String pasttext=pastLabel.getText();
+            //冠状动脉支架植入术特殊情况,只要出现,就从否认的史中去掉
+            if(neg_diags.contains("冠状动脉支架植入术")){
+                neg_diags.remove("冠状动脉支架植入术");
+            }
+            String neg_diags_first [] = pasttext.split("否认");
+            for (String str1 : neg_diags_first) {
+                String neg_diags_second [] = str1.split("、");
+                for (String str2 : neg_diags_second) {
+                    for (String neg_diag : neg_diags) {
+                        if(str2.contains(neg_diag)){
+                            String str3 = str2.substring(0,str2.indexOf(neg_diag));
+                            if(str3.contains("其它") || str3.contains("其他")) {
+                                int index= neg_diags.indexOf(neg_diag);
+                                neg_diags.set(index,"其它的");
+                            }
+                        }
+                    }
+                }
+            }
             //过敏史
             extract_Allergy(pastLabel.getAllergies(), pos_diags, neg_diags, pastLabel.getText());
         } else {
@@ -181,6 +202,7 @@ public class BEH02980 extends QCCatalogue {
     //过敏史
     private List<String> extract_Allergy(List<Allergy> allergys, List<String> pos_diags, List<String> neg_diags, String text) {
         List<String> dgs = new ArrayList<>();
+        String content =text;
         int allergyNum = 0;
         for (Allergy dg : allergys) {
             String dgname = dg.getName();
@@ -195,8 +217,8 @@ public class BEH02980 extends QCCatalogue {
                     allergyNum = 2;
                 }
             } else {
-                int index = text.lastIndexOf(dgname);
-                text = text.substring(Math.max(0, index - 10), index);
+                int index = content.lastIndexOf(dgname);
+                text = content.substring(Math.max(0, index - 10), index);
                 if (allergyNum == 0 && !neg_diags.contains(dgname) && !text.contains("其他") && !text.contains("其它")) {
                     neg_diags.add(dgname);
                     dgs.add(dgname);