浏览代码

数据引擎模式下增加推理接口辅检和诊断公表转换

zhaops 5 年之前
父节点
当前提交
afc7a8ae99
共有 1 个文件被更改,包括 101 次插入68 次删除
  1. 101 68
      aipt-service/src/main/java/com/diagbot/facade/PushFacade.java

+ 101 - 68
aipt-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -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;
+    }
 }