|
@@ -18,6 +18,7 @@ import com.diagbot.util.RedisUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
|
import com.diagbot.vo.*;
|
|
|
import com.diagbot.vo.neoPushEntity.ChiefPushVo;
|
|
|
+import com.diagbot.vo.neoPushEntity.LisPushVo;
|
|
|
import com.diagbot.vo.neoPushEntity.PacsPushVo;
|
|
|
import com.diagbot.vo.neoPushEntity.PresentPushVo;
|
|
|
import com.google.common.collect.Lists;
|
|
@@ -245,6 +246,19 @@ public class NeoFacade {
|
|
|
List<String> allDis_bySymptom = getDisBySymptom(symptoms,age,sex);
|
|
|
allDis.addAll(allDis_bySymptom);
|
|
|
//化验推出的疾病
|
|
|
+ LisPushVo lisPushVo = pushVO.getLisPushVo();
|
|
|
+ if(lisPushVo != null){
|
|
|
+ List<Lis> lises = lisPushVo.getLises();
|
|
|
+ if(ListUtil.isNotEmpty(lises)){
|
|
|
+ List<YiBaoDiseaseName> collect = lises.parallelStream()
|
|
|
+ .map(x -> nodeRepository.getDisByLis(x.getUniqueName(), x.getDetailName())).collect(Collectors.toList());
|
|
|
+ List<String> lis_dis = lises.parallelStream()
|
|
|
+ .map(x -> nodeRepository.getDisByLis(x.getUniqueName(), x.getDetailName()))
|
|
|
+ .filter(z->z!=null && NeoUtil.matchBasic(z,sex,age)).map(z->z.getName())
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ allDis.addAll(lis_dis);
|
|
|
+ }
|
|
|
+ }
|
|
|
//辅检推出的疾病
|
|
|
PacsPushVo pacsPushVo = pushVO.getPacsPushVo();
|
|
|
if(pacsPushVo !=null){
|
|
@@ -260,7 +274,7 @@ public class NeoFacade {
|
|
|
Map<Long,List<String>> numberDiseasesMap = disCountSort(allDis);
|
|
|
//根据发病率排序
|
|
|
Map<String, Double> disdistributionCache = self.getDisdistributionCache();
|
|
|
- numberDiseasesMap.forEach((x,y)->{
|
|
|
+ /*numberDiseasesMap.forEach((x,y)->{
|
|
|
y.forEach(z ->{
|
|
|
if(disdistributionCache.containsKey(z)){
|
|
|
disdistributionCache.put(z,disdistributionCache.get(z));
|
|
@@ -268,13 +282,18 @@ public class NeoFacade {
|
|
|
disdistributionCache.put(z,0.0);
|
|
|
}
|
|
|
});
|
|
|
- });
|
|
|
+ });*/
|
|
|
Map<Long,Map<String,Double>> disPack = new LinkedHashMap<>();
|
|
|
numberDiseasesMap.forEach((x,y)->{
|
|
|
+ Map<String, Double> collect = y.stream()
|
|
|
+ .collect(Collectors.toMap(v -> v, v -> disdistributionCache.get(v) != null?disdistributionCache.get(v):0.0, (e1, e2) -> e2));
|
|
|
+ disPack.put(x,collect);
|
|
|
+ });
|
|
|
+ /*numberDiseasesMap.forEach((x,y)->{
|
|
|
Map<String,Double> dis_dbt = new HashMap<>();
|
|
|
y.forEach(dis -> dis_dbt.put(dis,disdistributionCache.get(dis)));
|
|
|
disPack.put(x,dis_dbt);
|
|
|
- });
|
|
|
+ });*/
|
|
|
disPack.forEach((x,y)->{
|
|
|
Map<String, Double> collect = y.entrySet().stream()
|
|
|
.sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
|
|
@@ -642,11 +661,8 @@ public class NeoFacade {
|
|
|
*/
|
|
|
public NeoPushDTO getDiagInfo(NeoPushVO neoPushVO) {
|
|
|
NeoPushDTO pushDTO = new NeoPushDTO();
|
|
|
-
|
|
|
YiBaoDiseaseNode icdDiseaseNode = new YiBaoDiseaseNode();
|
|
|
String term;
|
|
|
-
|
|
|
-// for (Diag diag : neoPushVO.getDiagVo().getDiags()) {
|
|
|
term = neoPushVO.getDiagVo().getDiags().get(0).getName();
|
|
|
List<YiBaoDiseaseName> yiBaoName = yiBaoDiseaseRepository.findByNameIs(term);
|
|
|
YiBaoDiseaseName icdDisease = null;
|
|
@@ -655,12 +671,7 @@ public class NeoFacade {
|
|
|
}
|
|
|
if (icdDisease != null) {
|
|
|
pushDTO = icdDiseaseNode.YiBaoDiseasetoDiseaseDTO(icdDisease, neoPushVO);
|
|
|
-
|
|
|
- /*if (null != pushDTO) {
|
|
|
- neoPushDTOs.add(pushDTO);
|
|
|
- }*/
|
|
|
}
|
|
|
-// }
|
|
|
|
|
|
return pushDTO;
|
|
|
}
|