Browse Source

修改危急值提醒代码

hujing 5 years ago
parent
commit
854fd1e824
1 changed files with 59 additions and 15 deletions
  1. 59 15
      rule/src/main/java/org/diagbot/rule/crisis/CrisisApplication.java

+ 59 - 15
rule/src/main/java/org/diagbot/rule/crisis/CrisisApplication.java

@@ -5,11 +5,13 @@ import org.diagbot.common.push.bean.Rule;
 import org.diagbot.common.push.bean.RuleApp;
 import org.diagbot.common.push.bean.SearchData;
 import org.diagbot.common.push.cache.ApplicationCacheUtil;
+import org.springframework.util.StringUtils;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * Created by louhr on 2019/9/2.
@@ -18,29 +20,71 @@ public class CrisisApplication {
     private static String[] itemTypes = { "symptom", "vital", "lis", "pacs" };
 
     public Map<String, List<CrisisDetail>> crisisContent(SearchData searchData) {
-        //<"symptom",["严重低钠血症,此项检验指标高危"]>
-        //<"vital",["严重代谢性碱中毒,此项检验指标高危"]>
+        //<"symptom",[CrisisDetail1,CrisisDetail2]>
+        //<"vital",[CrisisDetail1,CrisisDetail2]>
         Map<String, List<CrisisDetail>> crisisMap = new HashMap<>();
         List<CrisisDetail> crisisList = null;
         Map<String, RuleApp> ruleApps = ApplicationCacheUtil.getKl_rule_app_filter_map();
         Map<String, List<Rule>> rules = searchData.getRules();
+        Set<String> ruleAppKeys = ruleApps.keySet();
         for (String itemType : itemTypes) {
             List<Rule> detailRules = rules.get(itemType);
-            for (Rule rule : detailRules) {
-                if (ruleApps.containsKey(rule.getId())) {
-                    if ("0".equals(ruleApps.get(rule.getId()).getType_id())) {
-                        CrisisDetail crisisDetail = new CrisisDetail();
-                        crisisDetail.setRemindText(ruleApps.get(rule.getId()).getRemind());
-                        crisisDetail.setStandardText(rule.getPub_name());
-                        crisisDetail.setOriginText(rule.getOriginText());
-                        if (crisisMap.get(itemType) == null) {
-                            crisisList = new ArrayList<>();
-                        } else {
-                            crisisList = crisisMap.get(itemType);
+            for (String ruleAppKey : ruleAppKeys) {
+                boolean isRuleAppEnd = false;
+                if (ruleAppKey.contains(",")) {
+                    String[] ruleAppKeysSplit = ruleAppKey.split(",");
+                    int ruleAppKeySum = 0;
+                    for (String ruleAppKeySplit : ruleAppKeysSplit) {
+                        String standardText = "";
+                        String originText = "";
+                        for (Rule rule : detailRules) {
+                            if (ruleAppKeySplit.equals(rule.getId())) {
+                                ruleAppKeySum++;
+                                standardText += ";" + rule.getPub_name();
+                                originText += ";" + rule.getOriginText();
+                                break;
+                            }
+                            if (ruleAppKeySum == ruleAppKeysSplit.length) {
+                                if (!StringUtils.isEmpty(ruleApps.get(ruleAppKey).getType_id())
+                                        && "0".equals(ruleApps.get(ruleAppKey).getType_id())) {
+                                    CrisisDetail crisisDetail = new CrisisDetail();
+                                    crisisDetail.setRemindText(ruleApps.get(ruleAppKey).getRemind());
+                                    crisisDetail.setStandardText(standardText);
+                                    crisisDetail.setOriginText(originText);
+                                    if (crisisMap.get(itemType) == null) {
+                                        crisisList = new ArrayList<>();
+                                    } else {
+                                        crisisList = crisisMap.get(itemType);
+                                    }
+                                    crisisList.add(crisisDetail);
+                                    crisisMap.put(itemType, crisisList);
+                                    isRuleAppEnd = true;
+                                }
+                            }
                         }
-                        crisisList.add(crisisDetail);
-                        crisisMap.put(itemType, crisisList);
                     }
+                } else {
+                    for (Rule rule : detailRules) {
+                        if (ruleApps.containsKey(rule.getId())) {
+                            if (!StringUtils.isEmpty(ruleApps.get(ruleAppKey).getType_id())
+                                    && "0".equals(ruleApps.get(rule.getId()).getType_id())) {
+                                CrisisDetail crisisDetail = new CrisisDetail();
+                                crisisDetail.setRemindText(ruleApps.get(rule.getId()).getRemind());
+                                crisisDetail.setStandardText(rule.getPub_name());
+                                crisisDetail.setOriginText(rule.getOriginText());
+                                if (crisisMap.get(itemType) == null) {
+                                    crisisList = new ArrayList<>();
+                                } else {
+                                    crisisList = crisisMap.get(itemType);
+                                }
+                                crisisList.add(crisisDetail);
+                                crisisMap.put(itemType, crisisList);
+                            }
+                        }
+                    }
+                }
+                if (isRuleAppEnd) {
+                    continue;
                 }
             }
         }