Browse Source

义乌现场代码修改(专病规则新增、规则bug)

cb 3 months ago
parent
commit
38cc46ae30

+ 20 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0725.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.behospitalized;
 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.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
@@ -19,14 +20,31 @@ public class BEH0725 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if(inputInfo.getBeHospitalizedDoc() == null){
+        if (inputInfo.getBeHospitalizedDoc() == null) {
             return;
         }
         Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (StringUtils.isEmpty(structureMap.get("喂养史"))) {
+        String feedText = structureMap.get("喂养史");
+        if (StringUtils.isBlank(feedText)) {
             status.set("-1");
             return;
         }
+        feedText = feedText.replace("。", "");
+        if (feedText.equals("喂糖水时间:未喂,开奶时间:未开奶")) {
+            status.set("-1");
+            return;
+        }
+        feedText = feedText.replace("喂糖水时间", "").replace(":", "")
+                .replace(",", "").replace("开奶时间", "");
+        if (StringUtil.isEmpty(feedText)) {
+            status.set("-1");
+            return;
+        }
+        String personalText = structureMap.get("个人史");
+        if (StringUtil.isNotBlank(personalText) && (personalText.contains("喂 养 史") || personalText.contains("喂养史"))) {
+            status.set("0");
+            return;
+        }
     }
 
 }

+ 17 - 6
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0726.java

@@ -3,15 +3,11 @@ package com.lantone.qc.kernel.catalogue.behospitalized;
 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.entity.Address;
-import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
-import java.util.List;
 import java.util.Map;
-import java.util.regex.Pattern;
 
 /**
  * @Description: 入院记录出生史未填写
@@ -24,14 +20,29 @@ public class BEH0726 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if(inputInfo.getBeHospitalizedDoc() == null){
+        if (inputInfo.getBeHospitalizedDoc() == null) {
             return;
         }
         Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (StringUtils.isEmpty(structureMap.get("出生史"))) {
+        String birthText = structureMap.get("出生史");
+        if (StringUtils.isBlank(birthText)) {
             status.set("-1");
             return;
         }
+        if (birthText.contains("早产可能原因")) {
+            int i = birthText.indexOf("早产可能原因");
+            if (i < 3) {
+                status.set("-1");
+                return;
+            }
+        }
+
+        String personalText = structureMap.get("个人史");
+        if (StringUtil.isNotBlank(personalText) && personalText.contains("出生史")) {
+            status.set("0");
+            return;
+        }
+
     }
 
 }

+ 13 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0727.java

@@ -25,7 +25,7 @@ public class BEH0727 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if(inputInfo.getBeHospitalizedDoc() == null){
+        if (inputInfo.getBeHospitalizedDoc() == null) {
             return;
         }
         Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
@@ -41,12 +41,22 @@ public class BEH0727 extends QCCatalogue {
 
         if (matcher.find()) {
             String modeOfDelivery = matcher.group(1); // 获取匹配到的数字
-            if(StringUtil.isBlank(modeOfDelivery)){
+            if (StringUtil.isBlank(modeOfDelivery)) {
                 return;
             }
-            if(!presentText.contains(modeOfDelivery)){
+            if (!presentText.contains(modeOfDelivery)) {
                 status.set("-1");
+                return;
             }
         }
+
+        if (presentText.contains("剖宫产") && !birthHistory.contains("剖宫产")) {
+            status.set("-1");
+            return;
+        }
+        if (presentText.contains("顺产") && !birthHistory.contains("顺产")) {
+            status.set("-1");
+            return;
+        }
     }
 }

File diff suppressed because it is too large
+ 3 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC03296.java


+ 20 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03297.java

@@ -1,7 +1,10 @@
 package com.lantone.qc.kernel.catalogue.firstpagerecord;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
@@ -10,6 +13,7 @@ import org.springframework.stereotype.Component;
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName : FIRP03297
@@ -53,10 +57,25 @@ public class FIRP03297 extends QCCatalogue {
                 , "子宫壁妊娠", "子宫角妊娠", "异位妊娠", "持续性异位妊娠");
         //定义一个布尔类型,用于最后的判断
         boolean l = false;
+        if (StringUtil.isNotEmpty(a)) {
+            List<Map<String, String>> diagnosisMapList = (List<Map<String, String>>) JSONArray.parse(a);
+            for (Map<String, String> diagnosisMap : diagnosisMapList) {
+                String diagnoseName = diagnosisMap.get(Content.diagnoseName);//诊断名称
+                if (StringUtil.isNotEmpty(diagnoseName)) {
+                    for (String i : disease_name) {
+                        if (diagnoseName.contains(i)){//用contains判断变量abc中是否包含列表中的任一项
+                            l = true;
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+
         //遍历列表内容,
         for (int i = 0; i < disease_name.size(); i++) {
             String name = disease_name.get(i);//定义一个变量储存每一次遍历时获取的列表值
-            if ((StringUtil.isNotBlank(a) && a.contains(name)) || (StringUtil.isNotBlank(b) && b.contains(name))
+            if ((StringUtil.isNotBlank(b) && b.contains(name))
                     || StringUtil.isNotBlank(c) && c.contains(name)){//用contains判断变量abc中是否包含列表中的任一项
                 l = true;
                 break;
@@ -64,7 +83,6 @@ public class FIRP03297 extends QCCatalogue {
         }
         if (l) {
 
-
             //定义变量储存从病案首页中获取的年龄字段信息
             String age = firstPageRecordDoc.getStructureMap().get("年龄");
             if (StringUtil.isNotBlank(age)) {

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/doctorsadvice/ADVI03254.java

@@ -31,7 +31,7 @@ public class ADVI03254 extends QCCatalogue {
         status.set("0");
 
         Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
-        List<Map<String, String>> outpatientEmergencyDiagList = (List) firstpageStructureMap.get(Content.outpatientEmergencyDiag);
+        List<Map<String, String>> outpatientEmergencyDiagList = (List) firstpageStructureMap.get(Content.dischargeDiag);
         if (ListUtil.isEmpty(outpatientEmergencyDiagList)) {
             return;
         }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstpagerecord/FIRP03252.java

@@ -34,7 +34,7 @@ public class FIRP03252 extends QCCatalogue {
             }
 
 
-            List<Map<String, String>> outpatientEmergencyDiagList = (List) firstpageStructureMap.get(Content.outpatientEmergencyDiag);
+            List<Map<String, String>> outpatientEmergencyDiagList = (List) firstpageStructureMap.get(Content.dischargeDiag);
             if (ListUtil.isEmpty(outpatientEmergencyDiagList)) {
                 status.set("-1");
                 return;

+ 4 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstpagerecord/FIRP03258.java

@@ -38,13 +38,16 @@ public class FIRP03258 extends QCCatalogue {
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureExtMap() != null) {
             Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
             List<Map<String, String>> outpatientEmergencyDiagList = (List) firstpageStructureMap.get(Content.dischargeDiag);
+            String outpatientEmergencyDiag = inputInfo.getFirstPageRecordDoc().getStructureMap().get(Content.outpatientEmergencyDiag);
             if (ListUtil.isEmpty(outpatientEmergencyDiagList)) {
                 return;
             }
             List<String> firstpageDischargeDiag = getFirstpageDischargeDiag(outpatientEmergencyDiagList);
-            if (!firstpageDischargeDiag.contains("急性支气管肺炎")) {
+            if (!firstpageDischargeDiag.contains("急性支气管肺炎") &&
+                    (StringUtil.isBlank(outpatientEmergencyDiag) || !outpatientEmergencyDiag.contains("急性支气管肺炎"))) {
                 return;
             }
+
             String admissionAge = (String)firstpageStructureMap.get(Content.age);
             if (isUnder28Days(admissionAge)) {
                 status.set("-1");

+ 34 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstpagerecord/FIRP0360.java

@@ -0,0 +1,34 @@
+package com.lantone.qc.kernel.catalogue.hospital.yiwu.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0360
+ * @Description : 职业应为其他
+ * @Author : 陈斌
+ * (新生儿高胆血红素)
+ */
+@Component
+public class FIRP0360 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        if (inputInfo.getFirstPageRecordDoc() == null ) {
+            return;
+        }
+        Map<String, String> structureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+        if(structureMap != null){
+            String name = structureMap.get("职业");
+            if(!("其他").equals(name)){
+                status.set("-1");
+            }
+        }
+
+    }
+
+}

