Forráskód Böngészése

新增规则 FIRP03230 血型填写错误

hecc 3 éve
szülő
commit
473b355105

+ 97 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03230.java

@@ -0,0 +1,97 @@
+package com.lantone.qc.kernel.catalogue.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.model.doc.ClinicalBloodDoc;
+import com.lantone.qc.pub.model.doc.LisDoc;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0188
+ * @Description :血型填写错误
+ * @Author : 贺聪聪
+ * @Date: 2022-8-3 10:58
+ */
+@Component
+public class FIRP03230 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() == null){
+            status.set("0");
+            return;
+        }
+
+        if (inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String bloodType = firstpageStructureMap.get(Content.bloodType);
+            if (bloodType == null){
+                status.set("0");
+                return;
+            }
+
+            if (!CatalogueUtil.isEmpty(bloodType) &&
+            (!bloodType.contains("A型") || !bloodType.contains("B型") || !bloodType.contains("O型") || !bloodType.contains("AB型")
+            || !bloodType.contains("不详") || !bloodType.contains("未查") || !bloodType.contains("A") || !bloodType.contains("B")
+            || !bloodType.contains("O") || !bloodType.contains("AB") || !bloodType.contains("1") || !bloodType.contains("2")
+            || !bloodType.contains("3") || !bloodType.contains("4") || !bloodType.contains("5") || !bloodType.contains("6"))){
+                status.set("-1");
+            }
+
+            List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
+            if (clinicalBloodDocs !=null && clinicalBloodDocs.size()>0) {
+                if (!CatalogueUtil.isEmpty(bloodType) &&
+                (bloodType.contains("不详") || bloodType.contains("未查") || bloodType.contains("5") || bloodType.contains("6") || bloodType.contains("-"))){
+                    status.set("-1");
+                    return;
+                }
+            }
+
+            if (Integer.valueOf(firstpageStructureMap.get("血费")) >0){
+                if (!CatalogueUtil.isEmpty(bloodType) &&
+                        (bloodType.contains("不详") || bloodType.contains("未查") || bloodType.contains("5") || bloodType.contains("6") || bloodType.contains("-"))){
+                    status.set("-1");
+                    return;
+                }
+            }
+
+            if (inputInfo.getLisDocs() == null){
+                status.set("0");
+                return;
+            }
+            List<LisDoc> lisDocs = inputInfo.getLisDocs();
+            for (LisDoc lisDoc : lisDocs) {
+                Map<String, String> structureMap = lisDoc.getStructureMap();
+                String result = structureMap.get("AOB血型").replace(" ",null);
+                if (result.contains("A型") || result.contains("A")){
+                    if (!bloodType.contains("1") || !bloodType.contains("A") || !bloodType.contains("A型")){
+                        status.set("-1");
+                        return;
+                    }
+                }
+                if (result.contains("B型") || result.contains("B")){
+                    if (!bloodType.contains("2") || !bloodType.contains("B") || !bloodType.contains("B型")){
+                        status.set("-1");
+                        return;
+                    }
+                }
+                if (result.contains("O型") || result.contains("O")){
+                    if (!bloodType.contains("3") || !bloodType.contains("O") || !bloodType.contains("O型")){
+                        status.set("-1");
+                        return;
+                    }
+                }
+                if (result.contains("AB型") || result.contains("AB")){
+                    if (!bloodType.contains("4") || !bloodType.contains("AB") || !bloodType.contains("AB型")){
+                        status.set("-1");
+                        return;
+                    }
+                }
+            }
+        }
+    }
+}