Quellcode durchsuchen

切分诊断时考虑更多的情况
String[] diseaseArray = disease.split(",|,|、|;|:|;");

kongwz vor 6 Jahren
Ursprung
Commit
ad20b509b5

+ 2 - 1
graph/src/main/java/org/diagbot/graph/Diagnose/DiagnoseMain.java

@@ -17,7 +17,8 @@ public class DiagnoseMain {
 //        Map<String, String> diagnose = new DiagnoseProcess().getDiagnose(
 //                "上腹痛","墨菲斯征阳性","白细胞增多","不洁饮食","胆囊内有强回声团");
         Map<String, String> diagnose = new DiagnoseProcess().getDiagnose(
-                "咽痛","鼻塞","乏力","淋巴结肿大","扁桃体肿大","上腹痛","墨菲斯征阳性","白细胞增多","不洁饮食","胆囊内有强回声团","近端指间关节炎","足关节炎","对称性关节肿胀","晨僵≥30分钟","类风湿因子阳性","抗CCP抗体阳性");
+                "咽痛","鼻塞","乏力","淋巴结肿大","扁桃体肿大","上腹痛","墨菲斯征阳性","白细胞增多","不洁饮食","胆囊内有强回声团","近端指间关节炎","足关节炎","对称性关节肿胀",
+                "晨僵≥30分钟","类风湿因子阳性","抗CCP抗体阳性","胸腔积液","呼吸音减弱","发热","胸痛","呼吸困难","咳嗽");
         for (Map.Entry<String,String> disease:diagnose.entrySet()) {
             System.out.println(disease.getKey()+"\t"+disease.getValue());
         }

+ 19 - 9
graph/src/main/java/org/diagbot/graph/Diagnose/DiagnoseProcess.java

@@ -21,18 +21,28 @@ public class DiagnoseProcess {
         //获取driver和session
         Driver driver = DriverManager.newDrive("192.168.2.232","neo4j","root");
         Session session = driver.session(AccessMode.READ);
-        //第一步查找近义词.化验或辅检项目
-        String searchJinyici = propertiesUtil.getProperty("searchJinyici");
-        String fildList = searchJinyici.replace("fildList", startList.toString());
-        query = fildList;
+        //第一步查找近义词
+//        String searchJinyici = propertiesUtil.getProperty("searchJinyici");
+//        String fildList = searchJinyici.replace("fildList", startList.toString());
+        query = propertiesUtil.getProperty("serchCollect").replace("fildList",startList.toString());;
 //        System.out.println("查找近义词语句:"+query+"\n");
         run = session.run(query);
         while (run.hasNext()){
-            Record next = run.next();
-            String c = next.get("zi").toString();
-            String d = next.get("fu").toString();
-            startList.remove(c);
-            startList.add(d);
+            Record record = run.next();
+            String fild = record.get("fild").toString();
+            List<Object> typeCollect = record.get("typeCollect").asList();
+            //如果不包含诊断依据就找它的同义词,否则就要这个词
+            if("近义词".equals(typeCollect.get(0)) && typeCollect.size() ==1){
+                query = "match(l)-[r:近义词]->(h) where l.name="+fild+" return h.name as js";
+                StatementResult jinyiResult = session.run(query);
+                while (jinyiResult.hasNext()){
+                    Record next = jinyiResult.next();
+                    String js = next.get("js").toString();
+                    startList.remove(fild);
+                    startList.add(js);
+                }
+
+            }
         }
         newList.addAll(startList);
         int i =0;

+ 1 - 1
graph/src/main/java/org/diagbot/graph/jdbc/Neo4jAPI.java

@@ -974,7 +974,7 @@ public class Neo4jAPI {
         nf.setMinimumFractionDigits(0);//设置该百分比数字,保留2位小数;
         nf.setRoundingMode(RoundingMode.HALF_UP); //设置满5向上进位,即四舍五入;
         Map<String, String> resultMap = new HashMap<>();
-        String[] diseaseArray = disease.split(",|,|、");
+        String[] diseaseArray = disease.split(",|,|、|;|:|;");
         List<String> diseaseList = new ArrayList<>();//诊断数组
         for (int i = 0; i < diseaseArray.length; i++) {
             diseaseList.add(diseaseArray[i]);