|
@@ -2,24 +2,16 @@ package com.diagbot.facade;
|
|
|
|
|
|
import com.diagbot.client.CdssCoreClient;
|
|
|
import com.diagbot.dto.IndicationDTO;
|
|
|
-import com.diagbot.dto.PushBaseDTO;
|
|
|
import com.diagbot.dto.PushDTO;
|
|
|
import com.diagbot.dto.RespDTO;
|
|
|
import com.diagbot.util.BeanUtil;
|
|
|
-import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.RespDTOUtil;
|
|
|
import com.diagbot.vo.IndicationPushVO;
|
|
|
import com.diagbot.vo.PushVO;
|
|
|
import com.diagbot.vo.SearchData;
|
|
|
-import com.google.common.collect.Lists;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
/**
|
|
|
* @Description:
|
|
|
* @Author:zhaops
|
|
@@ -31,13 +23,6 @@ public class PushFacade {
|
|
|
private AssembleFacade assembleFacade;
|
|
|
@Autowired
|
|
|
private CdssCoreClient cdssCoreClient;
|
|
|
- @Autowired
|
|
|
- private LisConfigFacade lisConfigFacade;
|
|
|
- @Autowired
|
|
|
- private PacsConfigFacade pacsConfigFacade;
|
|
|
- @Autowired
|
|
|
- private DiseaseConfigFacade diseaseConfigFacade;
|
|
|
-
|
|
|
|
|
|
/**
|
|
|
* 基础推理-症状、查体、化验、辅检、诊断
|
|
@@ -47,69 +32,14 @@ public class PushFacade {
|
|
|
public PushDTO push(PushVO pushVO) {
|
|
|
SearchData searchData = new SearchData();
|
|
|
BeanUtil.copyProperties(pushVO, searchData);
|
|
|
+ //TODO 入参映射
|
|
|
searchData = assembleFacade.assembleData(searchData);
|
|
|
BeanUtil.copyProperties(searchData, pushVO);
|
|
|
RespDTO<PushDTO> resp = cdssCoreClient.push(pushVO);
|
|
|
RespDTOUtil.respNGDealCover(resp, "远程调用推理接口失败");
|
|
|
PushDTO data = resp.data;
|
|
|
- //TODO 外部名称映射
|
|
|
- if (ListUtil.isNotEmpty(data.getLis())) {
|
|
|
- List<PushBaseDTO> retLis = data.getLis();
|
|
|
- List<String> uniqueNameList = retLis.stream()
|
|
|
- .map(i -> i.getName())
|
|
|
- .collect(Collectors.toList());
|
|
|
- Map<String, Map<String, Long>> uniqueNameMap
|
|
|
- = lisConfigFacade.getUniqueNameConfigMap(pushVO.getHospitalId(), null, uniqueNameList);
|
|
|
- if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
|
|
|
- retLis.forEach(item -> {
|
|
|
- if (uniqueNameMap.get(item.getName()) != null) {
|
|
|
- item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
|
|
|
- }
|
|
|
- });
|
|
|
- data.setLis(retLis);
|
|
|
- }
|
|
|
- }
|
|
|
- if (ListUtil.isNotEmpty(data.getPacs())) {
|
|
|
- List<PushBaseDTO> retPacs = data.getPacs();
|
|
|
- List<String> uniqueNameList = retPacs.stream()
|
|
|
- .map(i -> i.getName())
|
|
|
- .collect(Collectors.toList());
|
|
|
- Map<String, Map<String, Long>> uniqueNameMap
|
|
|
- = pacsConfigFacade.getUniqueNameConfigMap(pushVO.getHospitalId(), null, uniqueNameList);
|
|
|
- if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
|
|
|
- retPacs.forEach(item -> {
|
|
|
- if (uniqueNameMap.get(item.getName()) != null) {
|
|
|
- item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
|
|
|
- }
|
|
|
- });
|
|
|
- data.setPacs(retPacs);
|
|
|
- }
|
|
|
- }
|
|
|
- if (data.getDis() != null && data.getDis().size() > 0) {
|
|
|
- Map<String, List<PushBaseDTO>> retMap = data.getDis();
|
|
|
- List<String> uniqueNameList = Lists.newLinkedList();
|
|
|
- for (Map.Entry<String, List<PushBaseDTO>> entry : retMap.entrySet()) {
|
|
|
- if (ListUtil.isNotEmpty(entry.getValue())) {
|
|
|
- uniqueNameList.addAll(entry.getValue().stream()
|
|
|
- .map(i -> i.getName())
|
|
|
- .collect(Collectors.toList()));
|
|
|
- }
|
|
|
- }
|
|
|
- if (ListUtil.isNotEmpty(uniqueNameList)) {
|
|
|
- Map<String, Map<String, Long>> uniqueNameMap
|
|
|
- = diseaseConfigFacade.getUniqueNameConfigMap(pushVO.getHospitalId(), null, uniqueNameList);
|
|
|
- for (Map.Entry<String, List<PushBaseDTO>> entry : retMap.entrySet()) {
|
|
|
- if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
|
|
|
- entry.getValue().forEach(item -> {
|
|
|
- if (uniqueNameMap.get(item.getName()) != null) {
|
|
|
- item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- data.setDis(retMap);
|
|
|
- }
|
|
|
- }
|
|
|
+ //TODO 出参映射
|
|
|
+ data = assembleFacade.assemblePushDTO(data, pushVO.getHospitalId());
|
|
|
return data;
|
|
|
}
|
|
|
|
|
@@ -121,6 +51,7 @@ public class PushFacade {
|
|
|
public IndicationDTO indicationPush(IndicationPushVO indicationPushVO) {
|
|
|
SearchData searchData = new SearchData();
|
|
|
BeanUtil.copyProperties(indicationPushVO, searchData);
|
|
|
+ //TODO 入参映射
|
|
|
searchData = assembleFacade.assembleData(searchData);
|
|
|
BeanUtil.copyProperties(searchData, indicationPushVO);
|
|
|
RespDTO<IndicationDTO> resp = cdssCoreClient.indication(indicationPushVO);
|