Sfoglia il codice sorgente

义乌妇保:子宫内膜息肉年龄和性别错误规则

yuchengwei 5 mesi fa
parent
commit
b85660b00f

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

@@ -0,0 +1,67 @@
+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.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP03248
+ * @Description : 首页-专病-主诊断-年龄-不符 子宫内膜息肉年龄小于14岁错误
+ */
+@Component
+public class FIRP03248 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureExtMap() != null) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
+            List<Map<String, String>> outpatientEmergencyDiagList = (List) firstpageStructureMap.get(Content.outpatientEmergencyDiag);
+            if (ListUtil.isEmpty(outpatientEmergencyDiagList)) {
+                return;
+            }
+            List<String> firstpageDischargeDiag = getFirstpageDischargeDiag(outpatientEmergencyDiagList);
+            if (!firstpageDischargeDiag.contains("子宫内膜息肉")) {
+                return;
+            }
+            String admissionAge = (String)firstpageStructureMap.get(Content.age);
+            int age = removalUnit(admissionAge);
+            if (age < 14) {
+                status.set("-1");
+                info.set(",患者年龄:" + age);
+                String xmlId = CatalogueUtil.getXmlId(firstpageStructureMap, Content.age);
+                id.set(xmlId);
+            }
+        }
+    }
+
+    private int removalUnit(String admissionAge) {
+        int age = 0;
+        if (StringUtil.isNotBlank(admissionAge) && admissionAge.contains("岁")) {
+            admissionAge = admissionAge.replaceAll("[岁天]", "");
+        }
+        admissionAge = admissionAge.replaceAll("[^0-9]","");
+        if (CatalogueUtil.numbersOnly(admissionAge)) {
+            age = Integer.parseInt(admissionAge);
+        }
+        return age;
+    }
+
+    private List<String> getFirstpageDischargeDiag(List<Map<String, String>> outpatientEmergencyDiagList) {
+        List<String> firstpageDischargeDiag = new ArrayList<>();
+        for (Map<String, String> outpatientEmergencyDiag : outpatientEmergencyDiagList) {
+            String diag = outpatientEmergencyDiag.get(Content.diagnoseName);
+            if (StringUtil.isNotBlank(diag)) {
+                firstpageDischargeDiag.add(diag);
+            }
+        }
+        return firstpageDischargeDiag;
+    }
+}

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

@@ -0,0 +1,56 @@
+package com.lantone.qc.kernel.catalogue.hospital.yiwu.firstpagerecord;
+
+import com.google.common.collect.Lists;
+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.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP03249
+ * @Description : 首页-专病-主诊断-性别-不符 子宫内膜息肉性别不应为男性错误
+ */
+@Component
+public class FIRP03249 extends QCCatalogue {
+
+    private List<String> genderList = Lists.newArrayList("男", "男性", "1", "1男", "1男性", "1.男");
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureExtMap() != null) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
+            List<Map<String, String>> outpatientEmergencyDiagList = (List) firstpageStructureMap.get(Content.outpatientEmergencyDiag);
+            if (ListUtil.isEmpty(outpatientEmergencyDiagList)) {
+                return;
+            }
+            List<String> firstpageDischargeDiag = getFirstpageDischargeDiag(outpatientEmergencyDiagList);
+            if (!firstpageDischargeDiag.contains("子宫内膜息肉")) {
+                return;
+            }
+            String gender = (String)firstpageStructureMap.get(Content.gender);
+            if (genderList.contains(gender)) {
+                status.set("-1");
+                info.set(",患者性别:" + gender);
+                String xmlId = CatalogueUtil.getXmlId(firstpageStructureMap, Content.gender);
+                id.set(xmlId);
+            }
+        }
+    }
+    private List<String> getFirstpageDischargeDiag(List<Map<String, String>> outpatientEmergencyDiagList) {
+        List<String> firstpageDischargeDiag = new ArrayList<>();
+        for (Map<String, String> outpatientEmergencyDiag : outpatientEmergencyDiagList) {
+            String diag = outpatientEmergencyDiag.get(Content.diagnoseName);
+            if (StringUtil.isNotBlank(diag)) {
+                firstpageDischargeDiag.add(diag);
+            }
+        }
+        return firstpageDischargeDiag;
+    }
+}