浏览代码

数据引擎模式下增加提示信息接口

zhaops 5 年之前
父节点
当前提交
0b1e54865a

+ 94 - 0
aipt-service/src/main/java/com/diagbot/facade/ConceptDetailFacade.java

@@ -1,13 +1,17 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.client.TranServiceClient;
 import com.diagbot.dto.ConceptDetailDTO;
 import com.diagbot.dto.ConceptIntroduceDTO;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.ConceptDetail;
+import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.enums.PositionTypeEnum;
+import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.ConceptDetailServiceImpl;
@@ -15,10 +19,14 @@ import com.diagbot.util.BeanUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamConvertUtil;
+import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptIntroduceVO;
+import com.diagbot.vo.ConnectIntroduceVO;
+import com.diagbot.vo.DiseaseIcdVO;
 import com.diagbot.vo.ExistListByConceptIdsVO;
+import com.diagbot.vo.PacsConfigVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -37,6 +45,10 @@ import java.util.stream.Collectors;
 public class ConceptDetailFacade extends ConceptDetailServiceImpl {
     @Autowired
     private ConceptFacade conceptFacade;
+    @Autowired
+    private TransferFacade transferFacade;
+    @Autowired
+    private TranServiceClient tranServiceClient;
 
     /**
      * 单条获取静态知识
@@ -199,4 +211,86 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
         }
         return null;
     }
+
+    /**
+     * 获取对接静态知识
+     *
+     * @param connectIntroduceVO
+     * @return
+     */
+    public List<ConceptIntroduceDTO> getConnectConceptDetails(ConnectIntroduceVO connectIntroduceVO) {
+        //入参预处理
+        List<ConceptIntroduceVO> paramList = convertParam(connectIntroduceVO);
+        return this.getConceptDetails(paramList);
+    }
+
+    /**
+     * 静态知识入参预处理-对接
+     *
+     * @param connectIntroduceVO
+     * @return
+     */
+    public List<ConceptIntroduceVO> convertParam(ConnectIntroduceVO connectIntroduceVO) {
+        List<ConceptIntroduceVO> retList = Lists.newLinkedList();
+        List<String> nameList = Lists.newLinkedList();
+        nameList.add(connectIntroduceVO.getName());
+        //是否对接
+        Boolean isConnect = transferFacade.isConnect(connectIntroduceVO.getHosCode(), connectIntroduceVO.getSysType());
+        if (isConnect && connectIntroduceVO.getSysType().equals(SysTypeEnum.LTAPI_SERVICE.getKey())) {
+            if (connectIntroduceVO.getType() != null) {
+                if (connectIntroduceVO.getType().equals(ConceptTypeEnum.Lis.getKey())) {
+                    Map<String, Map<String, String>> lisConfigMap = transferFacade.getLisConfigByMealNameAndHosCode(nameList, connectIntroduceVO.getHosCode());
+                    if (lisConfigMap.get(connectIntroduceVO.getName()) != null) {
+                        Map<String, String> itemMap = lisConfigMap.get(connectIntroduceVO.getName());
+                        if (StringUtil.isBlank(connectIntroduceVO.getDetailName())) {
+                            connectIntroduceVO.setDetailName("");
+                        }
+                        if (itemMap.get(connectIntroduceVO.getDetailName()) != null) {
+                            ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
+                            BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
+                            conceptIntroduceVO.setName(itemMap.get(connectIntroduceVO.getDetailName()));
+                            conceptIntroduceVO.setType(ConceptTypeEnum.LIS_TABLES.getKey());
+                            conceptIntroduceVO.setLibType(LexiconTypeEnum.LIS_TABLES.getKey());
+                            retList.add(conceptIntroduceVO);
+                        }
+                    }
+                } else if (connectIntroduceVO.getType().equals(ConceptTypeEnum.Pacs.getKey())) {
+                    PacsConfigVO pacsConfigVO = new PacsConfigVO();
+                    pacsConfigVO.setHosCode(connectIntroduceVO.getHosCode());
+                    pacsConfigVO.setMealNameList(nameList);
+                    RespDTO<Map<String, List<String>>> pacsRespDTO = tranServiceClient.getPacsConfig(pacsConfigVO);
+                    if (RespDTOUtil.respIsOK(pacsRespDTO)) {
+                        Map<String, List<String>> pacsMap = pacsRespDTO.data;
+                        for (String pacsStr : pacsMap.get(connectIntroduceVO.getName())) {
+                            ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
+                            BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
+                            conceptIntroduceVO.setName(pacsStr);
+                            conceptIntroduceVO.setType(ConceptTypeEnum.Pacs.getKey());
+                            conceptIntroduceVO.setLibType(LexiconTypeEnum.PACS_ITEMS.getKey());
+                            retList.add(conceptIntroduceVO);
+                        }
+                    }
+                } else if (connectIntroduceVO.getType().equals(ConceptTypeEnum.Disease.getKey())) {
+                    DiseaseIcdVO diseaseIcdVO = new DiseaseIcdVO();
+                    diseaseIcdVO.setHosCode(connectIntroduceVO.getHosCode());
+                    diseaseIcdVO.setDiseaseNameList(nameList);
+
+                    Map<String, String> disMap = new LinkedHashMap<>();
+                    RespDTO<Map<String, String>> disRespDTO = tranServiceClient.getDiseaseIcdMap(diseaseIcdVO);
+                    if (RespDTOUtil.respIsOK(disRespDTO)) {
+                        disMap = disRespDTO.data;
+                        if (disMap.get(connectIntroduceVO.getName()) != null) {
+                            ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
+                            BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
+                            conceptIntroduceVO.setName(disMap.get(connectIntroduceVO.getName()));
+                            conceptIntroduceVO.setType(ConceptTypeEnum.Disease.getKey());
+                            conceptIntroduceVO.setLibType(LexiconTypeEnum.DIAGNOSIS.getKey());
+                            retList.add(conceptIntroduceVO);
+                        }
+                    }
+                }
+            }
+        }
+        return retList;
+    }
 }

