Ver código fonte

Merge branch 'dev/tipsnew_20211019' into dev/log_20211020

zhoutg 3 anos atrás
pai
commit
135c653b46

+ 137 - 159
src/main/java/com/diagbot/rule/LisRule.java

@@ -98,9 +98,8 @@ public class LisRule {
             return;
         }
         LisOtherDTO lisOtherDTO = new LisOtherDTO();
-        int i = 0;
-        out: // 直接跳出for循环
         for (RuleBaseDTO ruleBaseDTO : ruleBaseDTOList) {
+            boolean flag = false;
             if (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType()) != null) { // 避免空指针
                 Map<String, Object> map = null;
                 switch (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType())) {
@@ -109,114 +108,103 @@ public class LisRule {
                             // 化验自身
                             MatchDTO matchDTO = CoreUtil.compareLis(ruleBaseDTO, lisBean);
                             if (matchDTO != null) {
-                                i++;
                                 lisOtherDTO.setName(matchDTO.getContent());
                                 lisOtherDTO.setLisNameDetail(matchDTO.getLisNameDetail());
-                            } else {
-                                break out;// 直接跳出for循环
+                                flag = true;
                             }
                         } else {
                             // 其他化验——暂无数据
                             List<MatchDTO> matchDTOList = CoreUtil.compareLis(ruleBaseDTO, wordCrfDTO.getLis());
                             if (ListUtil.isNotEmpty(matchDTOList)) {
-                                i++;
                                 List<String> msgLis = matchDTOList.stream().map(r -> r.getContent()).collect(Collectors.toList());
                                 lisOtherDTO.setLisMsg(msgLis);
-                            } else {
-                                break out;// 直接跳出for循环
+                                flag = true;
                             }
                         }
                         break;
                     case Group: // 人群
                         map = groupRule.rule(wordCrfDTO, ruleBaseDTO);
-                        if (CoreUtil.getMapFlag(map)) {
+                        flag = CoreUtil.getMapFlag(map);
+                        if (flag) {
                             lisOtherDTO.getGroupMsg().add((String) map.get("msg"));
-                            i++;
-                        } else {
-                            break out;// 直接跳出for循环
                         }
                         break;
                     case Disease: // 诊断
                         map = commonRule.compareItem(wordCrfDTO.getDiag(), ruleBaseDTO);
-                        if (CoreUtil.getMapFlag(map)) {
+                        flag = CoreUtil.getMapFlag(map);
+                        if (flag) {
                             lisOtherDTO.setDiseaseMsg((List<String>) map.get("msgList"));
-                            i++;
-                        } else {
-                            break out;// 直接跳出for循环
                         }
                         break;
                     case Medicine: // 药品
                         map = commonRule.compareItem(wordCrfDTO.getDrugSource(), ruleBaseDTO);
-                        if (CoreUtil.getMapFlag(map)) {
+                        flag = CoreUtil.getMapFlag(map);
+                        if (flag) {
                             lisOtherDTO.setDrugMsg((List<String>) map.get("msgList"));
-                            i++;
-                        } else {
-                            break out;// 直接跳出for循环
                         }
                         break;
                     case Gender: // 性别
-                        boolean flag = sexRule.getFlag(wordCrfDTO, ruleBaseDTO);
+                        flag = sexRule.getFlag(wordCrfDTO, ruleBaseDTO);
                         if (flag) {
                             lisOtherDTO.setSexMsg(ruleBaseDTO.getBaseLibName());
-                            i++;
-                        } else {
-                            break out;// 直接跳出for循环
                         }
                         break;
                     default:
                         break;
                 }
             }
+            // 有任一条件不满足,直接退出
+            if (!flag) {
+                return;
+            }
         }
         // 条件全部符合
-        if (i == ruleBaseDTOList.size()) {
-            if (StringUtil.isNotBlank(lisOtherDTO.getName())) {
-                String lisNameDetail = lisOtherDTO.getLisNameDetail(); // 化验套餐和明细
-                // 就化验本身一个条件符合
-                if (i == 1) {
-                    BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(),
-                            lisOtherDTO.getName(), "", TypeEnum.lisSelf.getName(), lisBean, msg, lisNameDetail);
-                    CoreUtil.addBeanToList(otherList, billMsg);
-                } else { // 有其他条件符合
-                    // 诊断
-                    if (ListUtil.isNotEmpty(lisOtherDTO.getDiseaseMsg())) {
-                        for (String str : lisOtherDTO.getDiseaseMsg()) {
-                            BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(),
-                                    str, TypeEnum.disease.getName(), lisBean, msg, lisNameDetail);
-                            CoreUtil.addBeanToList(otherList, billMsg);
-                        }
-                    }
-                    // 药品
-                    if (ListUtil.isNotEmpty(lisOtherDTO.getDrugMsg())) {
-                        for (String str : lisOtherDTO.getDrugMsg()) {
-                            BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(),
-                                    str, TypeEnum.drug.getName(), lisBean, msg, lisNameDetail);
-                            CoreUtil.addBeanToList(otherList, billMsg);
-                        }
+        if (StringUtil.isNotBlank(lisOtherDTO.getName())) {
+            String lisNameDetail = lisOtherDTO.getLisNameDetail(); // 化验套餐和明细
+            // 就化验本身一个条件符合
+            if (ruleBaseDTOList.size() == 1) {
+                BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(),
+                        lisOtherDTO.getName(), "", TypeEnum.lisSelf.getName(), lisBean, msg, lisNameDetail);
+                CoreUtil.addBeanToList(otherList, billMsg);
+            } else { // 有其他条件符合
+                // 诊断
+                if (ListUtil.isNotEmpty(lisOtherDTO.getDiseaseMsg())) {
+                    for (String str : lisOtherDTO.getDiseaseMsg()) {
+                        BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(),
+                                str, TypeEnum.disease.getName(), lisBean, msg, lisNameDetail);
+                        CoreUtil.addBeanToList(otherList, billMsg);
                     }
-                    // 人群
-                    if (ListUtil.isNotEmpty(lisOtherDTO.getGroupMsg())) {
-                        for (String str : lisOtherDTO.getGroupMsg()) {
-                            BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(),
-                                    str, TypeEnum.group.getName(), lisBean, msg, lisNameDetail);
-                            CoreUtil.addBeanToList(otherList, billMsg);
-                        }
+                }
+                // 药品
+                if (ListUtil.isNotEmpty(lisOtherDTO.getDrugMsg())) {
+                    for (String str : lisOtherDTO.getDrugMsg()) {
+                        BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(),
+                                str, TypeEnum.drug.getName(), lisBean, msg, lisNameDetail);
+                        CoreUtil.addBeanToList(otherList, billMsg);
                     }
-                    // 化验——暂无数据
-                    if (ListUtil.isNotEmpty(lisOtherDTO.getLisMsg())) {
-                        for (String str : lisOtherDTO.getLisMsg()) {
-                            BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(),
-                                    str, TypeEnum.lis.getName(), lisBean, msg, lisNameDetail);
-                            CoreUtil.addBeanToList(otherList, billMsg);
-                        }
+                }
+                // 人群
+                if (ListUtil.isNotEmpty(lisOtherDTO.getGroupMsg())) {
+                    for (String str : lisOtherDTO.getGroupMsg()) {
+                        BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(),
+                                str, TypeEnum.group.getName(), lisBean, msg, lisNameDetail);
+                        CoreUtil.addBeanToList(otherList, billMsg);
                     }
-                    // 性别
-                    if (StringUtil.isNotBlank(lisOtherDTO.getSexMsg())) {
+                }
+                // 化验——暂无数据
+                if (ListUtil.isNotEmpty(lisOtherDTO.getLisMsg())) {
+                    for (String str : lisOtherDTO.getLisMsg()) {
                         BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(),
-                                lisOtherDTO.getSexMsg(), TypeEnum.gender.getName(), lisBean, msg, lisNameDetail);
+                                str, TypeEnum.lis.getName(), lisBean, msg, lisNameDetail);
                         CoreUtil.addBeanToList(otherList, billMsg);
                     }
                 }
