瀏覽代碼

新增规则 FIRC03237

hecc 3 年之前
父節點
當前提交
c4e7e54c97
共有 1 個文件被更改,包括 17 次插入8 次删除
  1. 17 8
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03230.java

+ 17 - 8
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03230.java

@@ -13,19 +13,21 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @ClassName : FIRP0188
+ * @ClassName : FIRP03230
  * @Description :血型填写错误
  * @Author : 贺聪聪
  * @Date: 2022-8-3 10:58
  */
 @Component
-public class FIRP03230 extends QCCatalogue {
+public class FIRC03237 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         if (inputInfo.getFirstPageRecordDoc() == null){
             status.set("0");
             return;
         }
 
+        List<LisDoc> lisDocs = inputInfo.getLisDocs();
+        //1.获取【首页>>血型】填写内容,保存为T_A。若文书不在或字段未填写,直接返回。
         if (inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             String bloodType = firstpageStructureMap.get(Content.bloodType);
@@ -34,18 +36,20 @@ public class FIRP03230 extends QCCatalogue {
                 return;
             }
 
+            //2.判断:若T_A不属于【A型/B型/O型/AB型/不详/未查/A/B/O/AB/1/2/3/4/5/6】任一,则报规则。
             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"))){
+                    (!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");
             }
 
+            //3.判断:病历内存在【输血*记录】文书,或【病案首页>>血费】>0,若血型填写为(不详/未查/5/6/-),则报规则。
             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("-"))){
+                        (bloodType.contains("不详") || bloodType.contains("未查") || bloodType.contains("5") || bloodType.contains("6") || bloodType.contains("-"))){
                     status.set("-1");
                     return;
                 }
@@ -59,32 +63,37 @@ public class FIRP03230 extends QCCatalogue {
                 }
             }
 
+            //4.获取检验报告单存在【血型鉴定】>>【ABO血型】结果值,保存为T_B。若未获得血型化验结果,则直接返回(或内测时能提示未成功获取血型化验结果)
             if (inputInfo.getLisDocs() == null){
                 status.set("0");
                 return;
             }
-            List<LisDoc> lisDocs = inputInfo.getLisDocs();
             for (LisDoc lisDoc : lisDocs) {
+                //5.判断:
                 Map<String, String> structureMap = lisDoc.getStructureMap();
                 String result = structureMap.get("AOB血型").replace(" ",null);
+                //5.1若T_B为【A型、A】任一(可自己定义更多同义写法或改用正则p11匹配),则T_A必须为【1、A、A型】任一,否则报规则;
                 if (result.contains("A型") || result.contains("A")){
                     if (!bloodType.contains("1") || !bloodType.contains("A") || !bloodType.contains("A型")){
                         status.set("-1");
                         return;
                     }
                 }
+                //5.2若T_B为【B型、B 型、B】任一(可自己定义更多同义写法或改用正则p12匹配),则T_A必须为【2、B、B型】任一,否则报规则;
                 if (result.contains("B型") || result.contains("B")){
                     if (!bloodType.contains("2") || !bloodType.contains("B") || !bloodType.contains("B型")){
                         status.set("-1");
                         return;
                     }
                 }
+                //5.4若T_B为【O型、O 型、O】任一(可自己定义更多同义写法或改用正则p14匹配),则T_A必须为【3、O、O型】任一,否则报规则;
                 if (result.contains("O型") || result.contains("O")){
                     if (!bloodType.contains("3") || !bloodType.contains("O") || !bloodType.contains("O型")){
                         status.set("-1");
                         return;
                     }
                 }
+                //5.3若T_B为【AB型、AB 型、AB】任一(可自己定义更多同义写法或改用正则p13匹配),则T_A必须为【4、AB、AB型】任一,否则报规则;
                 if (result.contains("AB型") || result.contains("AB")){
                     if (!bloodType.contains("4") || !bloodType.contains("AB") || !bloodType.contains("AB型")){
                         status.set("-1");