Pārlūkot izejas kodu

医嘱有抗生素使用病程无记录添加逻辑,若查房记录中未出现过某抗生素,但写了继续...治疗...情况下,还是会报出该抗生素未记录

huj 4 gadi atpakaļ
vecāks
revīzija
f3d54dd8e1

+ 7 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR02985.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.threelevelward;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.kernel.util.SimilarityUtil;
@@ -172,6 +173,7 @@ public class THR02985 extends QCCatalogue {
 
         StringBuffer sb = new StringBuffer();
         Map<Object, Object> data = Maps.newHashMap();
+        Set<String> existDrug = Sets.newHashSet();
         String infoStr = "";
         for (Map.Entry<Date, String> doctorAdviceDrug : doctorAdviceDrugMap.entrySet()) {
             Date doctorAdviceDate = doctorAdviceDrug.getKey();
@@ -185,7 +187,7 @@ public class THR02985 extends QCCatalogue {
             /**********************************************先文本匹配************************************************/
             String missDrug = "";
             for (Map.Entry<String, Date> map : info.entrySet()) {
-                missDrug = getMissDrug(map.getKey(), map.getValue(), doctorAdviceDate, splitDrugs, 2, missDrug);
+                missDrug = getMissDrug(map.getKey(), map.getValue(), doctorAdviceDate, splitDrugs, 2, missDrug, existDrug);
                 //当前抗生素药(drugs)在info中已找到,直接跳出当前循环
                 if (StringUtil.isBlank(missDrug)) {
                     break;
@@ -294,7 +296,7 @@ public class THR02985 extends QCCatalogue {
      * @param days
      * @return 如果文本中找到该药,则返回空字符串
      */
-    private String getMissDrug(String content, Date wardDate, Date doctorAdviceDate, Set<String> drugs, int days, String missDrug) {
+    private String getMissDrug(String content, Date wardDate, Date doctorAdviceDate, Set<String> drugs, int days, String missDrug, Set<String> existDrug) {
         if ("时间不匹配".equals(missDrug)) {
             missDrug = "";//初始化缺失药物
         }
@@ -307,9 +309,10 @@ public class THR02985 extends QCCatalogue {
                     continue;
                 }
                 if (content.contains(drug.replaceAll("[^\\u4e00-\\u9fa5]", ""))
-                        || regexFind(content, "继续", "治疗") || regexFind(content, "维持", "治疗")
-                        || regexFind(content, "继续", "抗感染") || regexFind(content, "治疗", "同前")) {
+                        || (existDrug.contains(drug) && (regexFind(content, "继续", "治疗") || regexFind(content, "维持", "治疗")
+                        || regexFind(content, "继续", "抗感染") || regexFind(content, "治疗", "同前")))) {
                     findDrug = true;
+                    existDrug.add(drug);
                     break;
                 } else {
                     missDrug = concatInfo(missDrug, drug);