+                // 性别
+                if (StringUtil.isNotBlank(lisOtherDTO.getSexMsg())) {
+                    BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(),
+                            lisOtherDTO.getSexMsg(), TypeEnum.gender.getName(), lisBean, msg, lisNameDetail);
+                    CoreUtil.addBeanToList(otherList, billMsg);
+                }
             }
         }
     }
@@ -235,8 +223,8 @@ public class LisRule {
         }
         LisOtherDTO lisOtherDTO = new LisOtherDTO();
         lisOtherDTO.setMsg(msg);
-        int i = 0;
         for (RuleBaseDTO ruleBaseDTO : ruleBaseDTOList) {
+            boolean flag = false;
             if (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType()) != null) { // 避免空指针
                 Map<String, Object> map = null;
                 switch (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType())) {
@@ -245,93 +233,91 @@ public class LisRule {
                             // 化验自身
                             MatchDTO matchDTO = CoreUtil.compareLis(ruleBaseDTO, lisBean);
                             if (matchDTO != null) {
-                                i++;
                                 lisOtherDTO.setName(matchDTO.getContent());
                                 lisOtherDTO.setLisNameDetail(matchDTO.getLisNameDetail());
-                            } else {
-                                break;
+                                flag = true;
                             }
                         } else {
                             // 其他化验——暂无数据
                             List<MatchDTO> matchDTOList = CoreUtil.compareLis(ruleBaseDTO, wordCrfDTO.getLis());
                             if (ListUtil.isNotEmpty(matchDTOList)) {
-                                i++;
                                 List<String> msgLis = matchDTOList.stream().map(r -> r.getContent()).collect(Collectors.toList());
                                 lisOtherDTO.setLisMsg(msgLis);
-                            } else {
-                                break;
+                                flag = true;
                             }
                         }
                         break;
                     case Disease: // 诊断
                         map = commonRule.compareItem(wordCrfDTO.getDiag(), ruleBaseDTO);
-                        if (CoreUtil.getMapFlag(map)) {
+                        flag = CoreUtil.getMapFlag(map);
+                        if (flag) {
                             lisOtherDTO.setDiseaseMsg((List<String>) map.get("msgList"));
-                            i++;
                         }
                         break;
                     case Medicine: // 药品
                         map = commonRule.compareItem(wordCrfDTO.getDrugSource(), ruleBaseDTO);
-                        if (CoreUtil.getMapFlag(map)) {
+                        flag = CoreUtil.getMapFlag(map);
+                        if (flag) {
                             lisOtherDTO.setDrugMsg((List<String>) map.get("msgList"));
-                            i++;
                         }
                     case Operation: // 手术
                         map = commonRule.compareItem(wordCrfDTO.getOperation(), ruleBaseDTO);
-                        if (CoreUtil.getMapFlag(map)) {
+                        flag = CoreUtil.getMapFlag(map);
+                        if (flag) {
                             lisOtherDTO.setOperationMsg((List<String>) map.get("msgList"));
-                            i++;
                         }
                         break;
                     default:
                         break;
                 }
             }
+            // 有任一条件不满足,直接退出
+            if (!flag) {
+                return;
+            }
         }
         // 条件全部符合
-        if (i == ruleBaseDTOList.size()) {
-            if (StringUtil.isNotBlank(lisOtherDTO.getName())) {
-                // 化验本身符合,其他不符合
-                if (ListUtil.isEmpty(lisOtherDTO.getDiseaseMsg())
-                        && ListUtil.isEmpty(lisOtherDTO.getOperationMsg())
-                        && ListUtil.isEmpty(lisOtherDTO.getLisMsg())) {
-                    BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
-                            lisOtherDTO.getName(), msg, TypeEnum.lis.getName(), lisBean);
-                    otherList.add(billMsg);
-                } else {
-                    // 诊断
-                    if (ListUtil.isNotEmpty(lisOtherDTO.getDiseaseMsg())) {
-                        for (String str : lisOtherDTO.getDiseaseMsg()) {
-                            BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
-                                    "诊断" + str + "," + lisOtherDTO.getName(), msg, TypeEnum.disease.getName(), lisBean);
-                            otherList.add(billMsg);
-                        }
+        if (StringUtil.isNotBlank(lisOtherDTO.getName())) {
+            // 化验本身符合,其他不符合
+            if (ListUtil.isEmpty(lisOtherDTO.getDiseaseMsg())
+                    && ListUtil.isEmpty(lisOtherDTO.getOperationMsg())
+                    && ListUtil.isEmpty(lisOtherDTO.getLisMsg())) {
+                BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
+                        lisOtherDTO.getName(), msg, TypeEnum.lis.getName(), lisBean);
+                otherList.add(billMsg);
+            } else {
+                // 诊断
+                if (ListUtil.isNotEmpty(lisOtherDTO.getDiseaseMsg())) {
+                    for (String str : lisOtherDTO.getDiseaseMsg()) {
+                        BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
+                                "诊断" + str + "," + lisOtherDTO.getName(), msg, TypeEnum.disease.getName(), lisBean);
+                        otherList.add(billMsg);
                     }
-                    // 手术
-                    if (ListUtil.isNotEmpty(lisOtherDTO.getOperationMsg())) {
-                        for (String str : lisOtherDTO.getOperationMsg()) {
-                            BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
-                                    lisOtherDTO.getName() + ",已开" + str, msg, TypeEnum.operation.getName(), lisBean);
-                            otherList.add(billMsg);
-                        }
+                }
+                // 手术
+                if (ListUtil.isNotEmpty(lisOtherDTO.getOperationMsg())) {
+                    for (String str : lisOtherDTO.getOperationMsg()) {
+                        BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
+                                lisOtherDTO.getName() + ",已开" + str, msg, TypeEnum.operation.getName(), lisBean);
+                        otherList.add(billMsg);
                     }
-                    // 化验化验本身符合,其他不符合
-                    if (ListUtil.isNotEmpty(lisOtherDTO.getLisMsg())) {
-                        for (String str : lisOtherDTO.getLisMsg()) {
-                            BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
-                                    lisOtherDTO.getName() + "," + str, msg, TypeEnum.lis.getName(), lisBean);
-                            otherList.add(billMsg);
-                        }
+                }
+                // 化验化验本身符合,其他不符合
+                if (ListUtil.isNotEmpty(lisOtherDTO.getLisMsg())) {
+                    for (String str : lisOtherDTO.getLisMsg()) {
+                        BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
+                                lisOtherDTO.getName() + "," + str, msg, TypeEnum.lis.getName(), lisBean);
+                        otherList.add(billMsg);
                     }
-                    // // 药品暂未用
-                    // if (ListUtil.isNotEmpty(lisOtherDTO.getDrugMsg())) {
-                    //     for (String str : lisOtherDTO.getDrugMsg()) {
-                    //         BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
-                    //                 lisOtherDTO.getName(), msg, TypeEnum.drug.getName(), lisBean);
-                    //         otherList.add(billMsg);
-                    //     }
-                    // }
                 }
+                // // 药品暂未用
+                // if (ListUtil.isNotEmpty(lisOtherDTO.getDrugMsg())) {
+                //     for (String str : lisOtherDTO.getDrugMsg()) {
+                //         BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(),
+                //                 lisOtherDTO.getName(), msg, TypeEnum.drug.getName(), lisBean);
+                //         otherList.add(billMsg);
+                //     }
+                // }
             }
         }
     }
