|
@@ -0,0 +1,130 @@
|
|
|
+package org.diagbot.common.push.cache;
|
|
|
+
|
|
|
+import org.diagbot.common.push.bean.ResultMappingFilter;
|
|
|
+import org.diagbot.common.push.bean.Rule;
|
|
|
+import org.diagbot.nlp.participle.cfg.Configuration;
|
|
|
+import org.diagbot.nlp.participle.cfg.DefaultConfig;
|
|
|
+import org.diagbot.nlp.util.NlpCache;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+public class ApplicationCacheUtil {
|
|
|
+
|
|
|
+ //词库同义词定义
|
|
|
+ public static Map<String, Map<String, String>> standard_info_synonym_map = null;
|
|
|
+ //诊断科室衍射
|
|
|
+ public static Map<String, String> doc_result_mapping_diag_map = null;
|
|
|
+ //特征性别 年龄过滤等
|
|
|
+ public static Map<String, Map<String, ResultMappingFilter>> doc_result_mapping_filter_map = null;
|
|
|
+ // 规则
|
|
|
+ public static Map<String, List<Rule>> kl_rule_filter_map = null;
|
|
|
+
|
|
|
+ public static Map<String, Map<String, String>> getStandard_info_synonym_map() {
|
|
|
+ if (standard_info_synonym_map == null) {
|
|
|
+ standard_info_synonym_map = NlpCache.getStandard_info_synonym_map();
|
|
|
+ }
|
|
|
+ return standard_info_synonym_map;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static Map<String, String> getDoc_result_mapping_diag_map() {
|
|
|
+ if (doc_result_mapping_diag_map == null) {
|
|
|
+ createDoc_result_mapping_diag_map();
|
|
|
+ }
|
|
|
+ return doc_result_mapping_diag_map;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static Map<String, String> createDoc_result_mapping_diag_map() {
|
|
|
+ Configuration configuration = new DefaultConfig();
|
|
|
+ doc_result_mapping_diag_map = configuration.loadMapDict("bigdata_diag_2_dept.dict");
|
|
|
+ return doc_result_mapping_diag_map;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static Map<String, Map<String, ResultMappingFilter>> getDoc_result_mapping_filter_map() {
|
|
|
+ if (doc_result_mapping_filter_map == null) {
|
|
|
+ createDoc_result_mapping_filter_map();
|
|
|
+ }
|
|
|
+ return doc_result_mapping_filter_map;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static Map<String, Map<String, ResultMappingFilter>> createDoc_result_mapping_filter_map() {
|
|
|
+ Configuration configuration = new DefaultConfig();
|
|
|
+ List<String> fileContents = configuration.readFileContents("bigdata_sex_age_filter.dict");
|
|
|
+ String[] line_string;
|
|
|
+ List<ResultMappingFilter> resultMappingFilters = new ArrayList<>();
|
|
|
+ try {
|
|
|
+ for (int i = 0; i < fileContents.size(); i++) {
|
|
|
+ line_string = org.apache.commons.lang3.StringUtils.split(fileContents.get(i), "\\|");
|
|
|
+ if (line_string.length == 5) {
|
|
|
+ ResultMappingFilter resultMappingFilter = new ResultMappingFilter();
|
|
|
+ resultMappingFilter.setFeatureName(line_string[0]);
|
|
|
+ resultMappingFilter.setFeatureType(line_string[1]);
|
|
|
+ resultMappingFilter.setSex(line_string[2]);
|
|
|
+ resultMappingFilter.setAgeStart(Integer.parseInt(line_string[3]));
|
|
|
+ resultMappingFilter.setAgeEnd(Integer.parseInt(line_string[4]));
|
|
|
+ resultMappingFilters.add(resultMappingFilter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ doc_result_mapping_filter_map = new HashMap<>();
|
|
|
+ Map<String, ResultMappingFilter> filterMap = null;
|
|
|
+ for (ResultMappingFilter resultMappingFilter : resultMappingFilters) {
|
|
|
+ filterMap = doc_result_mapping_filter_map.get(resultMappingFilter.getFeatureType());
|
|
|
+ if (filterMap == null) {
|
|
|
+ filterMap = new HashMap<>();
|
|
|
+ }
|
|
|
+ filterMap.put(resultMappingFilter.getFeatureName(), resultMappingFilter);
|
|
|
+ doc_result_mapping_filter_map.put(resultMappingFilter.getFeatureType(), filterMap);
|
|
|
+ }
|
|
|
+ return doc_result_mapping_filter_map;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public static Map<String, List<Rule>> getKl_rule_filter_map() {
|
|
|
+ if (kl_rule_filter_map == null) {
|
|
|
+ create_kl_rule_filter_map();
|
|
|
+ }
|
|
|
+ return kl_rule_filter_map;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void create_kl_rule_filter_map() {
|
|
|
+ kl_rule_filter_map = new HashMap<>();
|
|
|
+
|
|
|
+ Configuration configuration = new DefaultConfig();
|
|
|
+ List<String> fileContents = configuration.readFileContents("bigdata_rule_filter.dict");
|
|
|
+
|
|
|
+ List<Rule> rules = null;
|
|
|
+ for (String line:fileContents) {
|
|
|
+ String[] content = line.split("\\|");
|
|
|
+ Rule rule = new Rule();
|
|
|
+ if (content.length == 14) {
|
|
|
+ rule.setIdx_name(content[0]==null?"":content[0]);
|
|
|
+ rule.setSet_name(content[1]==null?"":content[1]);
|
|
|
+ rule.setSet_status(content[2]==null?"":content[2]);
|
|
|
+ rule.setMin_value(content[3]==null?"":content[3]);
|
|
|
+ rule.setMin_concept_text(content[4]==null?"":content[4]);
|
|
|
+ rule.setMax_value(content[5]==null?"":content[5]);
|
|
|
+ rule.setMax_concept_text(content[6]==null?"":content[6]);
|
|
|
+ rule.setSet_value(content[7]==null?"":content[7]);
|
|
|
+ rule.setSet_concept_text(content[8]==null?"":content[8]);
|
|
|
+ rule.setUnit(content[9]==null?"":content[9]);
|
|
|
+ rule.setType_value(content[10]==null?"":content[10]);
|
|
|
+ rule.setMinRemind(content[11]==null?"":content[11]);
|
|
|
+ rule.setMaxRemind(content[12]==null?"":content[12]);
|
|
|
+ rule.setSetRemind(content[13]==null?"":content[13]);
|
|
|
+ if (kl_rule_filter_map.get(rule.getIdx_name()) == null) {
|
|
|
+ rules = new ArrayList<>();
|
|
|
+ } else {
|
|
|
+ rules = kl_rule_filter_map.get(rule.getIdx_name());
|
|
|
+ }
|
|
|
+ rules.add(rule);
|
|
|
+ kl_rule_filter_map.put(rule.getIdx_name(), rules);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|