Explorar o código

1、初步诊断不完整完善
2、抗生素规则优化

louhr %!s(int64=5) %!d(string=hai) anos
pai
achega
e81b38fab8

+ 2 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0011.java

@@ -119,6 +119,8 @@ public class BEH0011 extends QCCatalogue {
                 double likeRate = jsonArray.getDoubleValue(1);
                 if (likeRate > 0.85) {
                     matchSum++;
+                } else if (symptom.contains(presentPastDiag) || presentPastDiag.contains(symptom)) {
+                    matchSum++;
                 } else {
                     infoStr = CatalogueUtil.concatInfo(infoStr, presentPastDiag);
                 }

+ 13 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR02985.java

@@ -5,6 +5,7 @@ import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.DoctorAdviceDoc;
+import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
 import com.lantone.qc.pub.model.doc.ThreeLevelWardDoc;
 import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -58,7 +59,7 @@ public class THR02985 extends QCCatalogue {
                 if (drug.equals("合资") || drug.equals("进口") || drug.equals("国产") ) {
                     continue;
                 }
-                matchSum = getMatchSum(allDoctorWradDocs, doctorAdviceDate, drug, matchSum, 2);
+                matchSum = getMatchSum(inputInfo.getFirstCourseRecordDoc(), allDoctorWradDocs, doctorAdviceDate, drug, matchSum, 2);
                 if (matchSum > 0) {
                     isFind = true;
                 }
@@ -76,7 +77,17 @@ public class THR02985 extends QCCatalogue {
         }
     }
 
-    private int getMatchSum(List<ThreeLevelWardDoc> allDoctorWradDocs, Date doctorAdviceDate, String drug, int matchSum, int days) {
+    private int getMatchSum(FirstCourseRecordDoc firstCourseRecordDoc, List<ThreeLevelWardDoc> allDoctorWradDocs, Date doctorAdviceDate, String drug, int matchSum, int days) {
+        if (firstCourseRecordDoc != null) {
+            String wardDateStr = firstCourseRecordDoc.getStructureMap().get("病历日期");
+            String content = firstCourseRecordDoc.getStructureMap().get("治疗计划") + firstCourseRecordDoc.getStructureMap().get("诊疗计划");
+            Date wardDate = StringUtil.parseDateTime(wardDateStr);
+            if (doctorAdviceDate.before(wardDate) && !CatalogueUtil.compareTime(doctorAdviceDate, wardDate, days * 24 * 60L)) {
+                if (content.contains(drug)) {
+                    matchSum++;
+                }
+            }
+        }
         for (ThreeLevelWardDoc threeLevelWardDoc : allDoctorWradDocs) {
             Map<String, String> wardDocStructureMap = threeLevelWardDoc.getStructureMap();
             String wardDateStr = wardDocStructureMap.get("查房日期");