Sfoglia il codice sorgente

北仑:疾病名未标引号模型抓取疾病缺陷问题,增加代码处理

wangsy 4 anni fa
parent
commit
aaa3425ce8

+ 29 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/behospitalized/BEH0032.java

@@ -10,6 +10,7 @@ import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -24,22 +25,46 @@ public class BEH0032 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if(inputInfo.getBeHospitalizedDoc() == null){
+        if (inputInfo.getBeHospitalizedDoc() == null) {
             return;
         }
         PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
+        if (pastLabel == null) {
+            return;
+        }
         List<Diag> diags = pastLabel.getDiags();
         if (ListUtil.isEmpty(diags)) {
             return;
         }
         List<String> wtDiagNames = CatalogueUtil.noInQuotes(
                 diags.stream().filter(diag -> diag.getNegative() == null).map(i -> i.getHospitalDiagName()).filter(i -> StringUtil.isNotEmpty(i)).distinct().collect(Collectors.toList()),
-                pastLabel.getText().replace("“","\"").replace("”","\"")
+                pastLabel.getText().replace("“", "\"").replace("”", "\"")
         );
+        String pastText = pastLabel.getText();
+        List<String> wtDiagList = new ArrayList<>();
         if (ListUtil.isNotEmpty(wtDiagNames)) {
-            status.set("-1");
             for (String wtDiagName : wtDiagNames) {
-                info.set(info.get() + wtDiagName + " ");
+                int index = pastText.indexOf(wtDiagName);
+                if (index - 1 > 0) {
+                    String markText = pastText.substring(index - 1, index);
+                    if (markText.contains("\"") || markText.contains("“")) {
+                        continue;
+                    }
+                }
+                if (index + wtDiagName.length() + 1 < pastText.length() && index > 0) {
+                    String markText = pastText.substring(index + wtDiagName.length(), index + wtDiagName.length() + 1);
+                    if (markText.contains("\"") || markText.contains("”")) {
+                        continue;
+                    }
+                }
+                wtDiagList.add(wtDiagName);
+            }
+        }
+
+        if (ListUtil.isNotEmpty(wtDiagList)) {
+            status.set("-1");
+            for (String wtDiag : wtDiagList) {
+                info.set(info.get() + wtDiag + " ");
             }
         }
     }