Browse Source

1.修改规则逻辑

hujing 5 years ago
parent
commit
9c2509170e

+ 14 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0058.java

@@ -38,22 +38,32 @@ public class BEH0058 extends QCCatalogue {
             status.set("0");
             return;
         }
-        String maritalLabelText = maritalLabel.getText();
-        if (StringUtil.isBlank(maritalLabelText)) {
+        String maritalText = maritalLabel.getText();
+        if (StringUtil.isBlank(maritalText)) {
             status.set("0");
             return;
         } else {
             String regex = ".*\\d?子\\d?女.*";
-            boolean flag = maritalLabelText.matches(regex);
+            boolean flag = maritalText.matches(regex);
             if (flag) {
                 status.set("0");
                 return;
             }
         }
-        if (maritalLabelText.contains("未育") || maritalLabelText.contains("未婚") || "未婚".equals(marry)) {
+        //硬规则 匹配未育
+        if ("未婚".equals(marry)) {
             status.set("0");
             return;
         }
+        if (StringUtil.isNotBlank(maritalText)) {
+            List<String> words = Lists.newArrayList("未婚", "未育", "未婚育", "未生育", "未生","0子0女");
+            for (String word : words) {
+                if (maritalText.contains(word)) {
+                    status.set("0");
+                    return;
+                }
+            }
+        }
         Map<String, String> structureMap = beHospitalizedDoc.getStructureMap();
         String familyMembersHealth = structureMap.get("家庭成员健康情况");
         List<Family> familyList = Lists.newArrayList();

+ 6 - 8
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0125.java

@@ -41,14 +41,12 @@ public class THR0125 extends QCCatalogue {
             }
             ThreeLevelWardDoc threeLevelWardDoc = inputInfo.getThreeLevelWardDocs().get(0);
             List<DirectorDoctorWardDoc> directorDoctorWardDocs = threeLevelWardDoc.getDirectorDoctorWardDocs();
-            if (directorDoctorWardDocs.size() == 0) {
-                status.set("0");
-                return;
-            }
-            DirectorDoctorWardDoc firstDirector = directorDoctorWardDocs.get(0);
-            String wardDateStr = firstDirector.getStructureMap().get("查房日期");
-            if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(wardDateStr), 72 * 60L)) {
-                status.set("0");
+            if (directorDoctorWardDocs.size() > 0) {
+                DirectorDoctorWardDoc firstDirector = directorDoctorWardDocs.get(0);
+                String wardDateStr = firstDirector.getStructureMap().get("查房日期");
+                if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(wardDateStr), 72 * 60L)) {
+                    status.set("0");
+                }
             }
         } else {
             //没有出院小结,这条直接不报错

+ 10 - 9
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0126.java

@@ -22,8 +22,8 @@ import java.util.Map;
 @Component
 public class THR0126 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
         if (inputInfo.getThreeLevelWardDocs().size() == 0) {
+            status.set("0");
             return;
         }
         if (inputInfo.getLeaveHospitalDoc() != null && inputInfo.getLeaveHospitalDoc().getStructureMap() != null
@@ -42,15 +42,16 @@ public class THR0126 extends QCCatalogue {
             }
             ThreeLevelWardDoc threeLevelWardDoc = inputInfo.getThreeLevelWardDocs().get(0);
             List<AttendingDoctorWardDoc> attendingDoctorWardDocs = threeLevelWardDoc.getAttendingDoctorWardDocs();
-            if (attendingDoctorWardDocs.size() == 0) {
-                status.set("0");
-                return;
-            }
-            AttendingDoctorWardDoc firstAttending = attendingDoctorWardDocs.get(0);
-            String wardDateStr = firstAttending.getStructureMap().get("查房日期");
-            if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(wardDateStr), (long) (48 * 60))) {
-                status.set("0");
+            if (attendingDoctorWardDocs.size() > 0) {
+                AttendingDoctorWardDoc firstAttending = attendingDoctorWardDocs.get(0);
+                String wardDateStr = firstAttending.getStructureMap().get("查房日期");
+                if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(wardDateStr), (long) (48 * 60))) {
+                    status.set("0");
+                }
             }
+        } else {
+            //没有出院小结,这条直接不报错
+            status.set("0");
         }
     }
 }

+ 10 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0131.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.threelevelward;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
 import com.lantone.qc.pub.model.doc.ward.AttendingDoctorWardDoc;
 import com.lantone.qc.pub.model.label.ThreeLevelWardLabel;
 import com.lantone.qc.pub.util.StringUtil;
@@ -24,6 +25,15 @@ public class THR0131 extends QCCatalogue {
             status.set("0");
             return;
         }
+        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
+        if (firstCourseRecordDoc != null) {
+            Map<String, String> structureMap = firstCourseRecordDoc.getStructureMap();
+            String diffDiag = structureMap.get("鉴别诊断");
+            if (StringUtil.isNotBlank(diffDiag) && (diffDiag.contains("诊断明确") || diffDiag.contains("无需鉴别"))) {
+                status.set("0");
+                return;
+            }
+        }
         List<AttendingDoctorWardDoc> attendDocs = inputInfo.getThreeLevelWardDocs().get(0).getAttendingDoctorWardDocs();
         if (attendDocs.size() == 0) {
             status.set("0");

+ 10 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0136.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.threelevelward;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
 import com.lantone.qc.pub.model.doc.ward.DirectorDoctorWardDoc;
 import com.lantone.qc.pub.model.label.ThreeLevelWardLabel;
 import com.lantone.qc.pub.util.StringUtil;
@@ -24,6 +25,15 @@ public class THR0136 extends QCCatalogue {
             status.set("0");
             return;
         }
+        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
+        if (firstCourseRecordDoc != null) {
+            Map<String, String> structureMap = firstCourseRecordDoc.getStructureMap();
+            String diffDiag = structureMap.get("鉴别诊断");
+            if (StringUtil.isNotBlank(diffDiag) && (diffDiag.contains("诊断明确") || diffDiag.contains("无需鉴别"))) {
+                status.set("0");
+                return;
+            }
+        }
         List<DirectorDoctorWardDoc> directorDocs = inputInfo.getThreeLevelWardDocs().get(0).getDirectorDoctorWardDocs();
         if (directorDocs.size() == 0) {
             status.set("0");