@@ -349,84 +335,76 @@ public class LisRule {
         }
 
         LisCtritalDTO lisCtritalDTO = new LisCtritalDTO();
-        int i = 0;
-        out: // 直接跳出for循环
         for (RuleBaseDTO ruleBaseDTO : ruleBaseDTOList) {
+            boolean flag = false;
             if (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType()) != null) { // 避免空指针
-                Map map = null;
+                Map<String, Object> map = null;
                 switch (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType())) {
                     case LisSubName: // 化验细项
                         if (ruleBaseDTO.getBaseLibName().equals(lisBean.getUniqueName())) {
                             // 化验自身 【第一个】
                             MatchDTO matchDTO = CoreUtil.compareLis(ruleBaseDTO, lisBean);
                             if (matchDTO != null) {
-                                i++;
                                 lisCtritalDTO.setName(matchDTO.getContent());
-                            } else {
-                                break out;// 直接跳出for循环
+                                flag = true;
                             }
                         } else {
                             // 其他化验
                             List<MatchDTO> matchDTOList = CoreUtil.compareLis(ruleBaseDTO, wordCrfDTO.getLis());
                             if (ListUtil.isNotEmpty(matchDTOList)) {
-                                i++;
-                            } else {
-                                break out;// 直接跳出for循环
+                                flag = true;
                             }
                         }
                         break;
                     case Group: // 人群
                         map = groupRule.rule(wordCrfDTO, ruleBaseDTO);
-                        if (CoreUtil.getMapFlag(map)) {
-                            i++;
+                        flag = CoreUtil.getMapFlag(map);
+                        if (flag) {
                             lisCtritalDTO.setGroupMsg(ruleBaseDTO.getBaseLibName());
-                        } else {
-                            break out;// 直接跳出for循环
                         }
                         break;
                     case Age: // 年龄
-                        boolean flag = ageRule.getFlag(wordCrfDTO, ruleBaseDTO);
+                        flag = ageRule.getFlag(wordCrfDTO, ruleBaseDTO);
                         if (flag) {
-                            i++;
                             lisCtritalDTO.setAgeMsg(wordCrfDTO.getAge());
-                        } else {
-                            break out;// 直接跳出for循环
                         }
                         break;
                     default:
                         break;
                 }
             }
