|
@@ -5,11 +5,13 @@ import org.diagbot.common.push.bean.Rule;
|
|
import org.diagbot.common.push.bean.RuleApp;
|
|
import org.diagbot.common.push.bean.RuleApp;
|
|
import org.diagbot.common.push.bean.SearchData;
|
|
import org.diagbot.common.push.bean.SearchData;
|
|
import org.diagbot.common.push.cache.ApplicationCacheUtil;
|
|
import org.diagbot.common.push.cache.ApplicationCacheUtil;
|
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
+import java.util.Set;
|
|
|
|
|
|
/**
|
|
/**
|
|
* Created by louhr on 2019/9/2.
|
|
* Created by louhr on 2019/9/2.
|
|
@@ -18,29 +20,71 @@ public class CrisisApplication {
|
|
private static String[] itemTypes = { "symptom", "vital", "lis", "pacs" };
|
|
private static String[] itemTypes = { "symptom", "vital", "lis", "pacs" };
|
|
|
|
|
|
public Map<String, List<CrisisDetail>> crisisContent(SearchData searchData) {
|
|
public Map<String, List<CrisisDetail>> crisisContent(SearchData searchData) {
|
|
- //<"symptom",["严重低钠血症,此项检验指标高危"]>
|
|
|
|
- //<"vital",["严重代谢性碱中毒,此项检验指标高危"]>
|
|
|
|
|
|
+ //<"symptom",[CrisisDetail1,CrisisDetail2]>
|
|
|
|
+ //<"vital",[CrisisDetail1,CrisisDetail2]>
|
|
Map<String, List<CrisisDetail>> crisisMap = new HashMap<>();
|
|
Map<String, List<CrisisDetail>> crisisMap = new HashMap<>();
|
|
List<CrisisDetail> crisisList = null;
|
|
List<CrisisDetail> crisisList = null;
|
|
Map<String, RuleApp> ruleApps = ApplicationCacheUtil.getKl_rule_app_filter_map();
|
|
Map<String, RuleApp> ruleApps = ApplicationCacheUtil.getKl_rule_app_filter_map();
|
|
Map<String, List<Rule>> rules = searchData.getRules();
|
|
Map<String, List<Rule>> rules = searchData.getRules();
|
|
|
|
+ Set<String> ruleAppKeys = ruleApps.keySet();
|
|
for (String itemType : itemTypes) {
|
|
for (String itemType : itemTypes) {
|
|
List<Rule> detailRules = rules.get(itemType);
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|