|
@@ -164,6 +164,7 @@ public class NeoFacade {
|
|
desc.put("age", v.getAge());
|
|
desc.put("age", v.getAge());
|
|
desc.put("fbl", v.getFbl());
|
|
desc.put("fbl", v.getFbl());
|
|
desc.put("dept", v.getDept());
|
|
desc.put("dept", v.getDept());
|
|
|
|
+ desc.put("clafy", v.getClafy());
|
|
return desc;
|
|
return desc;
|
|
},
|
|
},
|
|
(v1, v2) -> (v2)
|
|
(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) {
|
|
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;
|
|
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)) {
|
|
if (ListUtil.isNotEmpty(allDis)) {
|
|
diseases = redisUtil.geth(allDis);
|
|
diseases = redisUtil.geth(allDis);
|
|
allDis = diseases.stream().filter(x -> NeoUtil.matchBasic(x, gender_code, age) && NeoUtil.matchPds(x.get("name"), pd)
|
|
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());
|
|
&& 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"))));
|
|
// 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);
|
|
Map<Long, List<String>> numberDiseasesMap = disCountSort(allDis);
|
|
- if (MapUtils.isNotEmpty(numberDiseasesMap)) {
|
|
|
|
|
|
+ /*if (MapUtils.isNotEmpty(numberDiseasesMap)) {
|
|
for (Map.Entry<Long, List<String>> ds : numberDiseasesMap.entrySet()) {
|
|
for (Map.Entry<Long, List<String>> ds : numberDiseasesMap.entrySet()) {
|
|
dises.addAll(ds.getValue());
|
|
dises.addAll(ds.getValue());
|
|
}
|
|
}
|
|
- }
|
|
|
|
- /*//根据发病率排序
|
|
|
|
|
|
+ }*/
|
|
|
|
+ //根据发病率排序
|
|
// Map<String, Double> disdistributionCache = self.getDisdistributionCache();
|
|
// Map<String, Double> disdistributionCache = self.getDisdistributionCache();
|
|
Map<Long, Map<String, Double>> disPack = new LinkedHashMap<>();
|
|
Map<Long, Map<String, Double>> disPack = new LinkedHashMap<>();
|
|
numberDiseasesMap.forEach((x, y) -> {
|
|
numberDiseasesMap.forEach((x, y) -> {
|
|
Map<String, Double> collect = y.stream()
|
|
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.put(x, collect);
|
|
});
|
|
});
|
|
disPack.forEach((x, y) -> {
|
|
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()
|
|
Map<String, Double> collect = y.entrySet().stream()
|
|
.sorted(Map.Entry.comparingByValue())
|
|
.sorted(Map.Entry.comparingByValue())
|
|
@@ -783,7 +781,7 @@ public class NeoFacade {
|
|
collect.forEach((k, n) -> {
|
|
collect.forEach((k, n) -> {
|
|
dises.add(k);
|
|
dises.add(k);
|
|
});
|
|
});
|
|
- });*/
|
|
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
|
|
public List<String> getDisBySymptom(List<String> symptoms) {
|
|
public List<String> getDisBySymptom(List<String> symptoms) {
|