|
@@ -312,7 +312,7 @@ public class NeoFacade {
|
|
|
lises = lisPushVo.getLises();
|
|
|
}
|
|
|
|
|
|
- pushDis = pushDisBySpecialLis(age, sex, pd, lises, presentDiags);
|
|
|
+ pushDis = pushDisBySpecialLis(depts,age, sex, pd, lises, presentDiags);
|
|
|
if (ListUtil.isNotEmpty(pushDis)) {
|
|
|
return pushDis;
|
|
|
}
|
|
@@ -324,7 +324,7 @@ public class NeoFacade {
|
|
|
pushDisByLis(allDis, lises);
|
|
|
//辅检推出的疾病
|
|
|
pushDisByPacs(pushVO, allDis);
|
|
|
- filterAndSort(pushDis, allDis, sex, age, pd);
|
|
|
+ filterAndSort(pushDis, allDis, sex, age, pd,depts);
|
|
|
pushDis = addDiagFromPresent(pushDis, presentDiags);
|
|
|
|
|
|
return pushDis;
|
|
@@ -339,14 +339,14 @@ public class NeoFacade {
|
|
|
* @param lises
|
|
|
* @return
|
|
|
*/
|
|
|
- private List<String> pushDisBySpecialLis(Double age, Integer sex, PD pd, List<Lis> lises, List<String> presentDiags) {
|
|
|
+ private List<String> pushDisBySpecialLis(List<String> depts, Double age, Integer sex, PD pd, List<Lis> lises, List<String> presentDiags) {
|
|
|
List<String> neoPushDTOS = new ArrayList<>();
|
|
|
if (ListUtil.isNotEmpty(lises)) {
|
|
|
List<String> lis_dis = lises.parallelStream()
|
|
|
.map(x -> nodeRepository.getDisByLis_Special(x.getName(), x.getUniqueName() + x.getResult()))
|
|
|
.flatMap(List::stream).collect(Collectors.toList());
|
|
|
if (ListUtil.isNotEmpty(lis_dis)) {
|
|
|
- filterAndSort(neoPushDTOS, lis_dis, sex, age, pd);
|
|
|
+ filterAndSort(neoPushDTOS, lis_dis, sex, age, pd, depts);
|
|
|
neoPushDTOS = addDiagFromPresent(neoPushDTOS, presentDiags);
|
|
|
}
|
|
|
}
|
|
@@ -448,14 +448,15 @@ public class NeoFacade {
|
|
|
allDis.addAll(allDis_bySymptom);
|
|
|
}
|
|
|
|
|
|
- private void filterAndSort(List<String> dises, List<String> allDis, int gender_code, double age, PD pd) {
|
|
|
+ private 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<>();
|
|
|
if (ListUtil.isNotEmpty(allDis)) {
|
|
|
// diseases = redisUtil.get(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))
|
|
|
// allDis = diseases.stream().filter(x -> NeoUtil.matchBasic(x, gender_code, age))
|
|
|
.map(x -> x.get("name")).collect(Collectors.toList());
|
|
|
diseases.forEach(x -> dis_fbl.put(x.get("name"), Double.parseDouble(x.get("fbl"))));
|