+ 10 - 166
aipt-service/src/main/java/com/diagbot/facade/PushFacade.java

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

+ 218 - 0
aipt-service/src/main/java/com/diagbot/facade/TransferFacade.java

@@ -0,0 +1,218 @@
+package com.diagbot.facade;
+
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.client.bean.HosCodeVO;
+import com.diagbot.dto.LisResult;
+import com.diagbot.dto.PacsResult;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.SysSetInfoDTO;
+import com.diagbot.enums.LisSourceEnum;
+import com.diagbot.enums.SysTypeEnum;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.DiseaseIcdVO;
+import com.diagbot.vo.HospitalSetVO;
+import com.diagbot.vo.LisConfigVO;
+import com.diagbot.vo.PacsConfigVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/11/11 14:14
+ */
+@Component
+public class TransferFacade {
+    @Autowired
+    private TranServiceClient tranServiceClient;
+
+
+    /**
+     * 查询对接状态
+     *
+     * @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> addLisUniqueName(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 nameList
+     * @param hosCode
+     * @return
+     */
+    public Map<String, Map<String, String>> getLisConfigByMealNameAndHosCode(List<String> nameList, String hosCode) {
+        Map<String, Map<String, String>> lisConfigMap = new LinkedHashMap<>();
+        if (ListUtil.isNotEmpty(nameList) && StringUtil.isNotBlank(hosCode)) {
+            LisConfigVO lisConfigVO = new LisConfigVO();
+            lisConfigVO.setHosCode(hosCode);
+            lisConfigVO.setMealNameList(nameList);
+            RespDTO<Map<String, Map<String, String>>> lisConfigRes
+                    = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
+            if (RespDTOUtil.respIsOK(lisConfigRes)) {
+                lisConfigMap = lisConfigRes.data;
+            }
+        }
+        return lisConfigMap;
+    }
+
+    /**
+     * 辅检公表转换
+     *
+     * @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;
+    }
+
+    /**
+     * 诊断名称映射转换
+     *
+     * @param diseaseStr
+     * @param hosCode
+     * @param type       1-外部名称转内部名称,2-内部名称转外部名称
+     * @return
+     */
+    public String convertDisease(String diseaseStr, String hosCode, Integer type) {
+        String[] diseases = diseaseStr.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(hosCode);
+        if (type.equals(1)) {
+            diseaseIcdVO.setDiseaseNameList(diseaseList);
+        } else if (type.equals(2)) {
+            diseaseIcdVO.setConceptDisNameList(diseaseList);
+        }
+        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;
+    }
+}