+ 39 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/leavehospital/LEA02988.java

@@ -0,0 +1,39 @@
+package com.lantone.qc.kernel.catalogue.hospital.yiwu.leavehospital;
+
+import com.google.common.collect.Lists;
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.RegularUtil;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
+import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Category;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : LEA02988
+ * @Description : 出院诊断必须有急性支气管肺炎
+ * @Author : 陈斌
+ * @Date: 2025-02-27 01:20
+ */
+@Component
+public class LEA02988 extends QCCatalogue {
+    @Override
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
+        if (leaveHospitalDoc == null) {
+            return;
+        }
+        if (!(leaveHospitalDoc.getStructureMap().get("出院诊断").equals("急性支气管肺炎") ||
+                leaveHospitalDoc.getStructureMap().get("出院诊断").equals("急性支气管") )){
+            status.set("-1");
+            return;
+        }
+    }
+}

+ 40 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/leavehospital/LEA02989.java

@@ -0,0 +1,40 @@
+package com.lantone.qc.kernel.catalogue.hospital.yiwu.leavehospital;
+
+import com.google.common.collect.Lists;
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.RegularUtil;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
+import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Category;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : LEA02989
+ * @Description : 出院诊断必须有新生儿高胆红素血症
+ * @Author : 陈斌
+ * @Date: 2025-02-27 01:20
+ * 新生儿高胆红素血症
+ */
+@Component
+public class LEA02989 extends QCCatalogue {
+    @Override
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
+        if (leaveHospitalDoc == null) {
+            return;
+        }
+        if (!(leaveHospitalDoc.getStructureMap().get("出院诊断").equals("新生儿高胆红素血症") ||
+                leaveHospitalDoc.getStructureMap().get("出院诊断").equals("胆红素血症") )){
+            status.set("-1");
+            return;
+        }
+    }
+}

+ 31 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/leavehospital/LEA02990.java

@@ -0,0 +1,31 @@
+package com.lantone.qc.kernel.catalogue.hospital.yiwu.leavehospital;
+
+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.LeaveHospitalDoc;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName : LEA02990
+ * @Description : 出院诊断必须有新生儿呼吸窘迫综合症
+ * @Author : 陈斌
+ * @Date: 2025-02-27 01:20
+ * 新生儿呼吸窘迫综合症
+ */
+@Component
+public class LEA02990 extends QCCatalogue {
+    @Override
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
+        if (leaveHospitalDoc == null) {
+            return;
+        }
+        if (!(leaveHospitalDoc.getStructureMap().get("出院诊断").equals("新生儿呼吸窘迫综合症") ||
+                leaveHospitalDoc.getStructureMap().get("出院诊断").equals("呼吸窘迫") )){
+            status.set("-1");
+            return;
+        }
+    }
+}