kongwz 4 роки тому
батько
коміт
192dab1ace

+ 1 - 0
src/main/java/com/diagbot/entity/DiseaseProperty.java

@@ -18,4 +18,5 @@ public class DiseaseProperty {
     private String age;
     private String fbl;
     private String dept;
+    private String clafy;
 }

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

@@ -164,6 +164,7 @@ public class NeoFacade {
                         desc.put("age", v.getAge());
                         desc.put("fbl", v.getFbl());
                         desc.put("dept", v.getDept());
+                        desc.put("clafy", v.getClafy());
                         return desc;
                     },
                     (v1, v2) -> (v2)
@@ -739,42 +740,39 @@ public class NeoFacade {
     public void filterAndSort(List<String> dises, List<String> allDis, int gender_code, double age, PD pd, List<String> depts) {
         //推送出的所有疾病进行性别和年龄的过滤
         List<Map<String, String>> diseases = null;
-//        Map<String, Double> dis_fbl = new HashMap<>();
-        Map<String, Integer> dis_symptom_num = new HashMap<>();
+        Map<String, Double> dis_fbl = new HashMap<>();
+
         if (ListUtil.isNotEmpty(allDis)) {
             diseases = redisUtil.geth(allDis);
             allDis = diseases.stream().filter(x -> NeoUtil.matchBasic(x, gender_code, age) && NeoUtil.matchPds(x.get("name"), pd)
                     && NeoUtil.matchDept(x, depts)).map(x -> x.get("name")).collect(Collectors.toList());
 //            diseases.forEach(x -> dis_fbl.put(x.get("name"), Double.parseDouble(x.get("fbl"))));
-            /*List<Map<String, String>> symptomNumOfDis = redisUtil.getSymptomNumOfDis(allDis);
-            if(ListUtil.isNotEmpty(symptomNumOfDis)){
-                symptomNumOfDis.forEach(x -> {
-                    String name = x.get("name");
-                    Integer num = Integer.parseInt(x.get("num"));
-                    dis_symptom_num.put(name,num);
-                });
-            }*/
+            diseases.forEach(x ->{
+                String name = x.get("name");
+                double clafy = Double.parseDouble(x.get("clafy"));
+                dis_fbl.put(name,clafy);
+            });
         }
 
         Map<Long, List<String>> numberDiseasesMap = disCountSort(allDis);
-        if (MapUtils.isNotEmpty(numberDiseasesMap)) {
+        /*if (MapUtils.isNotEmpty(numberDiseasesMap)) {
             for (Map.Entry<Long, List<String>> ds : numberDiseasesMap.entrySet()) {
                 dises.addAll(ds.getValue());
             }
-        }
-        /*//根据发病率排序
+        }*/
+        //根据发病率排序
         //        Map<String, Double> disdistributionCache = self.getDisdistributionCache();
         Map<Long, Map<String, Double>> disPack = new LinkedHashMap<>();
         numberDiseasesMap.forEach((x, y) -> {
             Map<String, Double> collect = y.stream()
-                    .collect(Collectors.toMap(v -> v, v -> Double.valueOf(dis_symptom_num.get(v)), (e1, e2) -> e2));
+                    .collect(Collectors.toMap(v -> v, v -> dis_fbl.get(v), (e1, e2) -> e2));
             disPack.put(x, collect);
         });
         disPack.forEach((x, y) -> {
             //倒序排序
-            *//*Map<String, Double> collect = y.entrySet().stream()
-                    .sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
-                    .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2, LinkedHashMap::new));*//*
+//            Map<String, Double> collect = y.entrySet().stream()
+//                    .sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
+//                    .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2, LinkedHashMap::new));
             //正序排序
             Map<String, Double> collect = y.entrySet().stream()
                     .sorted(Map.Entry.comparingByValue())
@@ -783,7 +781,7 @@ public class NeoFacade {
             collect.forEach((k, n) -> {
                 dises.add(k);
             });
-        });*/
+        });
     }
 
     public List<String> getDisBySymptom(List<String> symptoms) {

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

@@ -118,7 +118,11 @@ public interface BaseNodeRepository extends Neo4jRepository<BaseNode, Long> {
             "case\n" +
             "when d.dept is not null then d.dept\n" +
             "else '医学全科'\n" +
-            "end as dept"
+            "end as dept,\n" +
+            "case\n" +
+            "when d.分类 is not null then toString(d.分类)\n" +
+            "else '2'\n" +
+            "end as clafy"
     )
     List<DiseaseProperty> getDiseaseProperty();