+ 34 - 0
aipt-service/src/main/java/com/diagbot/vo/ConnectIntroduceVO.java

@@ -0,0 +1,34 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/11/11 14:06
+ */
+@Getter
+@Setter
+public class ConnectIntroduceVO {
+    @NotBlank(message = "请输入术语名称")
+    private String name;
+    private String detailName;
+    private Integer type;
+    @NotBlank(message = "请输入医院编码")
+    private String hosCode;
+    @ApiModelProperty(hidden = true)
+    private String uniqueName;
+    @ApiModelProperty(hidden = true)
+    private Integer position;
+    @ApiModelProperty(hidden = true)
+    private List<String> titles;
+    @ApiModelProperty(hidden = true)
+    private Integer libType;
+    @ApiModelProperty(hidden = true)
+    private Integer sysType;
+}

+ 15 - 0
aipt-service/src/main/java/com/diagbot/web/ConceptDetailController.java

@@ -5,6 +5,7 @@ import com.diagbot.dto.ConceptIntroduceDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.ConceptDetailFacade;
 import com.diagbot.vo.ConceptIntroduceVO;
+import com.diagbot.vo.ConnectIntroduceVO;
 import com.diagbot.vo.ExistListByConceptIdsVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -58,6 +59,20 @@ public class ConceptDetailController {
         return RespDTO.onSuc(data);
     }
 
+    @ApiOperation(value = "知识库标准化-获取静态知识-对接模式[by:zhaops]",
+            notes = "name: 名称,必填<br>" +
+                    "hosCode: 医院编码,必填<br>" +
+                    "detailName: 明细名称,仅针对化验明细项<br>" +
+                    "titles: 标题,数组选填<br>" +
+                    "type:标签类型(5-化验,6-辅检,7-诊断),单选必填<br>" +
+                    "position:1-摘要,2-全文,5-药品说明书,6-不良反应,单选选填")
+    @PostMapping("/getConnectConceptDetails")
+    @SysLogger("getConnectConceptDetails")
+    public RespDTO<List<ConceptIntroduceDTO>> getConnectConceptDetails(@Valid @RequestBody ConnectIntroduceVO connectIntroduceVO) {
+        List<ConceptIntroduceDTO> data = conceptDetailFacade.getConnectConceptDetails(connectIntroduceVO);
+        return RespDTO.onSuc(data);
+    }
+
     @ApiOperation(value = "知识库标准化-获取提示信息存在性[by:zhaops]",
             notes = "name: 标签名称,必填<br>" +
                     "type:标签类型(1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标),单选必填<br>")

+ 10 - 0
ltapi-service/src/main/java/com/diagbot/client/AiptServiceClient.java

@@ -8,6 +8,7 @@ import com.diagbot.dto.ConceptIntroduceDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.vo.ConceptIntroduceVO;
+import com.diagbot.vo.ConnectIntroduceVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -67,4 +68,13 @@ public interface AiptServiceClient {
      */
     @PostMapping(value = "/conceptDetail/getConceptDetail")
     RespDTO<ConceptIntroduceDTO> getConceptDetail(@Valid @RequestBody ConceptIntroduceVO conceptIntroduceVO);
+
+    /**
+     * 获取提示信息-对接
+     *
+     * @param connectIntroduceVO
+     * @return
+     */
+    @PostMapping(value = "/conceptDetail/getConnectConceptDetails")
+    RespDTO<List<ConceptIntroduceDTO>> getConnectConceptDetails(@Valid @RequestBody ConnectIntroduceVO connectIntroduceVO);
 }

+ 13 - 0
ltapi-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java

@@ -8,6 +8,7 @@ import com.diagbot.dto.ConceptIntroduceDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.vo.ConceptIntroduceVO;
+import com.diagbot.vo.ConnectIntroduceVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -83,4 +84,16 @@ public class AiptServiceHystrix implements AiptServiceClient {
         log.error("【hystrix】调用{}异常", "getConceptDetail");
         return null;
     }
