Browse Source

北仑:主诉缺少主症状不提示缺少时间描述信息

huj 4 years ago
parent
commit
2a7ffd5fe3

+ 35 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/behospitalized/BEH0001.java

@@ -3,6 +3,8 @@ package com.lantone.qc.kernel.catalogue.beilun.behospitalized;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.entity.Clinical;
+import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.model.entity.PD;
 import com.lantone.qc.pub.model.entity.PD;
 import com.lantone.qc.pub.model.label.ChiefLabel;
 import com.lantone.qc.pub.model.label.ChiefLabel;
 import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.pub.util.StringUtil;
@@ -22,7 +24,11 @@ import java.util.Map;
 @Component
 @Component
 public class BEH0001 extends QCCatalogue {
 public class BEH0001 extends QCCatalogue {
 
 
+    private List<String> containList = Arrays.asList("检查", "术后", "药物", "发现", "误服", "确诊", "经", "异常", "诊断"
+            , "示", "超", "伤", "术", "复查", "体检", "血透", "血液透析");
+
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        //主诉缺少主症状不提示信息
         if (outputInfo != null && outputInfo.getResult() != null) {
         if (outputInfo != null && outputInfo.getResult() != null) {
             Map<String, Object> outputMap = outputInfo.getResult().get("BEH0009");
             Map<String, Object> outputMap = outputInfo.getResult().get("BEH0009");
             if (outputMap != null && "-1".equals(outputMap.get("status"))) {
             if (outputMap != null && "-1".equals(outputMap.get("status"))) {
@@ -30,6 +36,7 @@ public class BEH0001 extends QCCatalogue {
                 return;
                 return;
             }
             }
         }
         }
+
         if (inputInfo.getBeHospitalizedDoc() == null) {
         if (inputInfo.getBeHospitalizedDoc() == null) {
             status.set("0");
             status.set("0");
             return;
             return;
@@ -44,6 +51,34 @@ public class BEH0001 extends QCCatalogue {
             status.set("0");
             status.set("0");
             return;
             return;
         }
         }
+        // 暂时逻辑,BEH0009执行在BEH0001之前时可以撤销
+        boolean isExistence = true;
+        List<Clinical> clinicals = chiefLabel.getClinicals();
+        if (clinicals != null && clinicals.size() > 0) {
+            isExistence = false;
+        }
+        for (String word : containList) {
+            if (chiefText.contains(word)) {
+                isExistence = false;
+            }
+        }
+        List<Diag> diags = chiefLabel.getDiags();
+        if (diags != null && diags.size() > 0) {
+            for (Diag diag : diags) {
+                String hospitalDiagName = diag.getHospitalDiagName();
+                if (hospitalDiagName.contains("术后") || hospitalDiagName.contains("癌") ||
+                        hospitalDiagName.contains("瘤") || hospitalDiagName.contains("复诊")) {
+                    isExistence = false;
+                    break;
+                }
+            }
+        }
+        //主诉缺少主症状不提示信息
+        if (isExistence) {
+            status.set("0");
+            return;
+        }
+
         if (StringUtil.isNotBlank(chiefText)) {
         if (StringUtil.isNotBlank(chiefText)) {
             if (chiefText.contains("检查") || chiefText.contains("术后") || chiefText.contains("药物")
             if (chiefText.contains("检查") || chiefText.contains("术后") || chiefText.contains("药物")
                     || chiefText.contains("天") || chiefText.contains("周") || chiefText.contains("月")
                     || chiefText.contains("天") || chiefText.contains("周") || chiefText.contains("月")