ソースを参照

鉴别诊断整合dis

kongwz 6 年 前
コミット
036e717cbc

+ 14 - 3
graph-web/src/main/java/org/diagbot/graphWeb/work/GraphCalculate.java

@@ -48,14 +48,25 @@ public class GraphCalculate {
         String webDiag = searchData.getDiag();
         logger.info("页面诊断为 :"+webDiag);
         //计算诊断
-        Map<String, String> condition = neo4jAPI.getCondition((String[]) inputList.toArray(new String[inputList.size()]),webDiag );
+        Map<String, Map<String,String>> condition = neo4jAPI.getCondition((String[]) inputList.toArray(new String[inputList.size()]),webDiag );
         List<FeatureRate> featureRates = new ArrayList<>();
-        for (Map.Entry<String, String> d : condition.entrySet()) {
+        for (Map.Entry<String, Map<String,String>> d : condition.entrySet()) {
             if (!"低血糖反应".equals(d.getKey()) && !"胃肠道不良反应".equals(d.getKey())) {
                 FeatureRate featureRate = new FeatureRate();
+                String s="";
                 featureRate.setFeatureName(d.getKey());
                 featureRate.setExtraProperty("");
-                featureRate.setDesc(d.getValue());
+                Map<String, String> value = d.getValue();
+                Set<String> keys = value.keySet();
+                Object[] objects = keys.toArray();
+                for (int i=0;i<objects.length;i++) {
+                    if(i != objects.length-1){
+                        s = s + objects[i].toString()+",";
+                    }else {
+                        s += objects[i].toString();
+                    }
+                }
+                featureRate.setDesc(s);
                 featureRate.setRate("neo4j");
                 featureRates.add(featureRate);
             }

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

@@ -646,8 +646,8 @@ public class Neo4jAPI {
      * @param keys
      * @return
      */
-    public Map<String, String> getCondition(String[] keys,String webDiag) {
-        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<>();
         ArrayList<String> fildList = new ArrayList<>();
         //输出确诊集合
@@ -725,11 +725,12 @@ public class Neo4jAPI {
             for (String qu : quezhen) {
                 Map<String, String> dis_res = new HashMap<>();
                 dis_res.put("确诊", "");
-                diseaseCondition.put(qu, JSON.toJSONString(dis_res));
-//                diseaseCondition.put(qu,"确诊");
+//                diseaseCondition.put(qu, JSON.toJSONString(dis_res));
+                diseaseCondition.put(qu,dis_res);
                 logger.info("图谱推出的诊断为: " + qu);
             }
-          /*  if(webDiag != null && webDiag.trim() != ""){
+            Set<String> queSets = diseaseCondition.keySet();
+            if(webDiag != null && webDiag.trim() != ""){
                 String[] webDiagSplits = webDiag.split(",");
                 String mainDiag = webDiagSplits[0];
                 query = propertiesUtil.getProperty("searchDifferentialDiagnose").replace("mainDis", mainDiag);
@@ -739,11 +740,19 @@ public class Neo4jAPI {
                     List<Object> coll = record.get("coll").asList();
                     if(coll != null && coll.size()>0){
                         for (Object o:coll) {
-                            diseaseCondition.put(o.toString().replace("\"",""),"鉴别诊断");
+                            if(queSets.contains(o.toString().replace("\"",""))){
+                                Map<String, String> stringStringMap = diseaseCondition.get(o.toString().replace("\"", ""));
+                                stringStringMap.put("鉴别诊断","");
+                                diseaseCondition.put(o.toString().replace("\"",""),stringStringMap);
+                            }else {
+                                Map<String, String> diffMap = new HashMap<>();
+                                diffMap.put("鉴别诊断","");
+                                diseaseCondition.put(o.toString().replace("\"",""),diffMap);
+                            }
                         }
                     }
                 }
-            }*/
+            }
             //查找指标推送
             Set<String> indSet = new HashSet<>();
             query = propertiesUtil.getProperty("searchIndication").replace("fildList", fildList.toString());