|
@@ -646,8 +646,8 @@ public class Neo4jAPI {
|
|
* @param keys
|
|
* @param keys
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public Map<String, Map<String,String>> getCondition(String[] keys,String webDiag) {
|
|
|
|
- Map<String, Map<String,String>> diseaseCondition = new LinkedHashMap<>();
|
|
|
|
|
|
+ public Map<String, Map<String, String>> getCondition(String[] keys, String webDiag) {
|
|
|
|
+ Map<String, Map<String, String>> diseaseCondition = new LinkedHashMap<>();
|
|
List<String> newList = new ArrayList<>();
|
|
List<String> newList = new ArrayList<>();
|
|
ArrayList<String> fildList = new ArrayList<>();
|
|
ArrayList<String> fildList = new ArrayList<>();
|
|
//输出确诊集合
|
|
//输出确诊集合
|
|
@@ -704,12 +704,8 @@ public class Neo4jAPI {
|
|
while (result.hasNext()) {
|
|
while (result.hasNext()) {
|
|
Record record = result.next();
|
|
Record record = result.next();
|
|
String condition = record.get("condition").toString();
|
|
String condition = record.get("condition").toString();
|
|
- String jundgement = record.get("jundgement").toString();
|
|
|
|
- String label = record.get("label").toString();
|
|
|
|
- if ("TRUE".equals(jundgement)) {
|
|
|
|
- newList.add(condition);
|
|
|
|
- fildList.add(condition);
|
|
|
|
- }
|
|
|
|
|
|
+ newList.add(condition);
|
|
|
|
+ fildList.add(condition);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//第三步查找确诊
|
|
//第三步查找确诊
|
|
@@ -729,12 +725,11 @@ public class Neo4jAPI {
|
|
for (String qu : quezhen) {
|
|
for (String qu : quezhen) {
|
|
Map<String, String> dis_res = new HashMap<>();
|
|
Map<String, String> dis_res = new HashMap<>();
|
|
dis_res.put("确诊", "");
|
|
dis_res.put("确诊", "");
|
|
-// diseaseCondition.put(qu, JSON.toJSONString(dis_res));
|
|
|
|
- diseaseCondition.put(qu,dis_res);
|
|
|
|
|
|
+ diseaseCondition.put(qu, dis_res);
|
|
logger.info("图谱推出的诊断为: " + qu);
|
|
logger.info("图谱推出的诊断为: " + qu);
|
|
}
|
|
}
|
|
Set<String> queSets = diseaseCondition.keySet();
|
|
Set<String> queSets = diseaseCondition.keySet();
|
|
- if(webDiag != null && webDiag.trim() != ""){
|
|
|
|
|
|
+ if (webDiag != null && webDiag.trim() != "") {
|
|
String[] webDiagSplits = webDiag.split(",");
|
|
String[] webDiagSplits = webDiag.split(",");
|
|
String mainDiag = webDiagSplits[0];
|
|
String mainDiag = webDiagSplits[0];
|
|
query = propertiesUtil.getProperty("searchDifferentialDiagnose").replace("mainDis", mainDiag);
|
|
query = propertiesUtil.getProperty("searchDifferentialDiagnose").replace("mainDis", mainDiag);
|
|
@@ -742,21 +737,38 @@ public class Neo4jAPI {
|
|
while (result.hasNext()) {
|
|
while (result.hasNext()) {
|
|
Record record = result.next();
|
|
Record record = result.next();
|
|
List<Object> coll = record.get("coll").asList();
|
|
List<Object> coll = record.get("coll").asList();
|
|
- if(coll != null && coll.size()>0){
|
|
|
|
- for (Object o:coll) {
|
|
|
|
- if(queSets.contains(o.toString().replace("\"",""))){
|
|
|
|
|
|
+ if (coll != null && coll.size() > 0) {
|
|
|
|
+ for (Object o : coll) {
|
|
|
|
+ if (queSets.contains(o.toString().replace("\"", ""))) {
|
|
Map<String, String> stringStringMap = diseaseCondition.get(o.toString().replace("\"", ""));
|
|
Map<String, String> stringStringMap = diseaseCondition.get(o.toString().replace("\"", ""));
|
|
- stringStringMap.put("鉴别诊断","");
|
|
|
|
- diseaseCondition.put(o.toString().replace("\"",""),stringStringMap);
|
|
|
|
- }else {
|
|
|
|
|
|
+ stringStringMap.put("鉴别诊断", "");
|
|
|
|
+ diseaseCondition.put(o.toString().replace("\"", ""), stringStringMap);
|
|
|
|
+ } else {
|
|
Map<String, String> diffMap = new HashMap<>();
|
|
Map<String, String> diffMap = new HashMap<>();
|
|
- diffMap.put("鉴别诊断","");
|
|
|
|
- diseaseCondition.put(o.toString().replace("\"",""),diffMap);
|
|
|
|
|
|
+ diffMap.put("鉴别诊断", "");
|
|
|
|
+ diseaseCondition.put(o.toString().replace("\"", ""), diffMap);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ //判断急诊
|
|
|
|
+ Set<String> disSet = diseaseCondition.keySet();
|
|
|
|
+ List<String> newDis = new ArrayList<>();
|
|
|
|
+ if(disSet.size()>0){
|
|
|
|
+ for (String dis:disSet) {
|
|
|
|
+ newDis.add("\""+dis+"\"");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ query =propertiesUtil.getProperty("searchEmergency").replace("disList",newDis.toString());
|
|
|
|
+ result = session.run(query);
|
|
|
|
+ while (result.hasNext()) {
|
|
|
|
+ Record record = result.next();
|
|
|
|
+ String emDis = record.get("emDis").toString();
|
|
|
|
+ Map<String, String> stringStringMap = diseaseCondition.get(emDis.replace("\"", ""));
|
|
|
|
+ stringStringMap.put("急诊", "");
|
|
|
|
+ diseaseCondition.put(emDis.replace("\"", ""), stringStringMap);
|
|
|
|
+ }
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
} finally {
|
|
} finally {
|
|
@@ -767,12 +779,13 @@ public class Neo4jAPI {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 新结构,包含关联词
|
|
* 新结构,包含关联词
|
|
|
|
+ *
|
|
* @param keys
|
|
* @param keys
|
|
* @param webDiag
|
|
* @param webDiag
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public Map<String, Map<String,String>> getNewCondition(String[] keys,String webDiag) {
|
|
|
|
- Map<String, Map<String,String>> diseaseCondition = new LinkedHashMap<>();
|
|
|
|
|
|
+ public Map<String, Map<String, String>> getNewCondition(String[] keys, String webDiag) {
|
|
|
|
+ Map<String, Map<String, String>> diseaseCondition = new LinkedHashMap<>();
|
|
List<String> newList = new ArrayList<>();
|
|
List<String> newList = new ArrayList<>();
|
|
List<String> fildList = new ArrayList<>();
|
|
List<String> fildList = new ArrayList<>();
|
|
List<String> startList = new ArrayList<>();
|
|
List<String> startList = new ArrayList<>();
|
|
@@ -788,8 +801,9 @@ public class Neo4jAPI {
|
|
try {
|
|
try {
|
|
session = driver.session(AccessMode.WRITE);
|
|
session = driver.session(AccessMode.WRITE);
|
|
logger.info("session 为: " + session);
|
|
logger.info("session 为: " + session);
|
|
- //第一步查询是否有组合的词
|
|
|
|
|
|
+ //第一步查询输入的词所在number
|
|
query = propertiesUtil.getProperty("searchNumColl").replace("startList", fildList.toString());
|
|
query = propertiesUtil.getProperty("searchNumColl").replace("startList", fildList.toString());
|
|
|
|
+ System.out.println("查找词所在的number \n" + query);
|
|
result = session.run(query);
|
|
result = session.run(query);
|
|
while (result.hasNext()) {
|
|
while (result.hasNext()) {
|
|
Record next = result.next();
|
|
Record next = result.next();
|
|
@@ -797,22 +811,23 @@ public class Neo4jAPI {
|
|
startList.add(v);
|
|
startList.add(v);
|
|
}
|
|
}
|
|
newList.addAll(startList);
|
|
newList.addAll(startList);
|
|
|
|
+ int i = 1;
|
|
while (newList.size() > 0) {
|
|
while (newList.size() > 0) {
|
|
query = propertiesUtil.getProperty("searchNewCondition").replace("newList", newList.toString()).replace("fildList", startList.toString());
|
|
query = propertiesUtil.getProperty("searchNewCondition").replace("newList", newList.toString()).replace("fildList", startList.toString());
|
|
|
|
+ System.out.println("第" + i + "次查询conditon语句 \n" + query);
|
|
result = session.run(query);
|
|
result = session.run(query);
|
|
newList.clear();
|
|
newList.clear();
|
|
while (result.hasNext()) {
|
|
while (result.hasNext()) {
|
|
Record record = result.next();
|
|
Record record = result.next();
|
|
String condition = record.get("condition").toString();
|
|
String condition = record.get("condition").toString();
|
|
- String jundgement = record.get("jundgement").toString();
|
|
|
|
- if ("TRUE".equals(jundgement)) {
|
|
|
|
- newList.add(condition);
|
|
|
|
- startList.add(condition);
|
|
|
|
- }
|
|
|
|
|
|
+ newList.add(condition);
|
|
|
|
+ startList.add(condition);
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//第三步查找确诊
|
|
//第三步查找确诊
|
|
query = propertiesUtil.getProperty("searchDis").replace("startList", startList.toString());
|
|
query = propertiesUtil.getProperty("searchDis").replace("startList", startList.toString());
|
|
|
|
+ System.out.println("查询确诊的语句 \n" + query);
|
|
result = session.run(query);
|
|
result = session.run(query);
|
|
while (result.hasNext()) {
|
|
while (result.hasNext()) {
|
|
Record record = result.next();
|
|
Record record = result.next();
|
|
@@ -828,11 +843,11 @@ public class Neo4jAPI {
|
|
Map<String, String> dis_res = new HashMap<>();
|
|
Map<String, String> dis_res = new HashMap<>();
|
|
dis_res.put("确诊", "");
|
|
dis_res.put("确诊", "");
|
|
// diseaseCondition.put(qu, JSON.toJSONString(dis_res));
|
|
// diseaseCondition.put(qu, JSON.toJSONString(dis_res));
|
|
- diseaseCondition.put(qu,dis_res);
|
|
|
|
|
|
+ diseaseCondition.put(qu, dis_res);
|
|
logger.info("图谱推出的诊断为: " + qu);
|
|
logger.info("图谱推出的诊断为: " + qu);
|
|
}
|
|
}
|
|
Set<String> queSets = diseaseCondition.keySet();
|
|
Set<String> queSets = diseaseCondition.keySet();
|
|
- if(webDiag != null && webDiag.trim() != ""){
|
|
|
|
|
|
+ if (webDiag != null && webDiag.trim() != "") {
|
|
String[] webDiagSplits = webDiag.split(",");
|
|
String[] webDiagSplits = webDiag.split(",");
|
|
String mainDiag = webDiagSplits[0];
|
|
String mainDiag = webDiagSplits[0];
|
|
query = propertiesUtil.getProperty("searchDifferentialDiagnose").replace("mainDis", mainDiag);
|
|
query = propertiesUtil.getProperty("searchDifferentialDiagnose").replace("mainDis", mainDiag);
|
|
@@ -840,16 +855,16 @@ public class Neo4jAPI {
|
|
while (result.hasNext()) {
|
|
while (result.hasNext()) {
|
|
Record record = result.next();
|
|
Record record = result.next();
|
|
List<Object> coll = record.get("coll").asList();
|
|
List<Object> coll = record.get("coll").asList();
|
|
- if(coll != null && coll.size()>0){
|
|
|
|
- for (Object o:coll) {
|
|
|
|
- if(queSets.contains(o.toString().replace("\"",""))){
|
|
|
|
|
|
+ if (coll != null && coll.size() > 0) {
|
|
|
|
+ for (Object o : coll) {
|
|
|
|
+ if (queSets.contains(o.toString().replace("\"", ""))) {
|
|
Map<String, String> stringStringMap = diseaseCondition.get(o.toString().replace("\"", ""));
|
|
Map<String, String> stringStringMap = diseaseCondition.get(o.toString().replace("\"", ""));
|
|
- stringStringMap.put("鉴别诊断","");
|
|
|
|
- diseaseCondition.put(o.toString().replace("\"",""),stringStringMap);
|
|
|
|
- }else {
|
|
|
|
|
|
+ stringStringMap.put("鉴别诊断", "");
|
|
|
|
+ diseaseCondition.put(o.toString().replace("\"", ""), stringStringMap);
|
|
|
|
+ } else {
|
|
Map<String, String> diffMap = new HashMap<>();
|
|
Map<String, String> diffMap = new HashMap<>();
|
|
- diffMap.put("鉴别诊断","");
|
|
|
|
- diseaseCondition.put(o.toString().replace("\"",""),diffMap);
|
|
|
|
|
|
+ diffMap.put("鉴别诊断", "");
|
|
|
|
+ diseaseCondition.put(o.toString().replace("\"", ""), diffMap);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -862,6 +877,7 @@ public class Neo4jAPI {
|
|
return diseaseCondition;
|
|
return diseaseCondition;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 不良反应推送
|
|
* 不良反应推送
|
|
*/
|
|
*/
|
|
@@ -1408,9 +1424,9 @@ public class Neo4jAPI {
|
|
logger.info(diseaseName + "下面有" + stringList + "不良反应");
|
|
logger.info(diseaseName + "下面有" + stringList + "不良反应");
|
|
if (stringList != null && stringList.size() > 0) {
|
|
if (stringList != null && stringList.size() > 0) {
|
|
List<Indicators> indicatorsList1 = new ArrayList<>();
|
|
List<Indicators> indicatorsList1 = new ArrayList<>();
|
|
- for (String de:stringList) {
|
|
|
|
|
|
+ for (String de : stringList) {
|
|
Indicators indicators1 = getAdverse(ueSet, de);
|
|
Indicators indicators1 = getAdverse(ueSet, de);
|
|
- logger.info(disSet + "包含 "+de);
|
|
|
|
|
|
+ logger.info(disSet + "包含 " + de);
|
|
indicatorsList1.add(indicators1);
|
|
indicatorsList1.add(indicators1);
|
|
}
|
|
}
|
|
filnlly.setAdverseEvent(indicatorsList1);
|
|
filnlly.setAdverseEvent(indicatorsList1);
|
|
@@ -1720,7 +1736,7 @@ public class Neo4jAPI {
|
|
bigGrad.put("name", "糖尿病控制情况");
|
|
bigGrad.put("name", "糖尿病控制情况");
|
|
bigGrad.put("controltype", 0);
|
|
bigGrad.put("controltype", 0);
|
|
List<JSONObject> gradItemJ = new ArrayList<>();
|
|
List<JSONObject> gradItemJ = new ArrayList<>();
|
|
- String[] gradItem = { "常规管理", "强化管理" };
|
|
|
|
|
|
+ String[] gradItem = {"常规管理", "强化管理"};
|
|
for (String item : gradItem) {
|
|
for (String item : gradItem) {
|
|
JSONObject j = new JSONObject();
|
|
JSONObject j = new JSONObject();
|
|
j.put("detailName", item);
|
|
j.put("detailName", item);
|
|
@@ -2065,7 +2081,7 @@ public class Neo4jAPI {
|
|
* @param scaleName
|
|
* @param scaleName
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public Map<String, Object> getScale(String[] scaleItems,String scaleName) {
|
|
|
|
|
|
+ public Map<String, Object> getScale(String[] scaleItems, String scaleName) {
|
|
Session session = driver.session(AccessMode.READ);
|
|
Session session = driver.session(AccessMode.READ);
|
|
StatementResult Rset;
|
|
StatementResult Rset;
|
|
|
|
|
|
@@ -2076,7 +2092,7 @@ public class Neo4jAPI {
|
|
Rset = session.run(query);
|
|
Rset = session.run(query);
|
|
String type = Rset.next().get("m.type").toString().replace("\"", "");
|
|
String type = Rset.next().get("m.type").toString().replace("\"", "");
|
|
if (Integer.valueOf(type) == 1) {
|
|
if (Integer.valueOf(type) == 1) {
|
|
- scale = this.getScaleCalc2(scaleItems,scaleName);
|
|
|
|
|
|
+ scale = this.getScaleCalc2(scaleItems, scaleName);
|
|
} else {
|
|
} else {
|
|
scale = this.getScaleNoCalc(scaleName);
|
|
scale = this.getScaleNoCalc(scaleName);
|
|
}
|
|
}
|
|
@@ -2344,7 +2360,7 @@ public class Neo4jAPI {
|
|
scaleStructure.put("Calc", Integer.valueOf(calc));
|
|
scaleStructure.put("Calc", Integer.valueOf(calc));
|
|
}
|
|
}
|
|
|
|
|
|
- if (group.contains("-")){
|
|
|
|
|
|
+ if (group.contains("-")) {
|
|
group = group.split("-")[0];
|
|
group = group.split("-")[0];
|
|
}
|
|
}
|
|
if (group.contains("计算方法")) {
|
|
if (group.contains("计算方法")) {
|