Просмотр исходного кода

现病史主症状与主诉症状不一致

kwzbigdata 5 лет назад
Родитель
Сommit
d4215d4a81

+ 23 - 15
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0449.java

@@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
@@ -32,29 +33,34 @@ public class BEH0449 extends QCCatalogue {
         BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
         if (beHospitalizedDoc != null) {
             String chief_text = beHospitalizedDoc.getChiefLabel().getText();
-            if (chief_text.contains("检查") || chief_text.contains("术后") || chief_text.contains("药物")) {
+            if (chief_text.contains("检查") || chief_text.contains("术后") || chief_text.contains("药物")
+                    || chief_text.contains("发现")) {
                 status.set("0");
+                return;
             } else {
                 List<Clinical> clinicals_chief = beHospitalizedDoc.getChiefLabel().getClinicals();
                 List<Clinical> clinicals_present = beHospitalizedDoc.getPresentLabel().getClinicals();
                 if (ListUtil.isNotEmpty(clinicals_chief) && ListUtil.isNotEmpty(clinicals_present)) {
                     Clinical clinical_chief = clinicals_chief.get(0);
-                    Clinical clinical_present = clinicals_present.get(0);
-                    if (clinical_chief.getName().equals(clinical_present.getName())) {
-                        status.set("0");
-                        return;
-                    } else if (clinical_chief.getName().contains(clinical_present.getName())
-                            || clinical_present.getName().contains(clinical_chief.getName())) {
-                        status.set("0");
-                        return;
-                    } else {
-                        JSONArray similarContent = new JSONArray();
-                        FirstCourseRecordAI firstCourseRecordAI = new FirstCourseRecordAI();
-                        firstCourseRecordAI.putContent(similarContent, clinical_chief.getName(), clinical_present.getName());
-                        double likeRate = firstCourseRecordAI.loadSimilarAI(similarContent, similarityServiceClient);
-                        if (likeRate > 0.9) {
+                    clinicals_present = clinicals_present.stream().filter(clinical -> clinical.getNegative() == null).collect(Collectors.toList());
+                    for (Clinical cliPre:clinicals_present) {
+                        String name_pre = cliPre.getName();
+                        String name_chief = clinical_chief.getName();
+                        if(name_chief.equals(name_pre)){
                             status.set("0");
                             return;
+                        }else if(name_pre.contains(name_chief) || name_chief.contains(name_pre)){
+                            status.set("0");
+                            return;
+                        }else {
+                            JSONArray similarContent = new JSONArray();
+                            FirstCourseRecordAI firstCourseRecordAI = new FirstCourseRecordAI();
+                            firstCourseRecordAI.putContent(similarContent, name_chief, name_pre);
+                            double likeRate = firstCourseRecordAI.loadSimilarAI(similarContent, similarityServiceClient);
+                            if (likeRate > 0.9) {
+                                status.set("0");
+                                return;
+                            }
                         }
                     }
                 }
@@ -73,6 +79,8 @@ public class BEH0449 extends QCCatalogue {
             if (StringUtils.isNotEmpty(chiefDiag) && StringUtils.isNotEmpty(presentDiag) && chiefDiag.equals(presentDiag)) {
                 status.set("0");
             }
+        }else {
+            status.set("0");
         }
     }
 }