|
@@ -3,6 +3,7 @@ package com.diagbot.process;
|
|
import com.diagbot.biz.push.entity.Item;
|
|
import com.diagbot.biz.push.entity.Item;
|
|
import com.diagbot.biz.push.entity.Lis;
|
|
import com.diagbot.biz.push.entity.Lis;
|
|
import com.diagbot.biz.push.entity.Pacs;
|
|
import com.diagbot.biz.push.entity.Pacs;
|
|
|
|
+import com.diagbot.client.IcssPush5ServiceClient;
|
|
import com.diagbot.client.IcssPushServiceClient;
|
|
import com.diagbot.client.IcssPushServiceClient;
|
|
import com.diagbot.dto.*;
|
|
import com.diagbot.dto.*;
|
|
import com.diagbot.dto.icss.FeatureRate;
|
|
import com.diagbot.dto.icss.FeatureRate;
|
|
@@ -14,6 +15,7 @@ import com.diagbot.enums.MedicalAdviceEnum;
|
|
import com.diagbot.enums.StandConvertEnum;
|
|
import com.diagbot.enums.StandConvertEnum;
|
|
import com.diagbot.facade.CommonFacade;
|
|
import com.diagbot.facade.CommonFacade;
|
|
import com.diagbot.facade.NeoFacade;
|
|
import com.diagbot.facade.NeoFacade;
|
|
|
|
+import com.diagbot.icss5.ConceptPushDTO;
|
|
import com.diagbot.util.ListUtil;
|
|
import com.diagbot.util.ListUtil;
|
|
import com.diagbot.vo.IcssVo;
|
|
import com.diagbot.vo.IcssVo;
|
|
import com.diagbot.vo.NeoPushVO;
|
|
import com.diagbot.vo.NeoPushVO;
|
|
@@ -22,6 +24,7 @@ import com.diagbot.vo.neoPushEntity.Diag;
|
|
import com.diagbot.vo.neoPushEntity.DiagVo;
|
|
import com.diagbot.vo.neoPushEntity.DiagVo;
|
|
import com.google.common.collect.Lists;
|
|
import com.google.common.collect.Lists;
|
|
import com.google.common.collect.Maps;
|
|
import com.google.common.collect.Maps;
|
|
|
|
+import org.apache.commons.collections.MapUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -44,6 +47,53 @@ public class PushProcess {
|
|
CommonFacade commonFacade;
|
|
CommonFacade commonFacade;
|
|
@Autowired
|
|
@Autowired
|
|
IcssPushServiceClient icssPushServiceClient;
|
|
IcssPushServiceClient icssPushServiceClient;
|
|
|
|
+ @Autowired
|
|
|
|
+ IcssPush5ServiceClient icssPush5ServiceClient;
|
|
|
|
+
|
|
|
|
+ public PushDTO processIcss5(PushVO pushVo){
|
|
|
|
+ List<String> ruleTypeList = Arrays.asList(pushVo.getFeatureType().split(","));
|
|
|
|
+ Map<String, List<String>> typeWords = Maps.newHashMap();
|
|
|
|
+ int length = pushVo.getLength();
|
|
|
|
+ PushDTO pushDTO = new PushDTO();
|
|
|
|
+ com.diagbot.icss5.PushVO icssVo = new com.diagbot.icss5.PushVO();
|
|
|
|
+ BeanUtils.copyProperties(pushVo,icssVo);
|
|
|
|
+ icssVo.setAge(new Double(pushVo.getAgeNum()).intValue());
|
|
|
|
+ icssVo.setFeatureType("7");
|
|
|
|
+ List<String> allDis = Lists.newArrayList();
|
|
|
|
+ RespDTO<com.diagbot.icss5.PushDTO> annotation = icssPush5ServiceClient.getAnnotation(icssVo);
|
|
|
|
+ Map<String, List<ConceptPushDTO>> disess = annotation.data.getDis();
|
|
|
|
+ if(MapUtils.isNotEmpty(disess)){
|
|
|
|
+ disess.values().forEach(x ->allDis.addAll(x.stream().map(z->z.getName()).collect(Collectors.toList())));
|
|
|
|
+ }
|
|
|
|
+ Map<String, List<PushBaseDTO>> dis = new HashMap<>();
|
|
|
|
+ if (ListUtil.isNotEmpty(allDis)) {
|
|
|
|
+ //先把所有疾病推出来
|
|
|
|
+ if (ruleTypeList.contains("7")) {
|
|
|
|
+ List<PushBaseDTO> diseeases = allDis.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中,再反推
|
|
|
|
+ NeoPushVO pushVO = new NeoPushVO();
|
|
|
|
+ DiagVo diagVo = new DiagVo();
|
|
|
|
+ diagVo.setDiags(allDis.stream().map(x ->{
|
|
|
|
+ Diag diag = new Diag();
|
|
|
|
+ diag.setName(x);
|
|
|
|
+ return diag;
|
|
|
|
+ }).collect(Collectors.toList()));
|
|
|
|
+ pushVO.setDiagVo(diagVo);
|
|
|
|
+ //调用反推
|
|
|
|
+ reversePushPackage(length, pushDTO, ruleTypeList, typeWords, pushVO, dis);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ return pushDTO;
|
|
|
|
+ }
|
|
|
|
|
|
public PushDTO processIcss(PushVO pushVo){
|
|
public PushDTO processIcss(PushVO pushVo){
|
|
List<Item> diag1 = pushVo.getDiag();
|
|
List<Item> diag1 = pushVo.getDiag();
|