zhoutg 4 vuotta sitten
vanhempi
commit
e78ae24c15

+ 17 - 4
src/main/java/com/diagbot/rule/LisRule.java

@@ -304,10 +304,23 @@ public class LisRule {
                 Map map = null;
                 switch (LexiconEnum.getEnum(ruleBaseDTO.getBaseLibType())) {
                     case LisSubName: // 化验细项
-                        map = CoreUtil.compareLis(ruleBaseDTO, lisBean);
-                        if ((Boolean) map.get("flag") == true) {
-                            i++;
-                            msg = (String) map.get("msg");
+                        if (ruleBaseDTO.getBaseLibName().equals(lisBean.getUniqueName())) {
+                            // 化验自身 【第一个】
+                            map = CoreUtil.compareLis(ruleBaseDTO, lisBean);
+                            if (CoreUtil.getMapFlag(map)) {
+                                i++;
+                                msg = (String) map.get("msg");
+                            } else {
+                                break;
+                            }
+                        } else {
+                            // 其他化验
+                            map = CoreUtil.compareLis(ruleBaseDTO, wordCrfDTO.getLis());
+                            if (CoreUtil.getMapFlag(map)) {
+                                i++;
+                            } else {
+                                break;
+                            }
                         }
                         break;
                     case Group: // 人群

+ 5 - 3
src/main/java/com/diagbot/util/CoreUtil.java

@@ -3,6 +3,7 @@ package com.diagbot.util;
 import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.dto.RuleBaseDTO;
+import com.diagbot.enums.LexiconEnum;
 import com.diagbot.model.entity.BodyPart;
 import com.diagbot.model.entity.Clinical;
 import com.diagbot.model.entity.Negative;
@@ -354,13 +355,14 @@ public class CoreUtil {
             map.put("flag", flag);
             return map;
         }
-        if (StringUtil.isBlank(ruleBaseDTO.getBaseMaxValue()) && StringUtil.isBlank(ruleBaseDTO.getBaseMinValue())) {
+        // if (StringUtil.isBlank(ruleBaseDTO.getBaseMaxValue()) && StringUtil.isBlank(ruleBaseDTO.getBaseMinValue())) {
+        // 如果是体格检查结果,就用临床表现比较;如果是体格检查项目,用体征数值比较
+        if (ruleBaseDTO.getBaseLibType().equals(LexiconEnum.VitalResult.getKey())) {
             // 体征名称比较(例如:喉头水肿)
             for (Clinical clinical : clinicals) {
                 if (ruleBaseDTO.getBaseLibName().equals(clinical.getStandName())) {
-                    map.put("msg", clinical.getName());
+                    msgList.add(clinical.getName());
                     flag = true;
-                    break;
                 }
             }
         } else {