|
@@ -64,75 +64,9 @@ public class PushFacade {
|
|
|
public PushDTO pushInner(SearchVo searchVo) {
|
|
|
PushDTO pushDTO = new PushDTO();
|
|
|
//是否对接
|
|
|
- Boolean isConnect = false;
|
|
|
- if (StringUtil.isNotBlank(searchVo.getHosCode())) {
|
|
|
- HosCodeVO hosCodeVO = new HosCodeVO();
|
|
|
- hosCodeVO.setHosCode(searchVo.getHosCode());
|
|
|
- HospitalSetVO hospitalSetVO = new HospitalSetVO();
|
|
|
- hospitalSetVO.setHospitalCode(searchVo.getHosCode());
|
|
|
- hospitalSetVO.setCode("connect");
|
|
|
- if (searchVo.getSysType() != null) {
|
|
|
- hospitalSetVO.setSysType(searchVo.getSysType());
|
|
|
- } 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;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //化验转公表项处理
|
|
|
- if (isConnect) {
|
|
|
- List<LisResult> lisArr = searchVo.getLisArr();
|
|
|
- lisArr = addUniqueName(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());
|
|
|
- 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));
|
|
|
- }
|
|
|
+ Boolean isConnect = isConnect(searchVo.getHosCode(), searchVo.getSysType());
|
|
|
|
|
|
- //治疗方案诊断转换
|
|
|
- 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 = assembleSearchData(searchVo, isConnect);
|
|
|
|
|
|
ResponseData data = clinicalFacade.processClinicalData(searchVo);
|
|
|
|
|
@@ -191,6 +125,11 @@ public class PushFacade {
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<String, Object> getTreatment(SearchVo searchVo) {
|
|
|
+ //记录外部诊断名称
|
|
|
+ String diseaseName = searchVo.getDiseaseName();
|
|
|
+ //是否对接
|
|
|
+ Boolean isConnect = isConnect(searchVo.getHosCode(), searchVo.getSysType());
|
|
|
+ searchVo = assembleSearchData(searchVo, isConnect);
|
|
|
ResponseData data = clinicalFacade.processClinicalData(searchVo);
|
|
|
Map<String, JSONObject> treat = data.getTreat();
|
|
|
if (StringUtil.isBlank(searchVo.getDiseaseName())) {
|
|
@@ -198,9 +137,50 @@ public class PushFacade {
|
|
|
}
|
|
|
Map<String, Object> treatmentMap
|
|
|
= treatmentFacade.getTreatment(treat, searchVo.getDiseaseName(), searchVo.getDisType());
|
|
|
+ //数据引擎模式下,诊断名称转换成外部名称
|
|
|
+ if (isConnect && searchVo.getSysType().equals(SysTypeEnum.LTAPI_SERVICE.getKey())) {
|
|
|
+ treatmentMap.put("diseaseName", diseaseName);
|
|
|
+ }
|
|
|
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;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 增加化验公表项
|
|
|
*
|
|
@@ -325,4 +305,57 @@ public class PushFacade {
|
|
|
}
|
|
|
return convertDiag;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 推理入参转换
|
|
|
+ *
|
|
|
+ * @param searchVo
|
|
|
+ * @param isConnect
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public SearchVo assembleSearchData(SearchVo searchVo, Boolean isConnect) {
|
|
|
+ //化验转公表项处理
|
|
|
+ if (isConnect) {
|
|
|
+ List<LisResult> lisArr = searchVo.getLisArr();
|
|
|
+ lisArr = addUniqueName(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());
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+
|
|
|
+ //治疗方案诊断转换
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return searchVo;
|
|
|
+ }
|
|
|
}
|