Prechádzať zdrojové kódy

新增杭州妇保院规则 新增

hecc 3 rokov pred
rodič
commit
70580a631e

+ 75 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/wenfuyi/clinicalblood/CLI0307.java

@@ -0,0 +1,75 @@
+package com.lantone.qc.kernel.catalogue.hospital.wenfuyi.clinicalblood;
+
+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.ClinicalBloodDoc;
+import com.lantone.qc.pub.util.ListUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @ClassName : CLI0307
+ * @Description : 输血记录中无血液制品种类及量
+ * @Author : 贺聪聪
+ * @Date: 2022-07-06 16:28
+ */
+@Component
+public class CLI0307 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
+        if (ListUtil.isEmpty(clinicalBloodDocs)) {
+            return;
+        }
+        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
+            int matchSum = 0;
+            for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
+                Map<String, String> cliBStructureMap = cliB.getStructureMap();
+                if (StringUtils.isNotEmpty(cliBStructureMap.get("输注种类及量"))) {
+                    matchSum++;
+                    continue;
+                }
+                if (cliBStructureMap.containsKey("输注种类及量")) {
+                    String bloodType = cliBStructureMap.get("输注种类及量");
+                    String bloods = cutString(bloodType, "血液成分", "容量");
+                    if (StringUtils.isNotEmpty(bloods)&&
+                            (!bloods.contains("") || !bloods.contains(" ") || !bloods.contains("  ") ||
+                                    !bloods.contains(": ") || !bloods.contains(":") | !bloods.contains(":  ") ||
+                                    !bloods.contains(": ") || !bloods.contains(":") | !bloods.contains(":  "))) {
+                        String bloodNum = cutString(bloodType, "容量", "其他");
+                        if (StringUtils.isNotEmpty(bloodNum)&&
+                                (!bloodNum.contains("") || !bloodNum.contains(" ") || !bloodNum.contains("  ") ||
+                                 !bloodNum.contains(": ") || !bloodNum.contains(":") | !bloodNum.contains(":  ") ||
+                                !bloodNum.contains(": ") || !bloodNum.contains(":") | !bloodNum.contains(":  "))) {
+                        }
+                        matchSum++;
+                        continue;
+                    }
+
+                }
+            }
+            if (matchSum != clinicalBloodDocs.size()) {
+                status.set("-1");
+            }
+        }
+    }
+
+    public static String cutString(String str, String start, String end) {
+        if (StringUtils.isBlank(str)) {
+            return str;
+        }
+        String reg = start + "(.*)" + end;
+        Pattern pattern = Pattern.compile(reg);
+        Matcher matcher = pattern.matcher(str);
+        while (matcher.find()) {
+            str = matcher.group(1);
+        }
+        return str;
+    }
+}

+ 55 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/wenfuyi/clinicalblood/CLI0569.java

@@ -0,0 +1,55 @@
+package com.lantone.qc.kernel.catalogue.hospital.wenfuyi.clinicalblood;
+
+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.ClinicalBloodDoc;
+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.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @ClassName : CLI0569
+ * @Description :  输血记录血型未填写
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28
+ */
+@Component
+public class CLI0569 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
+        if (ListUtil.isEmpty(clinicalBloodDocs)) {
+            return;
+        }
+        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
+            int matchSum = 0;
+            for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
+                Map<String, String> cliBStructureMap = cliB.getStructureMap();
+                if (StringUtils.isNotEmpty(cliBStructureMap.get("输注种类及量"))) {
+                    matchSum++;
+                    continue;
+                }
+                if (cliBStructureMap.containsKey("输注种类及量")) {
+                    String bloodType = cliBStructureMap.get("输注种类及量").substring(5,7);
+                    if (StringUtils.isNotEmpty(bloodType) &&
+                            (bloodType.contains("A") || bloodType.contains("B")
+                                    || bloodType.contains("O") || bloodType.contains("AB"))) {
+                        matchSum++;
+                        continue;
+                    }
+                }
+            }
+            if (matchSum != clinicalBloodDocs.size()) {
+                status.set("-1");
+            }
+        }
+
+    }
+}