+            // 有任一条件不满足,直接退出
+            if (!flag) {
+                return;
+            }
         }
-        if (i == ruleBaseDTOList.size()) {
-            if (StringUtil.isNotBlank(lisCtritalDTO.getName())) {
-                // 就化验本身一个条件符合
-                if (i == 1) {
-                    BillMsg billMsg = msgNewUtil.getCriticalMsg(TypeEnum.lis.getName(),
-                            lisCtritalDTO.getName(), "", TypeEnum.lisSelf.getName(), msg);
-                    CoreUtil.addBeanToList(criticalList, billMsg);
-                } else { // 有其他条件符合
-                    // 化验——暂无数据
-                    if (ListUtil.isNotEmpty(lisCtritalDTO.getLisMsg())) {
-                        for (String str : lisCtritalDTO.getLisMsg()) {
-                            BillMsg billMsg = msgNewUtil.getCriticalMsg(TypeEnum.lis.getName(), lisCtritalDTO.getName(),
-                                    str, TypeEnum.lis.getName(), msg);
-                            CoreUtil.addBeanToList(criticalList, billMsg);
-                        }
-                    }
-                    // 人群
-                    if (StringUtil.isNotBlank(lisCtritalDTO.getGroupMsg())) {
-                        BillMsg billMsg = msgNewUtil.getCriticalMsg(TypeEnum.lis.getName(), lisCtritalDTO.getName(),
-                                lisCtritalDTO.getGroupMsg(), TypeEnum.group.getName(), msg);
-                        CoreUtil.addBeanToList(criticalList, billMsg);
-                    }
-                    // 年龄
-                    if (StringUtil.isNotBlank(lisCtritalDTO.getAgeMsg())) {
+        if (StringUtil.isNotBlank(lisCtritalDTO.getName())) {
+            // 就化验本身一个条件符合
+            if (ruleBaseDTOList.size() == 1) {
+                BillMsg billMsg = msgNewUtil.getCriticalMsg(TypeEnum.lis.getName(),
+                        lisCtritalDTO.getName(), "", TypeEnum.lisSelf.getName(), msg);
+                CoreUtil.addBeanToList(criticalList, billMsg);
+            } else { // 有其他条件符合
+                // 化验——暂无数据
+                if (ListUtil.isNotEmpty(lisCtritalDTO.getLisMsg())) {
+                    for (String str : lisCtritalDTO.getLisMsg()) {
                         BillMsg billMsg = msgNewUtil.getCriticalMsg(TypeEnum.lis.getName(), lisCtritalDTO.getName(),
-                                lisCtritalDTO.getAgeMsg(), TypeEnum.age.getName(), msg);
+                                str, TypeEnum.lis.getName(), msg);
                         CoreUtil.addBeanToList(criticalList, billMsg);
                     }
                 }
+                // 人群
+                if (StringUtil.isNotBlank(lisCtritalDTO.getGroupMsg())) {
+                    BillMsg billMsg = msgNewUtil.getCriticalMsg(TypeEnum.lis.getName(), lisCtritalDTO.getName(),
+                            lisCtritalDTO.getGroupMsg(), TypeEnum.group.getName(), msg);
+                    CoreUtil.addBeanToList(criticalList, billMsg);
+                }
+                // 年龄
+                if (StringUtil.isNotBlank(lisCtritalDTO.getAgeMsg())) {
+                    BillMsg billMsg = msgNewUtil.getCriticalMsg(TypeEnum.lis.getName(), lisCtritalDTO.getName(),
+                            lisCtritalDTO.getAgeMsg(), TypeEnum.age.getName(), msg);
+                    CoreUtil.addBeanToList(criticalList, billMsg);
+                }
             }
         }
     }

+ 21 - 49
src/main/java/com/diagbot/rule/PacsRule.java

@@ -95,81 +95,53 @@ public class PacsRule {
             return;
         }
         PacsOtherDTO pacsOtherDTO = new PacsOtherDTO();
-        int i = 0;
-        out:
         for (RuleBaseDTO ruleBaseDTO : ruleBaseDTOList) {
+            boolean flag = false;
             if (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType()) != null) { // 避免空指针
-                boolean flag = false;
+                Map<String, Object> map = null;
                 switch (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType())) {
                     case Age: // 年龄
                         flag = ageRule.getFlag(wordCrfDTO, ruleBaseDTO);
-                        if (flag) {
-                            i++;
-                        } else {
-                            break out;// 直接跳出for循环
-                        }
                         break;
                     case Gender: // 性别
                         flag = sexRule.getFlag(wordCrfDTO, ruleBaseDTO);
-                        if (flag) {
-                            i++;
-                        } else {
-                            break out;// 直接跳出for循环
-                        }
                         break;
                     case Group: // 人群
-                        Map map = groupRule.rule(wordCrfDTO, ruleBaseDTO);
-                        if (CoreUtil.getMapFlag(map)) {
-                            i++;
-                        } else {
-                            break out;// 直接跳出for循环
-                        }
+                        map = groupRule.rule(wordCrfDTO, ruleBaseDTO);
+                        flag = CoreUtil.getMapFlag(map);
                         break;
                     case PacsResult: // 辅检结果
                         map = commonRule.compareItem(wordCrfDTO.getPacsLabel().getRes(), ruleBaseDTO);
+                        // 不等于术语本身,反向判断
                         if (ruleBaseDTO.getBaseType().equals(BaseTypeEnum.B3.getKey())) {
                             if (!CoreUtil.getMapFlag(map)) {
-                                i++;
-                            } else {
-                                break out;// 直接跳出for循环
+                                flag = true;
                             }
                         } else {
                             if (CoreUtil.getMapFlag(map)) {
-                                i++;
-                            } else {
-                                break out;// 直接跳出for循环
+                                flag = true;
                             }
                         }
                         break;
                     case Disease: // 诊断
                         map = commonRule.compareItem(wordCrfDTO.getDiag(), ruleBaseDTO);
-                        if (CoreUtil.getMapFlag(map)) {
-                            i++;
-                        } else {
-                            break out;// 直接跳出for循环
-                        }
+                        flag = CoreUtil.getMapFlag(map);
                         break;
                     case LisSubName: // 检验结果
                         List<MatchDTO> matchDTOList = CoreUtil.compareLis(ruleBaseDTO, wordCrfDTO.getLis());
                         if (ListUtil.isNotEmpty(matchDTOList)) {
-                            i++;
-                        } else {
-                            break out;// 直接跳出for循环
+                            flag = true;
                         }
                         break;
                     case VitalResult: //体格检查结果
                     case Vital: // 体格检查项目
                         map = CoreUtil.compareVital(ruleBaseDTO, wordCrfDTO.getVitalLabel());
-                        if (CoreUtil.getMapFlag(map)) {
-                            i++;
-                        } else {
-                            break out;// 直接跳出for循环
-                        }
+                        flag = CoreUtil.getMapFlag(map);
                         break;
                     case PacsDescribe: // 辅助检查描述
                         matchDTOList = CoreUtil.comparePacsDesc(ruleBaseDTO, wordCrfDTO.getPacsLabel().getPacsNumList());
                         if (ListUtil.isNotEmpty(matchDTOList)) {
-                            i++;
+                            flag = true;
                             /**
                              * redis中的基础数据顺序会变动,第一条基础数据不一定是后台首行固定数据,找首行固定数据的依据
                              * 是:基础规则术语类型、名称与主规则一致
@@ -178,26 +150,26 @@ public class PacsRule {
                                     && ruleExtDTO.getLibType().equals(ruleBaseDTO.getBaseLibType())) {
                                 pacsOtherDTO.setMainMsg(matchDTOList.stream().map(r -> r.getContent()).collect(Collectors.toList()));
                             }
-                        } else {
-                            break out;// 直接跳出for循环
                         }
                         break;
                     default:
                         break;
                 }
             }
+            // 有任一条件不满足,直接退出
+            if (!flag) {
+                return;
+            }
         }
         // 条件全部符合
-        if (i == ruleBaseDTOList.size()) {
-            if (ListUtil.isNotEmpty(pacsOtherDTO.getMainMsg())) { // 辅检描述走模板
-                for (String s : pacsOtherDTO.getMainMsg()) {
-                    BillMsg otherMsg = msgNewUtil.getOtherPacsMsg(s, LexiconEnum.PacsDescribe.getName(), suggestMsg);
-                    CoreUtil.addBeanToList(otherList, otherMsg);
-                }
-            } else { // 其他直接用提示语
-                BillMsg otherMsg = MsgUtil.getCommonOtherMsg(TypeEnum.pacs.getName(), suggestMsg, suggestMsg, null, null);
+        if (ListUtil.isNotEmpty(pacsOtherDTO.getMainMsg())) { // 辅检描述走模板
+            for (String s : pacsOtherDTO.getMainMsg()) {
+                BillMsg otherMsg = msgNewUtil.getOtherPacsMsg(s, LexiconEnum.PacsDescribe.getName(), suggestMsg);
                 CoreUtil.addBeanToList(otherList, otherMsg);
             }
+        } else { // 其他直接用提示语
+            BillMsg otherMsg = MsgUtil.getCommonOtherMsg(TypeEnum.pacs.getName(), suggestMsg, suggestMsg, null, null);
+            CoreUtil.addBeanToList(otherList, otherMsg);
         }
     }
 }