|
@@ -665,6 +665,7 @@ public class Neo4jAPI {
|
|
|
logger.info("session 为: " + session);
|
|
|
//第一步查询是否有组合的词
|
|
|
query = propertiesUtil.getProperty("searchCollection1").replace("fildList", fildList.toString());
|
|
|
+ logger.info("开始查询是否有组合的词,查询语句为: \n"+query);
|
|
|
// System.out.println("查找是否有组合词语句:\n"+query);
|
|
|
result = session.run(query);
|
|
|
while (result.hasNext()) {
|
|
@@ -676,6 +677,7 @@ public class Neo4jAPI {
|
|
|
}
|
|
|
}
|
|
|
query = propertiesUtil.getProperty("serchCollect").replace("fildList", fildList.toString());
|
|
|
+ logger.info("开始查询近义词,查询语句为:\n"+query);
|
|
|
result = session.run(query);
|
|
|
while (result.hasNext()) {
|
|
|
Record record = result.next();
|
|
@@ -684,6 +686,7 @@ public class Neo4jAPI {
|
|
|
//如果不包含诊断依据就找它的同义词,否则就要这个词
|
|
|
if ("近义词".equals(typeCollect.get(0)) && typeCollect.size() == 1) {
|
|
|
query = "match(l)-[r:近义词]->(h) where l.name=" + fild + " return h.name as js";
|
|
|
+ logger.info("如果有近义词就替换,查询语句为:\n"+query);
|
|
|
StatementResult jinyiResult = session.run(query);
|
|
|
while (jinyiResult.hasNext()) {
|
|
|
Record next = jinyiResult.next();
|
|
@@ -694,9 +697,10 @@ public class Neo4jAPI {
|
|
|
}
|
|
|
}
|
|
|
newList.addAll(fildList);
|
|
|
- int i = 0;
|
|
|
+ int i = 1;
|
|
|
while (newList.size() > 0) {
|
|
|
query = propertiesUtil.getProperty("searchCondition1").replace("newList", newList.toString()).replace("fildList", fildList.toString());
|
|
|
+ logger.info("第"+i+"次查询符合的诊断依据为:\n"+query);
|
|
|
// System.out.println("第"+i+"次的查询语句为: \n"+query);
|
|
|
i++;
|
|
|
result = session.run(query);
|
|
@@ -710,6 +714,7 @@ public class Neo4jAPI {
|
|
|
}
|
|
|
//第三步查找确诊
|
|
|
query = propertiesUtil.getProperty("searchQuezhen").replace("fildList", fildList.toString());
|
|
|
+ logger.info("开始查找确诊疑诊,语句为:\n"+query);
|
|
|
// System.out.println("查找确诊的语句为: \n"+query);
|
|
|
result = session.run(query);
|
|
|
while (result.hasNext()) {
|
|
@@ -733,6 +738,7 @@ public class Neo4jAPI {
|
|
|
String[] webDiagSplits = webDiag.split(",");
|
|
|
String mainDiag = webDiagSplits[0];
|
|
|
query = propertiesUtil.getProperty("searchDifferentialDiagnose").replace("mainDis", mainDiag);
|
|
|
+ logger.info("根据界面诊断查询鉴别诊断,界面诊断为:"+mainDiag+"查询语句为:\n"+query);
|
|
|
result = session.run(query);
|
|
|
while (result.hasNext()) {
|
|
|
Record record = result.next();
|
|
@@ -761,6 +767,7 @@ public class Neo4jAPI {
|
|
|
}
|
|
|
}
|
|
|
query =propertiesUtil.getProperty("searchEmergency").replace("disList",newDis.toString());
|
|
|
+ logger.info("判断图谱推出的诊断中是否有急诊,判断语句为:\n"+query);
|
|
|
result = session.run(query);
|
|
|
while (result.hasNext()) {
|
|
|
Record record = result.next();
|
|
@@ -897,6 +904,7 @@ public class Neo4jAPI {
|
|
|
session = driver.session(AccessMode.WRITE);
|
|
|
logger.info("session 为: " + session);
|
|
|
query = propertiesUtil.getProperty("serchCollect").replace("fildList", fildList.toString());
|
|
|
+ logger.info("查找是否有组合词,查找语句为:\n"+query);
|
|
|
result = session.run(query);
|
|
|
while (result.hasNext()) {
|
|
|
Record record = result.next();
|
|
@@ -905,6 +913,7 @@ public class Neo4jAPI {
|
|
|
//如果不包含诊断依据就找它的同义词,否则就要这个词
|
|
|
if ("近义词".equals(typeCollect.get(0)) && typeCollect.size() == 1) {
|
|
|
query = "match(l)-[r:近义词]->(h) where l.name=" + fild + " return h.name as js";
|
|
|
+ logger.info("如果有近义词就替换,处理语句为:\n"+query);
|
|
|
StatementResult jinyiResult = session.run(query);
|
|
|
while (jinyiResult.hasNext()) {
|
|
|
Record next = jinyiResult.next();
|
|
@@ -915,10 +924,11 @@ public class Neo4jAPI {
|
|
|
}
|
|
|
}
|
|
|
newList.addAll(fildList);
|
|
|
- int i = 0;
|
|
|
+ int i = 1;
|
|
|
while (newList.size() > 0) {
|
|
|
i++;
|
|
|
query = propertiesUtil.getProperty("searchCondition").replace("newList", newList.toString()).replace("fildList", fildList.toString());
|
|
|
+ logger.info("第"+i+"次查询符合诊断依据的语句:\n"+query);
|
|
|
result = session.run(query);
|
|
|
newList.clear();
|
|
|
while (result.hasNext()) {
|
|
@@ -933,6 +943,7 @@ public class Neo4jAPI {
|
|
|
}
|
|
|
}
|
|
|
query = propertiesUtil.getProperty("searchUe").replace("fildList", fildList.toString());
|
|
|
+ logger.info("查找界面输入是否有不良反应,处理语句为:\n"+query);
|
|
|
result = session.run(query);
|
|
|
while (result.hasNext()) {
|
|
|
Record record = result.next();
|
|
@@ -1195,6 +1206,7 @@ public class Neo4jAPI {
|
|
|
String query = "";
|
|
|
query = "match(d:Disease)-[r:不良反应]->(u:UntowardEffect) where d.name in " + webDiagList + " \n" +
|
|
|
"return d.name as dis,collect(u.name) as ueCollect";
|
|
|
+ logger.info("根据页面诊断查询每个诊断所对应的不良反应集合,查询语句为:\n"+query);
|
|
|
result = tx.run(query);
|
|
|
while (result.hasNext()) {
|
|
|
Record next = result.next();
|
|
@@ -1263,12 +1275,8 @@ public class Neo4jAPI {
|
|
|
for (Map.Entry<String, ArrayList> df : diseFilds.entrySet()) {
|
|
|
String diseaseName = df.getKey();//疾病
|
|
|
ArrayList value = df.getValue();//其他条件
|
|
|
- StringBuffer s1 = new StringBuffer();
|
|
|
- s1.append("match (d:Disease{name:'" + diseaseName + "'})-[r0:推荐]->(m:Drugs)-[:包含]->(n:Medicine),(d)-[r1:推荐]->(n)");
|
|
|
- s1.append("\n");
|
|
|
- s1.append("where r0.p<6").append("\n");
|
|
|
- s1.append("return m.name as 类, r0.p as sort, n.name as 药物, r1.rate as a order by sort , a desc");
|
|
|
- query = s1.toString();
|
|
|
+ query = propertiesUtil.getProperty("searchDrugsMedic").replace("diseaseName","\'"+diseaseName+"\'");
|
|
|
+ logger.info("查找诊断对应的类和药物,包括类和药的排序,查找语句为:\n"+query);
|
|
|
result = tx.run(query);
|
|
|
Map<String, LinkedHashMap<String, String>> contentMap = new LinkedHashMap<>();
|
|
|
while (result.hasNext()) {
|
|
@@ -1287,8 +1295,8 @@ public class Neo4jAPI {
|
|
|
}
|
|
|
//药类型的大小类拼接
|
|
|
Map<String, String> shortLargeMap = new HashMap<>();
|
|
|
- // query="match (n:Disease{name:'"+diseaseName+"'})-[:推荐]->(d:Drugs)<-[:包含]-(m) return d.name as short,m.name as large";
|
|
|
- query = "match (n:Disease{name:'" + diseaseName + "'})-[r0:推荐]->(m:Drugs)-[:包含]->(k:Drugs) return k.name as short,m.name as large";
|
|
|
+ propertiesUtil.getProperty("searchBigSubDrugs").replace("diseaseName","\'"+diseaseName+"\'");
|
|
|
+ logger.info("查找诊断对应的大小类,进行拼接,查找语句为:\n"+query);
|
|
|
result = tx.run(query);
|
|
|
while (result.hasNext()) {
|
|
|
Record record = result.next();
|