|
@@ -53,6 +53,8 @@ public class PushFacade {
|
|
|
@Autowired
|
|
|
private TranServiceClient tranServiceClient;
|
|
|
@Autowired
|
|
|
+ private TransferFacade transferFacade;
|
|
|
+ @Autowired
|
|
|
DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
|
|
|
|
|
|
/**
|
|
@@ -64,7 +66,7 @@ public class PushFacade {
|
|
|
public PushDTO pushInner(SearchVo searchVo) {
|
|
|
PushDTO pushDTO = new PushDTO();
|
|
|
//是否对接
|
|
|
- Boolean isConnect = isConnect(searchVo.getHosCode(), searchVo.getSysType());
|
|
|
+ Boolean isConnect = transferFacade.isConnect(searchVo.getHosCode(), searchVo.getSysType());
|
|
|
|
|
|
searchVo = assembleSearchData(searchVo, isConnect);
|
|
|
|
|
@@ -128,7 +130,7 @@ public class PushFacade {
|
|
|
//记录外部诊断名称
|
|
|
String diseaseName = searchVo.getDiseaseName();
|
|
|
//是否对接
|
|
|
- Boolean isConnect = isConnect(searchVo.getHosCode(), searchVo.getSysType());
|
|
|
+ Boolean isConnect = transferFacade.isConnect(searchVo.getHosCode(), searchVo.getSysType());
|
|
|
searchVo = assembleSearchData(searchVo, isConnect);
|
|
|
ResponseData data = clinicalFacade.processClinicalData(searchVo);
|
|
|
Map<String, JSONObject> treat = data.getTreat();
|
|
@@ -144,116 +146,6 @@ public class PushFacade {
|
|
|
return treatmentMap;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 查询对接状态
|
|
|
- *
|
|
|
- * @param hosCode
|
|
|
- * @param sysType
|
|
|
- * @return
|
|
|
- */
|
|
|
- public Boolean isConnect(String hosCode, Integer sysType) {
|
|
|
- Boolean isConnect = false;
|
|
|
- if (StringUtil.isNotBlank(hosCode)) {
|
|
|
- HosCodeVO hosCodeVO = new HosCodeVO();
|
|
|
- hosCodeVO.setHosCode(hosCode);
|
|
|
- HospitalSetVO hospitalSetVO = new HospitalSetVO();
|
|
|
- hospitalSetVO.setHospitalCode(hosCode);
|
|
|
- hospitalSetVO.setCode("connect");
|
|
|
- if (sysType != null) {
|
|
|
- hospitalSetVO.setSysType(sysType);
|
|
|
- } else {
|
|
|
- hospitalSetVO.setSysType(SysTypeEnum.AIPT_SERVICE.getKey());
|
|
|
- }
|
|
|
- RespDTO<List<SysSetInfoDTO>> sysSetInfoListRes = tranServiceClient.getSysSetInfoDatas(hospitalSetVO);
|
|
|
- if (RespDTOUtil.respIsOK(sysSetInfoListRes)) {
|
|
|
- List<SysSetInfoDTO> sysSetInfoList = sysSetInfoListRes.data;
|
|
|
- if (ListUtil.isNotEmpty(sysSetInfoList)) {
|
|
|
- if (sysSetInfoList.get(0).getValue().equals(1)) {
|
|
|
- isConnect = true;
|
|
|
- } else {
|
|
|
- isConnect = false;
|
|
|
- }
|
|
|
- } else {
|
|
|
- isConnect = false;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return isConnect;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 增加化验公表项
|
|
|
- *
|
|
|
- * @param lisResults
|
|
|
- * @param hosCode
|
|
|
- * @return
|
|
|
- */
|
|
|
- public List<LisResult> addUniqueName(List<LisResult> lisResults, String hosCode) {
|
|
|
- //化验项转公表内容,参数处理
|
|
|
- if (ListUtil.isNotEmpty(lisResults)) {
|
|
|
- List<String> mealNameList = lisResults
|
|
|
- .stream()
|
|
|
- .map(lisResult -> lisResult.getName()).collect(Collectors.toList());
|
|
|
- LisConfigVO lisConfigVO = new LisConfigVO();
|
|
|
- lisConfigVO.setHosCode(hosCode);
|
|
|
- lisConfigVO.setMealNameList(mealNameList);
|
|
|
- RespDTO<Map<String, Map<String, String>>> lisConfigRes
|
|
|
- = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
|
|
|
- Map<String, Map<String, String>> lisConfigMap = new LinkedHashMap<>();
|
|
|
- if (RespDTOUtil.respIsOK(lisConfigRes)) {
|
|
|
- lisConfigMap = lisConfigRes.data;
|
|
|
- }
|
|
|
- for (LisResult lisResult : lisResults) {
|
|
|
- if (!lisResult.getSource().equals(LisSourceEnum.Outer.getKey())) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (lisResult.getDetailName() == null) {
|
|
|
- lisResult.setDetailName("");
|
|
|
- }
|
|
|
- if (lisConfigMap.get(lisResult.getName()) != null) {
|
|
|
- lisResult.setUniqueName(lisConfigMap.get(lisResult.getName()).get(lisResult.getDetailName()));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return lisResults;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 辅检公表转换
|
|
|
- *
|
|
|
- * @param pacsArr
|
|
|
- * @param hosCode
|
|
|
- * @return
|
|
|
- */
|
|
|
- public List<PacsResult> addPacsUniqueName(List<PacsResult> pacsArr, String hosCode) {
|
|
|
- Map<String, PacsResult> pacsOriginalMap = EntityUtil.makeEntityMap(pacsArr, "name");
|
|
|
- List<PacsResult> convertPacsArr = Lists.newLinkedList();
|
|
|
- PacsConfigVO pacsConfigVO = new PacsConfigVO();
|
|
|
- pacsConfigVO.setHosCode(hosCode);
|
|
|
- pacsConfigVO.setMealNameList(pacsArr
|
|
|
- .stream()
|
|
|
- .map(pacsResult -> pacsResult.getName())
|
|
|
- .distinct()
|
|
|
- .collect(Collectors.toList()));
|
|
|
- RespDTO<Map<String, List<String>>> pacsRespDTO = tranServiceClient.getPacsConfig(pacsConfigVO);
|
|
|
- if (RespDTOUtil.respIsOK(pacsRespDTO)) {
|
|
|
- Map<String, List<String>> pacsMap = pacsRespDTO.data;
|
|
|
- for (Map.Entry<String, PacsResult> entry : pacsOriginalMap.entrySet()) {
|
|
|
- if (ListUtil.isNotEmpty(pacsMap.get(entry.getKey()))) {
|
|
|
- for (String uniqueName : pacsMap.get(entry.getKey())) {
|
|
|
- PacsResult pacsResult = new PacsResult();
|
|
|
- BeanUtil.copyProperties(entry.getValue(), pacsResult);
|
|
|
- pacsResult.setUniqueName(uniqueName);
|
|
|
- convertPacsArr.add(pacsResult);
|
|
|
- }
|
|
|
- } else {
|
|
|
- convertPacsArr.add(entry.getValue());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return convertPacsArr;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 辅检结构化结果拼接文本
|
|
|
*
|
|
@@ -275,36 +167,6 @@ public class PushFacade {
|
|
|
return pacsString;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 诊断名称映射转换
|
|
|
- *
|
|
|
- * @param diseaseIcdVO
|
|
|
- * @param type 1-外部名称转内部名称,2-内部名称转外部名称
|
|
|
- * @return
|
|
|
- */
|
|
|
- public String convertDisease(DiseaseIcdVO diseaseIcdVO, Integer type) {
|
|
|
- String convertDiag = "";
|
|
|
- Map<String, String> disMap = new LinkedHashMap<>();
|
|
|
- RespDTO<Map<String, String>> disRespDTO = tranServiceClient.getDiseaseIcdMap(diseaseIcdVO);
|
|
|
- if (RespDTOUtil.respIsOK(disRespDTO)) {
|
|
|
- disMap = disRespDTO.data;
|
|
|
- List<String> disNameList = Lists.newLinkedList();
|
|
|
- if (type.equals(1)) {
|
|
|
- //外部名称转内部名称
|
|
|
- disNameList = diseaseIcdVO.getDiseaseNameList();
|
|
|
- } else if (type.equals(2)) {
|
|
|
- //内部名称转外部名称
|
|
|
- disNameList = diseaseIcdVO.getConceptDisNameList();
|
|
|
- }
|
|
|
-
|
|
|
- for (String diseaseName : disNameList) {
|
|
|
- if (StringUtil.isNotBlank(disMap.get(diseaseName))) {
|
|
|
- convertDiag += disMap.get(diseaseName) + ",";
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return convertDiag;
|
|
|
- }
|
|
|
|
|
|
/**
|
|
|
* 推理入参转换
|
|
@@ -317,43 +179,25 @@ public class PushFacade {
|
|
|
//化验转公表项处理
|
|
|
if (isConnect) {
|
|
|
List<LisResult> lisArr = searchVo.getLisArr();
|
|
|
- lisArr = addUniqueName(lisArr, searchVo.getHosCode());
|
|
|
+ lisArr = transferFacade.addLisUniqueName(lisArr, searchVo.getHosCode());
|
|
|
searchVo.setLisArr(lisArr);
|
|
|
}
|
|
|
|
|
|
+ //下面转换仅限数据引擎模式
|
|
|
if (isConnect && searchVo.getSysType().equals(SysTypeEnum.LTAPI_SERVICE.getKey())) {
|
|
|
- //辅检预处理,仅限数据引擎模式
|
|
|
+ //辅检预处理
|
|
|
List<PacsResult> pacsArr = searchVo.getPacsArr();
|
|
|
- List<PacsResult> convertPacsArr = addPacsUniqueName(pacsArr, searchVo.getHosCode());
|
|
|
+ List<PacsResult> convertPacsArr = transferFacade.addPacsUniqueName(pacsArr, searchVo.getHosCode());
|
|
|
searchVo.setPacs(searchVo.getPacs() + ";" + getPacsString(convertPacsArr));
|
|
|
|
|
|
//诊断预处理
|
|
|
if (StringUtil.isNotBlank(searchVo.getDiag())) {
|
|
|
- String[] diseases = searchVo.getDiag().replace(" ", "").split(",|,|;|;");
|
|
|
- List<String> diseaseList = Arrays.asList(diseases);
|
|
|
- diseaseList = diseaseList
|
|
|
- .stream()
|
|
|
- .filter(i -> StringUtil.isNotBlank(i))
|
|
|
- .distinct()
|
|
|
- .collect(Collectors.toList());
|
|
|
- DiseaseIcdVO diseaseIcdVO = new DiseaseIcdVO();
|
|
|
- diseaseIcdVO.setHosCode(searchVo.getHosCode());
|
|
|
- diseaseIcdVO.setDiseaseNameList(diseaseList);
|
|
|
- searchVo.setDiag(convertDisease(diseaseIcdVO, 1));
|
|
|
+ searchVo.setDiag(transferFacade.convertDisease(searchVo.getDiag(), searchVo.getHosCode(), 1));
|
|
|
}
|
|
|
|
|
|
//治疗方案诊断转换
|
|
|
if (StringUtil.isNotBlank(searchVo.getDiseaseName())) {
|
|
|
- String[] diseases = searchVo.getDiseaseName().replace(" ", "").split(",|,|;|;");
|
|
|
- List<String> diseaseList = Arrays.asList(diseases);
|
|
|
- diseaseList = diseaseList
|
|
|
- .stream()
|
|
|
- .filter(i -> StringUtil.isNotBlank(i))
|
|
|
- .collect(Collectors.toList());
|
|
|
- DiseaseIcdVO diseaseIcdVO = new DiseaseIcdVO();
|
|
|
- diseaseIcdVO.setHosCode(searchVo.getHosCode());
|
|
|
- diseaseIcdVO.setDiseaseNameList(diseaseList);
|
|
|
- searchVo.setDiseaseName(convertDisease(diseaseIcdVO, 1));
|
|
|
+ searchVo.setDiseaseName(transferFacade.convertDisease(searchVo.getDiseaseName(), searchVo.getHosCode(), 1));
|
|
|
}
|
|
|
}
|
|
|
return searchVo;
|