+
+    /**
+     * 获取提示信息-对接
+     *
+     * @param connectIntroduceVO
+     * @return
+     */
+    @Override
+    public RespDTO<List<ConceptIntroduceDTO>> getConnectConceptDetails(@Valid @RequestBody ConnectIntroduceVO connectIntroduceVO) {
+        log.error("【hystrix】调用{}异常", "getConnectConceptDetails");
+        return null;
+    }
 }

+ 17 - 0
ltapi-service/src/main/java/com/diagbot/facade/ConceptDetailFacade.java

@@ -3,11 +3,15 @@ package com.diagbot.facade;
 import com.diagbot.client.AiptServiceClient;
 import com.diagbot.dto.ConceptIntroduceDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.vo.ConceptIntroduceVO;
+import com.diagbot.vo.ConnectIntroduceVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * @Description:
  * @Author:zhaops
@@ -23,4 +27,17 @@ public class ConceptDetailFacade {
         RespDTOUtil.respNGDeal(res, "获取提示信息失败");
         return res.data;
     }
+
+    /**
+     * 获取对接静态知识
+     *
+     * @param connectIntroduceVO
+     * @return
+     */
+    public List<ConceptIntroduceDTO> getConnectConceptDetails(ConnectIntroduceVO connectIntroduceVO) {
+        connectIntroduceVO.setSysType(SysTypeEnum.LTAPI_SERVICE.getKey());
+        RespDTO<List<ConceptIntroduceDTO>> respDTO = aiptServiceClient.getConnectConceptDetails(connectIntroduceVO);
+        RespDTOUtil.respNGDeal(respDTO, "获取提示信息失败");
+        return respDTO.data;
+    }
 }

+ 30 - 0
ltapi-service/src/main/java/com/diagbot/vo/ConnectIntroduceVO.java

@@ -0,0 +1,30 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/11/11 11:29
+ */
+@Getter
+@Setter
+public class ConnectIntroduceVO {
+    private String name;
+    private String detailName;
+    @ApiModelProperty(hidden = true)
+    private String uniqueName;
+    private String hosCode;
+    @ApiModelProperty(hidden = true)
+    private Integer position;
+    @ApiModelProperty(hidden = true)
+    private List<String> titles;
+    @ApiModelProperty(hidden = true)
+    private Integer libType;
+    @ApiModelProperty(hidden = true)
+    private Integer sysType;
+}

+ 16 - 0
ltapi-service/src/main/java/com/diagbot/web/ConceptDetailController.java

@@ -5,6 +5,7 @@ import com.diagbot.dto.ConceptIntroduceDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.ConceptDetailFacade;
 import com.diagbot.vo.ConceptIntroduceVO;
+import com.diagbot.vo.ConnectIntroduceVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -14,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.util.List;
 
 /**
  * @Description:
@@ -39,4 +41,18 @@ public class ConceptDetailController {
         ConceptIntroduceDTO data = conceptDetailFacade.getConceptDetail(conceptIntroduceVO);
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "知识库标准化-获取静态知识-对接模式[by:zhaops]",
+            notes = "name: 名称,必填<br>" +
+                    "hosCode: 医院编码,必填<br>" +
+                    "detailName: 明细名称,仅针对化验明细项<br>" +
+                    "titles: 标题,数组选填<br>" +
+                    "type:标签类型(5-化验,6-辅检,7-诊断),单选必填<br>" +
+                    "position:1-摘要,2-全文,5-药品说明书,6-不良反应,单选选填")
+    @PostMapping("/getConnectConceptDetails")
+    @SysLogger("getConnectConceptDetails")
+    public RespDTO<List<ConceptIntroduceDTO>> getConnectConceptDetails(@Valid @RequestBody ConnectIntroduceVO connectIntroduceVO) {
+        List<ConceptIntroduceDTO> data = conceptDetailFacade.getConnectConceptDetails(connectIntroduceVO);
+        return RespDTO.onSuc(data);
+    }
 }