|
@@ -2,25 +2,20 @@ package com.diagbot.facade;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.diagbot.client.bean.ResponseData;
|
|
|
-import com.diagbot.dto.LisResult;
|
|
|
-import com.diagbot.dto.PacsResult;
|
|
|
import com.diagbot.dto.PushDTO;
|
|
|
import com.diagbot.enums.FeatureTypeEnum;
|
|
|
import com.diagbot.enums.SysTypeEnum;
|
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
|
import com.diagbot.exception.CommonException;
|
|
|
-import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
|
import com.diagbot.vo.SearchVo;
|
|
|
import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
|
|
@@ -50,7 +45,8 @@ public class PushFacade {
|
|
|
PushDTO pushDTO = new PushDTO();
|
|
|
//是否对接
|
|
|
Boolean isConnect = transferFacade.isConnect(searchVo.getHosCode(), searchVo.getSysType());
|
|
|
- searchVo = assembleSearchData(searchVo, isConnect);
|
|
|
+ //入参预处理
|
|
|
+ searchVo = precSearchData(searchVo, isConnect);
|
|
|
ResponseData data = clinicalFacade.processClinicalData(searchVo);
|
|
|
|
|
|
String featureType = searchVo.getFeatureType();
|
|
@@ -112,7 +108,8 @@ public class PushFacade {
|
|
|
String diseaseName = searchVo.getDiseaseName();
|
|
|
//是否对接
|
|
|
Boolean isConnect = transferFacade.isConnect(searchVo.getHosCode(), searchVo.getSysType());
|
|
|
- searchVo = assembleSearchData(searchVo, isConnect);
|
|
|
+ //入参预处理
|
|
|
+ searchVo = precSearchData(searchVo, isConnect);
|
|
|
ResponseData data = clinicalFacade.processClinicalData(searchVo);
|
|
|
Map<String, JSONObject> treat = data.getTreat();
|
|
|
if (StringUtil.isBlank(searchVo.getDiseaseName())) {
|
|
@@ -128,65 +125,21 @@ public class PushFacade {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 辅检结构化结果拼接文本
|
|
|
- *
|
|
|
- * @param pacsArr
|
|
|
- * @return
|
|
|
- */
|
|
|
- public String getPacsString(List<PacsResult> pacsArr) {
|
|
|
- String pacsString = "";
|
|
|
- for (PacsResult pacsResult : pacsArr) {
|
|
|
- String pacsResultString = "";
|
|
|
- if (StringUtils.isNotBlank(pacsResult.getUniqueName())) {
|
|
|
- pacsResultString = pacsResult.getUniqueName() + ":";
|
|
|
- } else {
|
|
|
- pacsResultString = pacsResult.getName() + ":";
|
|
|
- }
|
|
|
- pacsResultString += pacsResult.getResult() + ";";
|
|
|
- pacsString += pacsResultString;
|
|
|
- }
|
|
|
- return pacsString;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 推理入参转换
|
|
|
+ * searchData入参预处理
|
|
|
*
|
|
|
* @param searchVo
|
|
|
* @param isConnect
|
|
|
* @return
|
|
|
*/
|
|
|
- public SearchVo assembleSearchData(SearchVo searchVo, Boolean isConnect) {
|
|
|
- //化验转公表项处理
|
|
|
- if (isConnect) {
|
|
|
- List<LisResult> lisArr = searchVo.getLisArr();
|
|
|
- lisArr = transferFacade.addLisUniqueName(lisArr, searchVo.getHosCode());
|
|
|
- searchVo.setLisArr(lisArr);
|
|
|
- }
|
|
|
-
|
|
|
- //下面转换仅限数据引擎模式
|
|
|
- if (isConnect && searchVo.getSysType().equals(SysTypeEnum.LTAPI_SERVICE.getKey())) {
|
|
|
- //辅检预处理
|
|
|
- List<PacsResult> pacsArr = searchVo.getPacsArr();
|
|
|
- if (ListUtil.isNotEmpty(pacsArr)) {
|
|
|
- List<PacsResult> convertPacsArr = transferFacade.addPacsUniqueName(pacsArr, searchVo.getHosCode());
|
|
|
- searchVo.setPacs(searchVo.getPacs() + ";" + getPacsString(convertPacsArr));
|
|
|
- }
|
|
|
-
|
|
|
- //诊断预处理
|
|
|
- if (StringUtil.isNotBlank(searchVo.getDiag())) {
|
|
|
- searchVo.setDiag(transferFacade.strConvert(searchVo.getDiag(), searchVo.getHosCode(), FeatureTypeEnum.Feature_Type_Disease.getKey()));
|
|
|
- }
|
|
|
-
|
|
|
- //治疗方案诊断转换
|
|
|
- if (StringUtil.isNotBlank(searchVo.getDiseaseName())) {
|
|
|
- searchVo.setDiseaseName(transferFacade.strConvert(searchVo.getDiseaseName(), searchVo.getHosCode(), FeatureTypeEnum.Feature_Type_Disease.getKey()));
|
|
|
- }
|
|
|
-
|
|
|
- //化验开单项
|
|
|
- searchVo.setLisOrder(transferFacade.strConvert(searchVo.getLisOrder(), searchVo.getHosCode(), FeatureTypeEnum.Feature_Type_Lis.getKey()));
|
|
|
- //辅检开单项
|
|
|
- searchVo.setPacsOrder(transferFacade.strConvert(searchVo.getPacsOrder(), searchVo.getHosCode(), FeatureTypeEnum.Feature_Type_Pacs.getKey()));
|
|
|
+ public SearchVo precSearchData(SearchVo searchVo, Boolean isConnect) {
|
|
|
+ try {
|
|
|
+ Map<String, Object> inputParams = new HashMap<>();
|
|
|
+ inputParams.put("searchVo", searchVo);
|
|
|
+ inputParams.put("isConnect", isConnect);
|
|
|
+ searchVo
|
|
|
+ = dataBeanAggregateQueryFacade.get("assembleSearchData", inputParams, SearchVo.class);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
|
|
|
}
|
|
|
return searchVo;
|
|
|
}
|