123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- package org.diagbot;
- import org.diagbot.common.push.bean.Rule;
- import org.diagbot.common.push.bean.SearchData;
- import org.diagbot.common.push.filter.rule.PretreatmentRule;
- import org.diagbot.nlp.rule.module.PreResult;
- import org.diagbot.pub.jdbc.MysqlJdbc;
- import org.springframework.util.StringUtils;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * Created by louhr on 2019/11/22.
- */
- public class RuleTest {
- public static void main(String[] args) {
- RuleTest test = new RuleTest();
- try {
- test.validatePub();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- private void validatePub() throws Exception {
- MysqlJdbc nlpJdbc = new MysqlJdbc("root", "lantone", "jdbc:mysql://192.168.2.236:3306/med?useUnicode=true&characterEncoding=UTF-8");
- List<Map<String, String>> data = nlpJdbc.query("kl_rule_pub",
- new String[]{"id", "pub_name", "min_operator", "min_value", "min_unit",
- "max_operator", "max_value", "max_unit", "eq_operator", "eq_value", "eq_unit", "remind", "suffix_info"}, "");
- List<Map<String, Object>> updates = new ArrayList<>();
- List<Map<String, Object>> wheres = new ArrayList<>();
- //数据预处理
- PretreatmentRule pretreatmentRule = new PretreatmentRule();
- for (Map<String, String> map : data) {
- SearchData searchData = new SearchData();
- searchData.setSysCode("1");
- createSearchData(searchData, map);
- Map<String, Object> line = new HashMap<>();
- Map<String, Object> where = new HashMap<>();
- pretreatmentRule.rule(searchData);
- Map<String, List<Rule>> rules = searchData.getRules();
- for (Map.Entry<String, List<Rule>> entry : rules.entrySet()) {
- if (entry.getValue().size() > 0) {
- line.put("rule_type", "9");
- where.put("id", map.get("id"));
- updates.add(line);
- wheres.add(where);
- break;
- }
- }
- }
- nlpJdbc.update("kl_rule_pub", updates, wheres);
- }
- private void validateApp() throws Exception {
- MysqlJdbc nlpJdbc = new MysqlJdbc("root", "diagbot@20180822", "jdbc:mysql://192.168.2.235:3306/med-s?useUnicode=true&characterEncoding=UTF-8");
- List<Map<String, String>> data = nlpJdbc.query("kl_rule_pub",
- new String[]{"id", "pub_name", "min_operator", "min_value", "min_unit",
- "max_operator", "max_value", "max_unit", "eq_operator", "eq_value", "eq_unit", "remind", "suffix_info"}, " where pub_name like '%体征%'");
- Map<String, Map<String, String>> rulesMap = new HashMap<>();
- for (Map<String, String> map : data) {
- rulesMap.put(map.get("id"), map);
- }
- data = nlpJdbc.query("kl_rule_app", new String[]{"id", "rule_id"}, "");
- for (Map<String, String> map : data) {
- }
- List<Map<String, Object>> updates = new ArrayList<>();
- List<Map<String, Object>> wheres = new ArrayList<>();
- }
- private SearchData createSearchData(SearchData searchData, Map<String, String> map) {
- double value = 0.0;
- if (!StringUtils.isEmpty(map.get("eq_operator")) && "=".equals(map.get("eq_operator"))) {
- if ("诊断--".equals(map.get("pub_name"))) {
- searchData.setDiagString(map.get("eq_value"));
- }
- if ("体征--".equals(map.get("pub_name"))) {
- searchData.setVital(map.get("eq_value"));
- }
- if ("开单--".equals(map.get("pub_name"))) {
- List<PreResult> results = new ArrayList<>();
- PreResult preResult = new PreResult();
- preResult.setValue(map.get("eq_value"));
- results.add(preResult);
- searchData.setLisOrder(results);
- searchData.setPacsOrder(results);
- }
- if ("症状--".equals(map.get("pub_name"))) {
- searchData.setChief(map.get("eq_value"));
- }
- if ("药品--".equals(map.get("pub_name"))) {
- searchData.setDrugString(map.get("eq_value"));
- }
- if ("既往--".equals(map.get("pub_name"))) {
- searchData.setPasts(map.get("eq_value"));
- }
- if ("过敏--".equals(map.get("pub_name"))) {
- searchData.setAllergy(map.get("eq_value"));
- }
- if (map.get("pub_name").indexOf("其他--") > -1) {
- searchData.setOther(map.get("pub_name") + map.get("eq_value"));
- }
- if (map.get("pub_name").indexOf("检查--") > -1) {
- searchData.setPacsString(map.get("pub_name") + map.get("eq_value"));
- }
- } else if (!StringUtils.isEmpty(map.get("min_operator")) && !StringUtils.isEmpty(map.get("max_operator"))) {
- if (map.get("pub_name").indexOf("体征--") > -1) {
- value = Double.valueOf(map.get("min_value")) + 0.1;
- searchData.setVital(map.get("pub_name") + value + map.get("min_unit"));
- }
- if (map.get("pub_name").indexOf("其他--") > -1) {
- value = Double.valueOf(map.get("min_value")) + 0.1;
- searchData.setOther(map.get("pub_name") + value + map.get("min_unit"));
- }
- if (map.get("pub_name").indexOf("化验--") > -1) {
- value = Double.valueOf(map.get("min_value")) + 0.1;
- List<PreResult> list = new ArrayList<>();
- PreResult preResult = new PreResult();
- preResult.setUniqueName(map.get("pub_name").substring(4));
- preResult.setValue(String.valueOf(value));
- preResult.setUnits(map.get("min_unit"));
- list.add(preResult);
- searchData.setLis(list);
- }
- if (map.get("pub_name").indexOf("年龄--") > -1) {
- int v = Integer.valueOf(map.get("min_value")) + 1;
- searchData.setAge(v);
- }
- } else if (!StringUtils.isEmpty(map.get("min_operator"))) {
- if (map.get("pub_name").indexOf("体征--") > -1) {
- value = Double.valueOf(map.get("min_value")) - 0.1;
- searchData.setVital(map.get("pub_name") + value + map.get("min_unit"));
- }
- if (map.get("pub_name").indexOf("其他--") > -1) {
- value = Double.valueOf(map.get("min_value")) - 0.1;
- searchData.setOther(map.get("pub_name") + value + map.get("min_unit"));
- }
- if (map.get("pub_name").indexOf("化验--") > -1) {
- value = Double.valueOf(map.get("min_value")) - 0.1;
- List<PreResult> list = new ArrayList<>();
- PreResult preResult = new PreResult();
- preResult.setUniqueName(map.get("pub_name").substring(4));
- preResult.setValue(String.valueOf(value));
- preResult.setUnits(map.get("min_unit"));
- list.add(preResult);
- searchData.setLis(list);
- }
- if (map.get("pub_name").indexOf("年龄--") > -1) {
- int v = Integer.valueOf(map.get("min_value")) - 1;
- searchData.setAge(v);
- }
- } else if (!StringUtils.isEmpty(map.get("max_operator"))) {
- if (map.get("pub_name").indexOf("体征--") > -1) {
- value = Double.valueOf(map.get("max_value")) + 0.1;
- searchData.setVital(map.get("pub_name") + value + map.get("max_unit"));
- }
- if (map.get("pub_name").indexOf("其他--") > -1) {
- value = Double.valueOf(map.get("max_value")) + 0.1;
- searchData.setOther(map.get("pub_name") + value + map.get("max_unit"));
- }
- if (map.get("pub_name").indexOf("化验--") > -1) {
- value = Double.valueOf(map.get("max_value")) + 0.1;
- List<PreResult> list = new ArrayList<>();
- PreResult preResult = new PreResult();
- preResult.setUniqueName(map.get("pub_name").substring(4));
- preResult.setValue(String.valueOf(value));
- preResult.setUnits(map.get("max_unit"));
- list.add(preResult);
- searchData.setLis(list);
- }
- if (map.get("pub_name").indexOf("年龄--") > -1) {
- int v = Integer.valueOf(map.get("max_value")) + 1;
- searchData.setAge(v);
- }
- }
- return searchData;
- }
- }
|