Bläddra i källkod

疾病对应发病率加入缓存

kongwz 4 år sedan
förälder
incheckning
328ca33682

+ 2 - 2
src/main/java/com/diagbot/config/CacheDeleteInit.java

@@ -39,7 +39,7 @@ public class CacheDeleteInit implements CommandLineRunner {
         neoFacade.getDisSexCache();
         log.info("CDSS-CORE服务启动加载图谱疾病对应性别信息缓存成功!");
 
-        neoFacade.getDisAgeCache();
-        log.info("CDSS-CORE服务启动加载图谱疾病对应年龄缓存成功!");
+        neoFacade.getDisdistributionCache();
+        log.info("CDSS-CORE服务启动加载图谱疾病对应发病率缓存成功!");
     }
 }

+ 18 - 1
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -153,6 +153,20 @@ public class NeoFacade {
         Map<String, String> disAgeClass = nodeRepository.getDisAgeClass();
         return disAgeClass;
     }
+    /**
+     * 返回图谱中所有疾病和发病率信息
+     *
+     * @return
+     */
+    @Cacheable(value = "cache", key = "'disdistributionCache'")
+    public Map<String,Float> getDisdistributionCache() {
+        Map<String,Float> disdistribution = new HashMap<>();
+        Map<String, String> disdistributionClass = nodeRepository.getDisdistributionClass();
+        disdistributionClass.forEach((x,y) ->{
+            disdistribution.put(x,Float.parseFloat(y));
+        });
+        return disdistribution;
+    }
     /**
      * 图谱反推的数据
      *
@@ -233,6 +247,10 @@ public class NeoFacade {
 
         Map<Long,List<String>> numberDiseasesMap = disCountSort(allDis);
         //根据发病率排序
+        Map<String, Float> disdistributionCache = getDisdistributionCache();
+        numberDiseasesMap.forEach((x,y) ->{
+
+        });
 
 //      String dis_first = dis_count.entrySet().stream().map(x -> x.getKey()).collect(Collectors.toList()).get(0);
 
@@ -246,7 +264,6 @@ public class NeoFacade {
         long start = System.currentTimeMillis();
         List<String> allDis_bySymptom = pushDis(symptomNameRepository, symptoms);
         long end = System.currentTimeMillis();
-        System.out.println("并行消耗:"+(end - start) / 1000.0 + "秒");
         return allDis_bySymptom;
         }
 

+ 5 - 2
src/main/java/com/diagbot/repository/BaseNodeRepository.java

@@ -22,9 +22,12 @@ public interface BaseNodeRepository extends Neo4jRepository<BaseNode, Long> {
     @Query("match(s:症状) return distinct s.name")
     List<String> getSymptomClass();
 
-    @Query("match(d:疾病)-[r:疾病相关性别]->(h) return d.name,h.name")
+    @Query("match(d:医保疾病名称)-[r:医保疾病名称相关性别]->(h) return d.name,h.name")
     Map<String,String> getDisSexClass();
 
-    @Query("match(d:疾病)-[r:疾病相关年龄]->(h) return d.name,h.name")
+    @Query("match(d:医保疾病名称)-[r:医保疾病名称相关年龄]->(h) return d.name,h.name")
     Map<String,String> getDisAgeClass();
+
+    @Query("match(d:医保疾病名称)-[r:医保疾病名称相关发病率]->(h) return d.name,h.name")
+    Map<String,String> getDisdistributionClass();
 }