Browse Source

下的初步诊断放在推送出来的疾病前面

kongwz 4 years ago
parent
commit
489ad66c5a
1 changed files with 27 additions and 3 deletions
  1. 27 3
      src/main/java/com/diagbot/process/PushProcess.java

+ 27 - 3
src/main/java/com/diagbot/process/PushProcess.java

@@ -34,13 +34,37 @@ public class PushProcess {
     public PushDTO process(PushVO pushVo, Map<String, Map<String, String>> standConvertMap, WordCrfDTO wordCrfDTO) {
         int length = pushVo.getLength();
         PushDTO pushDTO = new PushDTO();
-
         List<String> ruleTypeList = Arrays.asList(pushVo.getFeatureType().split(","));
         Map<String, List<String>> typeWords = typeWords(standConvertMap);
         //生成push入参,供图谱调用
         NeoPushVO pushVO = commonFacade.generatePushInput(wordCrfDTO);
         Map<String, List<PushBaseDTO>> dis = new HashMap<>();
-        //如果下的诊断有数据就反推
+        List<String> push = neoFacade.getPush(pushVO);
+        if (pushVO.getDiagVo() != null && ListUtil.isNotEmpty(pushVO.getDiagVo().getDiags())) {
+            List<String> collect = pushVO.getDiagVo().getDiags().stream().map(x -> x.getName()).collect(Collectors.toList());
+            push.removeAll(collect);
+            collect.addAll(push);
+            push = collect;
+        }
+        if (ListUtil.isNotEmpty(push)) {
+            //先把所有疾病推出来
+            if (ruleTypeList.contains("7")) {
+                List<PushBaseDTO> diseeases =  push.stream().map(x -> {
+                    PushBaseDTO pushBaseDTO = new PushBaseDTO();
+                    pushBaseDTO.setName(x);
+                    return pushBaseDTO;
+                }).collect(Collectors.toList());
+                diseeases = diseeases.subList(0, diseeases.size() >= length ? length : diseeases.size());
+                dis.put(DiseaseTypeEnum.possibleDis.getName(), diseeases);
+                pushDTO.setDis(dis);
+            }
+            //把第一个推送出来的诊断set到diagOrder中,再反推
+            setPushVo(pushVO, push);
+            //调用反推
+            reversePushPackage(length, pushDTO, ruleTypeList, typeWords, pushVO, dis);
+        }
+        return pushDTO;
+        /*//如果下的诊断有数据就反推
         if (pushVO.getDiagVo() != null && ListUtil.isNotEmpty(pushVO.getDiagVo().getDiags())) {
             reversePushPackage(length, pushDTO, ruleTypeList, typeWords, pushVO, dis);
         } else {
@@ -65,7 +89,7 @@ public class PushProcess {
                 reversePushPackage(length, pushDTO, ruleTypeList, typeWords, pushVO, dis);
             }
         }
-        return pushDTO;
+        return pushDTO;*/
     }
 
     private void setPushVo(NeoPushVO pushVO, List<String> push) {