Przeglądaj źródła

自动化测试bug修正

zhaops 4 lat temu
rodzic
commit
1e23b460ba

+ 100 - 37
cdssman-service/src/main/java/com/diagbot/facade/MedRuleConvertFacade.java

@@ -12,6 +12,7 @@ import com.diagbot.enums.ConEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconEnum;
 import com.diagbot.enums.RuleBaseTypeEnum;
+import com.diagbot.enums.RuleTypeEnum;
 import com.diagbot.enums.StatusEnum;
 import com.diagbot.enums.TypeEnum;
 import com.diagbot.util.BeanUtil;
@@ -219,18 +220,18 @@ public class MedRuleConvertFacade {
                 result.setRuleMsg(record.getRuleMsg());
 
                 //其他值提醒辅检
-                if (result.getRuleType().equals(4)) {
+                if (result.getRuleType().equals(RuleTypeEnum.OtherValReminders.getKey())) {
                     result.setExpectedOutput(record.getRuleMsg());
                 }
 
                 //高危药品
-                if (result.getRuleType().equals(2)
+                if (result.getRuleType().equals(RuleTypeEnum.HighRisk.getKey())
                         && result.getRuleLibType().equals(LexiconEnum.Medicine.getKey())) {
                     result.setReferenceValue(record.getRuleMsg());
                 }
 
                 //输血其他值提醒
-                if (result.getRuleType().equals(5)) {
+                if (result.getRuleType().equals(RuleTypeEnum.Transfusion.getKey())) {
                     result.setReferenceValue(record.getRuleMsg());
                 }
                 //比较关系
@@ -435,7 +436,7 @@ public class MedRuleConvertFacade {
             Integer num = 1;
             for (ResultRule result : entry.getValue()) {
                 List<ResultRule> tempList = Lists.newLinkedList();
-                if (result.getRuleType().equals(4)) {
+                if (result.getRuleType().equals(RuleTypeEnum.OtherValReminders.getKey())) {
                     if (StringUtil.isNotBlank(result.getRuleBaseLibName())
                             && result.getRuleBaseLibName().equals("流产")) {
                         List<String> conflictDiseases = Lists.newLinkedList();
@@ -481,7 +482,7 @@ public class MedRuleConvertFacade {
             Integer num = 1;
             for (ResultRule result : entry.getValue()) {
                 List<ResultRule> tempList = Lists.newLinkedList();
-                if (result.getRuleType().equals(6)) {
+                if (result.getRuleType().equals(RuleTypeEnum.Repeatedly.getKey())) {
                     if (StringUtil.isNotBlank(result.getRuleBaseInputValue())) {
                         List<String> pacsResultArr = Arrays.asList(result.getRuleBaseInputValue().split("\\|"));
                         for (String pacsResult : pacsResultArr) {
@@ -517,7 +518,7 @@ public class MedRuleConvertFacade {
                     List<ResultRule> tempList = Lists.newLinkedList();
                     if (i == 0) {
                         if (result.getRuleLibType().equals(LexiconEnum.Medicine.getKey())) {
-                            List<ResultRule> mappingList = getMappingResult_medicine(result, drugConfigMap, 1);
+                            List<ResultRule> mappingList = getMappingResult_medicine(result, drugConfigMap, 1, result.getRuleType());
                             if (result.getRuleLibType().equals(result.getRuleBaseLibType())
                                     && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
                                 mappingList.forEach(item -> {
@@ -614,7 +615,7 @@ public class MedRuleConvertFacade {
                                 List<ResultRule> mappingList = getMappingResult(result, diseaseConfigMap, 2);
                                 tempList.addAll(mappingList);
                             } else if (result.getRuleBaseLibType().equals(LexiconEnum.Medicine.getKey())) {
-                                List<ResultRule> mappingList = getMappingResult_medicine(result, drugConfigMap, 2);
+                                List<ResultRule> mappingList = getMappingResult_medicine(result, drugConfigMap, 2, result.getRuleType());
                                 tempList.addAll(mappingList);
                             } else if (result.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey())) {
                                 List<ResultRule> mappingList = getMappingResult_lis(result, lisConfigMap, 2);
@@ -918,7 +919,8 @@ public class MedRuleConvertFacade {
      * @param type
      * @return
      */
-    public List<ResultRule> getMappingResult_medicine(ResultRule result, Map<String, Map<String, Map<String, List<Long>>>> configMap, Integer type) {
+    public List<ResultRule> getMappingResult_medicine(ResultRule result, Map<String, Map<String,
+            Map<String, List<Long>>>> configMap, Integer type, Integer ruleType) {
         List<ResultRule> retList = Lists.newLinkedList();
         if (configMap == null || configMap.size() == 0) {
             result.setSuccess(0);
@@ -937,29 +939,90 @@ public class MedRuleConvertFacade {
             keyName = result.getRuleBaseLibName();
         }
 
-        List<String> hisNames = configMap.containsKey(keyName)
-                //? configMap.get(keyName).values().stream().map(i -> i.keySet()).flatMap(Collection::stream).distinct().collect(Collectors.toList())
-                ? new ArrayList<>(configMap.get(keyName).keySet())
-                : new ArrayList<>();
-        if (ListUtil.isNotEmpty(hisNames)) {
-            for (String hisName : hisNames) {
-                ResultRule bmResult = new ResultRule();
-                BeanUtil.copyProperties(result, bmResult);
+        if (ruleType.equals(RuleTypeEnum.HighRisk.getKey())) {
+            Map<String, Map<String, List<Long>>> hisMap = configMap.containsKey(keyName)
+                    ? configMap.get(keyName)
+                    : new HashMap<>();
+            if (hisMap.size() > 0) {
+                for (Map.Entry<String, Map<String, List<Long>>> hisEntry : hisMap.entrySet()) {
+                    if (result.getRuleBaseLibType().equals(LexiconEnum.Form.getKey())
+                            && StringUtil.isNotBlank(result.getRuleBaseLibName())) {
+                        if (hisEntry.getValue() == null || hisEntry.getValue().size() == 0) {
+                            ResultRule bmResult = new ResultRule();
+                            BeanUtil.copyProperties(result, bmResult);
+                            bmResult.setSuccess(0);
+                            if (type.equals(1)) {
+                                bmResult.setMessage(result.getMessage() + result.getRuleLibName() + "(" + result.getRuleLibTypeName()
+                                        + ")+" + result.getRuleBaseLibName() + "(" + result.getRuleBaseLibTypeName() + ")缺少医院端映射;");
+                            } else if (type.equals(2)) {
+                                bmResult.setMessage(result.getMessage() + result.getRuleBaseLibName() + "(" + result.getRuleBaseLibTypeName() + ")缺少医院端映射;");
+                            }
+                            retList.add(bmResult);
+                        } else {
+                            ResultRule bmResult = new ResultRule();
+                            BeanUtil.copyProperties(result, bmResult);
+                            if (hisEntry.getValue().containsKey(result.getRuleBaseLibName())) {
+                                if (type.equals(1)) {
+                                    bmResult.setRuleHisName(hisEntry.getKey());
+                                } else if (type.equals(2)) {
+                                    bmResult.setRuleBaseHisName(hisEntry.getKey());
+                                }
+                            } else {
+                                bmResult.setSuccess(0);
+                                if (type.equals(1)) {
+                                    bmResult.setMessage(result.getMessage() + result.getRuleLibName() + "(" + result.getRuleLibTypeName()
+                                            + ")+" + result.getRuleBaseLibName() + "(" + result.getRuleBaseLibTypeName() + ")缺少医院端映射;");
+                                } else if (type.equals(2)) {
+                                    bmResult.setMessage(result.getMessage() + result.getRuleBaseLibName() + "(" + result.getRuleBaseLibTypeName() + ")缺少医院端映射;");
+                                }
+                            }
+                            retList.add(bmResult);
+                        }
+                    } else {
+                        ResultRule bmResult = new ResultRule();
+                        BeanUtil.copyProperties(result, bmResult);
+                        if (type.equals(1)) {
+                            bmResult.setRuleHisName(hisEntry.getKey());
+                        } else if (type.equals(2)) {
+                            bmResult.setRuleBaseHisName(hisEntry.getKey());
+                        }
+                        retList.add(bmResult);
+                    }
+                }
+            } else {
+                result.setSuccess(0);
                 if (type.equals(1)) {
-                    bmResult.setRuleHisName(hisName);
+                    result.setMessage(result.getMessage() + result.getRuleLibName() + "(" + result.getRuleLibTypeName() + ")缺少医院端映射;");
                 } else if (type.equals(2)) {
-                    bmResult.setRuleBaseHisName(hisName);
+                    result.setMessage(result.getMessage() + result.getRuleBaseLibName() + "(" + result.getRuleBaseLibTypeName() + ")缺少医院端映射;");
                 }
-                retList.add(bmResult);
+                retList.add(result);
             }
         } else {
-            result.setSuccess(0);
-            if (type.equals(1)) {
-                result.setMessage(result.getMessage() + result.getRuleLibName() + "(" + result.getRuleLibTypeName() + ")缺少医院端映射;");
-            } else if (type.equals(2)) {
-                result.setMessage(result.getMessage() + result.getRuleBaseLibName() + "(" + result.getRuleBaseLibTypeName() + ")缺少医院端映射;");
+            List<String> hisNames = configMap.containsKey(keyName)
+                    //? configMap.get(keyName).values().stream().map(i -> i.keySet()).flatMap(Collection::stream).distinct().collect(Collectors.toList())
+                    ? new ArrayList<>(configMap.get(keyName).keySet())
+                    : new ArrayList<>();
+            if (ListUtil.isNotEmpty(hisNames)) {
+                for (String hisName : hisNames) {
+                    ResultRule bmResult = new ResultRule();
+                    BeanUtil.copyProperties(result, bmResult);
+                    if (type.equals(1)) {
+                        bmResult.setRuleHisName(hisName);
+                    } else if (type.equals(2)) {
+                        bmResult.setRuleBaseHisName(hisName);
+                    }
+                    retList.add(bmResult);
+                }
+            } else {
+                result.setSuccess(0);
+                if (type.equals(1)) {
+                    result.setMessage(result.getMessage() + result.getRuleLibName() + "(" + result.getRuleLibTypeName() + ")缺少医院端映射;");
+                } else if (type.equals(2)) {
+                    result.setMessage(result.getMessage() + result.getRuleBaseLibName() + "(" + result.getRuleBaseLibTypeName() + ")缺少医院端映射;");
+                }
+                retList.add(result);
             }
-            retList.add(result);
         }
         return retList;
     }
@@ -1035,7 +1098,7 @@ public class MedRuleConvertFacade {
                 conType = getConType(resultRule.getRuleBaseLibTypeName(), resultRule.getRuleType(), resultRule.getRuleBaseType());
             }
             //开单合理性
-            if (resultRule.getRuleType().equals(1)) {
+            if (resultRule.getRuleType().equals(RuleTypeEnum.Rationality.getKey())) {
                 if (resultRule.getHasSubCond() != null && resultRule.getHasSubCond().equals(1)) {
                     if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Disease.getKey())) {
                         //禁忌疾病
@@ -1172,7 +1235,7 @@ public class MedRuleConvertFacade {
                                 orderType);*/
                     }
                 }
-            } else if (resultRule.getRuleType().equals(2)) {
+            } else if (resultRule.getRuleType().equals(RuleTypeEnum.HighRisk.getKey())) {
                 if (resultRule.getHasSubCond() != null && resultRule.getHasSubCond().equals(1)) {
                     if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Disease.getKey())) {
                         billMsg = MsgUtil.getCommonHighRiskMsg(resultRule.getRuleBaseHisName(), resultRule.getRuleHisName(), orderType);
@@ -1220,7 +1283,7 @@ public class MedRuleConvertFacade {
                 } else {
                     billMsg = MsgUtil.getCommonHighRiskMsg("", resultRule.getRuleHisName(), orderType);
                 }
-            } else if (resultRule.getRuleType().equals(3)) {
+            } else if (resultRule.getRuleType().equals(RuleTypeEnum.Critical.getKey())) {
                 if (resultRule.getRuleLibType().equals(LexiconEnum.LisSubName.getKey())) {
                     String content = "";
                     if (StringUtil.isNotBlank(resultRule.getRuleBaseHisName())) {
@@ -1237,7 +1300,7 @@ public class MedRuleConvertFacade {
                 } else if (resultRule.getRuleLibType().equals(LexiconEnum.PacsResult.getKey())) {
                     billMsg = MsgUtil.getCommonCriticalMsg(resultRule.getRuleLibName(), orderType);
                 }
-            } else if (resultRule.getRuleType().equals(4)) {
+            } else if (resultRule.getRuleType().equals(RuleTypeEnum.OtherValReminders.getKey())) {
                 if (resultRule.getRuleLibType().equals(LexiconEnum.LisSubName.getKey())) {
                     Lis lis = new Lis();
                     lis.setName(resultRule.getRuleHisName());
@@ -1272,7 +1335,7 @@ public class MedRuleConvertFacade {
                         billMsg = MsgUtil.getCommonOtherMsg(orderType, resultRule.getExpectedOutput(), resultRule.getRuleLibName(), conType, null);
                     }
                 }
-            } else if (resultRule.getRuleType().equals(5)) {
+            } else if (resultRule.getRuleType().equals(RuleTypeEnum.Transfusion.getKey())) {
                 if (resultRule.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey())) {
                     String content = "";
                     content += resultRule.getRuleHisName();
@@ -1285,7 +1348,7 @@ public class MedRuleConvertFacade {
                     }
                     billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(), content, resultRule.getRuleMsg(), ConEnum.lis.getName(), null);
                 }
-            } else if (resultRule.getRuleType().equals(6)) {
+            } else if (resultRule.getRuleType().equals(RuleTypeEnum.Repeatedly.getKey())) {
                 billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleHisName(), resultRule.getRuleLibName(), resultRule.getRuleBaseHisName(), conType, orderType);
             }
         } else if (list.size() > 1) {
@@ -1412,7 +1475,7 @@ public class MedRuleConvertFacade {
                 conType = getConType(resultRule.getRuleBaseLibTypeName(), resultRule.getRuleType(), resultRule.getRuleBaseType());
             }
             //开单合理性
-            if (resultRule.getRuleType().equals(1)) {
+            if (resultRule.getRuleType().equals(RuleTypeEnum.Rationality.getKey())) {
                 if (resultRule.getHasSubCond() != null && resultRule.getHasSubCond().equals(1)) {
                     if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Disease.getKey())) {
                         //禁忌疾病
@@ -1545,7 +1608,7 @@ public class MedRuleConvertFacade {
                                 orderType);*/
                     }
                 }
-            } else if (resultRule.getRuleType().equals(2)) {
+            } else if (resultRule.getRuleType().equals(RuleTypeEnum.HighRisk.getKey())) {
                 if (resultRule.getHasSubCond() != null && resultRule.getHasSubCond().equals(1)) {
                     if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Disease.getKey())) {
                         billMsg = MsgUtil.getCommonHighRiskMsg(resultRule.getRuleBaseLibName(), resultRule.getRuleLibName(), orderType);
@@ -1589,7 +1652,7 @@ public class MedRuleConvertFacade {
                 } else {
                     billMsg = MsgUtil.getCommonHighRiskMsg("", resultRule.getRuleLibName(), orderType);
                 }
-            } else if (resultRule.getRuleType().equals(3)) {
+            } else if (resultRule.getRuleType().equals(RuleTypeEnum.Critical.getKey())) {
                 if (resultRule.getRuleLibType().equals(LexiconEnum.LisSubName.getKey())) {
                     String content = "";
                     if (StringUtil.isNotBlank(resultRule.getRuleBaseLibName())) {
@@ -1602,7 +1665,7 @@ public class MedRuleConvertFacade {
                 } else if (resultRule.getRuleLibType().equals(LexiconEnum.PacsResult.getKey())) {
                     billMsg = MsgUtil.getCommonCriticalMsg(resultRule.getRuleLibName(), orderType);
                 }
-            } else if (resultRule.getRuleType().equals(4)) {
+            } else if (resultRule.getRuleType().equals(RuleTypeEnum.OtherValReminders.getKey())) {
                 if (resultRule.getRuleLibType().equals(LexiconEnum.LisSubName.getKey())) {
                     Lis lis = new Lis();
                     lis.setUniqueName(resultRule.getRuleLibName());
@@ -1631,7 +1694,7 @@ public class MedRuleConvertFacade {
                         billMsg = MsgUtil.getCommonOtherMsg(orderType, resultRule.getExpectedOutput(), resultRule.getRuleLibName(), conType, null);
                     }
                 }
-            } else if (resultRule.getRuleType().equals(5)) {
+            } else if (resultRule.getRuleType().equals(RuleTypeEnum.Transfusion.getKey())) {
                 if (resultRule.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey())) {
                     String content = "";
                     content += resultRule.getRuleLibName();
@@ -1640,7 +1703,7 @@ public class MedRuleConvertFacade {
                     }
                     billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(), content, resultRule.getRuleMsg(), ConEnum.lis.getName(), null);
                 }
-            } else if (resultRule.getRuleType().equals(6)) {
+            } else if (resultRule.getRuleType().equals(RuleTypeEnum.Repeatedly.getKey())) {
                 billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(), resultRule.getRuleLibName(), resultRule.getRuleBaseLibName(), conType, orderType);
             }
         } else if (list.size() > 1) {