Browse Source

Merge branch 'develop' into dev/prec20191118_new

gaodm 5 years ago
parent
commit
0a43d0add3
35 changed files with 1028 additions and 96 deletions
  1. 160 0
      aipt-service/src/main/java/com/diagbot/aggregate/SearchItemAggregate.java
  2. 21 1
      aipt-service/src/main/java/com/diagbot/client/TranServiceClient.java
  3. 28 1
      aipt-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java
  4. 19 0
      aipt-service/src/main/java/com/diagbot/dto/PacsResult.java
  5. 109 0
      aipt-service/src/main/java/com/diagbot/facade/ConceptDetailFacade.java
  6. 27 77
      aipt-service/src/main/java/com/diagbot/facade/PushFacade.java
  7. 254 0
      aipt-service/src/main/java/com/diagbot/facade/TransferFacade.java
  8. 36 0
      aipt-service/src/main/java/com/diagbot/vo/ConnectIntroduceVO.java
  9. 19 0
      aipt-service/src/main/java/com/diagbot/vo/DiseaseIcdVO.java
  10. 19 0
      aipt-service/src/main/java/com/diagbot/vo/PacsConfigVO.java
  11. 2 0
      aipt-service/src/main/java/com/diagbot/vo/SearchVo.java
  12. 15 0
      aipt-service/src/main/java/com/diagbot/web/ConceptDetailController.java
  13. 8 0
      aipt-service/src/main/java/com/diagbot/web/PushController.java
  14. 10 0
      ltapi-service/src/main/java/com/diagbot/client/AiptServiceClient.java
  15. 19 0
      ltapi-service/src/main/java/com/diagbot/client/bean/PacsResult.java
  16. 5 0
      ltapi-service/src/main/java/com/diagbot/client/bean/SearchData.java
  17. 13 0
      ltapi-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java
  18. 3 1
      ltapi-service/src/main/java/com/diagbot/dto/ConceptIntroduceDTO.java
  19. 4 0
      ltapi-service/src/main/java/com/diagbot/facade/AssembleFacade.java
  20. 30 0
      ltapi-service/src/main/java/com/diagbot/facade/ConceptDetailFacade.java
  21. 2 2
      ltapi-service/src/main/java/com/diagbot/facade/PushFacade.java
  22. 40 0
      ltapi-service/src/main/java/com/diagbot/vo/ConnectIntroduceVO.java
  23. 5 0
      ltapi-service/src/main/java/com/diagbot/vo/PushVO.java
  24. 2 0
      ltapi-service/src/main/java/com/diagbot/web/CalculateController.java
  25. 18 0
      ltapi-service/src/main/java/com/diagbot/web/ConceptDetailController.java
  26. 14 0
      ltapi-service/src/main/java/com/diagbot/web/PushController.java
  27. 9 8
      tran-service/src/main/java/com/diagbot/entity/PacsConfig.java
  28. 35 0
      tran-service/src/main/java/com/diagbot/facade/PacsConfigFacade.java
  29. 25 0
      tran-service/src/main/java/com/diagbot/facade/TranDiseaseIcdFacade.java
  30. 18 5
      tran-service/src/main/java/com/diagbot/facade/TranLisConfigFacade.java
  31. 18 0
      tran-service/src/main/java/com/diagbot/vo/DiseaseIcdVO.java
  32. 18 0
      tran-service/src/main/java/com/diagbot/vo/PacsConfigVO.java
  33. 11 0
      tran-service/src/main/java/com/diagbot/web/PacsConfigController.java
  34. 11 0
      tran-service/src/main/java/com/diagbot/web/TranDiseaseIcdController.java
  35. 1 1
      tran-service/src/main/java/com/diagbot/web/TranLisConfigController.java

+ 160 - 0
aipt-service/src/main/java/com/diagbot/aggregate/SearchItemAggregate.java

@@ -0,0 +1,160 @@
+package com.diagbot.aggregate;
+
+import com.diagbot.dto.LisResult;
+import com.diagbot.dto.PacsResult;
+import com.diagbot.enums.FeatureTypeEnum;
+import com.diagbot.enums.SysTypeEnum;
+import com.diagbot.facade.TransferFacade;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.SearchVo;
+import io.github.lvyahui8.spring.annotation.DataConsumer;
+import io.github.lvyahui8.spring.annotation.DataProvider;
+import io.github.lvyahui8.spring.annotation.InvokeParameter;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/11/14 16:11
+ */
+@Component
+public class SearchItemAggregate {
+    @Autowired
+    private TransferFacade transferFacade;
+
+    @DataProvider("assembleSearchData")
+    public SearchVo assembleSearchData(@InvokeParameter("searchVo") SearchVo searchVo,
+                                       @InvokeParameter("isConnect") Boolean isConnect,
+                                       @DataConsumer("setLisArr") List<LisResult> lisArr,
+                                       @DataConsumer("setPacsStr") String pacs,
+                                       @DataConsumer("setDiag") String diag,
+                                       @DataConsumer("setDiseaseName") String diseaseName,
+                                       @DataConsumer("setLisOrder") String lisOrder,
+                                       @DataConsumer("setPacsOrder") String pacsOrder) {
+        if (isConnect) {
+            //化验转公表项处理
+            searchVo.setLisArr(lisArr);
+            //下面转换仅限数据引擎模式
+            if (searchVo.getSysType().equals(SysTypeEnum.LTAPI_SERVICE.getKey())) {
+                //辅检预处理
+                searchVo.setPacs(pacs);
+                //诊断预处理
+                searchVo.setDiag(diag);
+                //治疗方案诊断转换
+                searchVo.setDiseaseName(diseaseName);
+                //化验开单项
+                searchVo.setLisOrder(lisOrder);
+                //辅检开单项
+                searchVo.setPacsOrder(pacsOrder);
+            }
+        }
+        return searchVo;
+    }
+
+    /**
+     * 化验增加公表项
+     *
+     * @param searchVo
+     * @return
+     */
+    @DataProvider("setLisArr")
+    public List<LisResult> setLisArr(@InvokeParameter("searchVo") SearchVo searchVo) {
+        List<LisResult> lisArr = searchVo.getLisArr();
+        lisArr = transferFacade.addLisUniqueName(lisArr, searchVo.getHosCode());
+        return lisArr;
+    }
+
+    /**
+     * 辅检转内部项目名称
+     *
+     * @param searchVo
+     * @return
+     */
+    @DataProvider("setPacsStr")
+    public String setPacsStr(@InvokeParameter("searchVo") SearchVo searchVo) {
+        String pacs = "";
+        if (StringUtil.isNotBlank(searchVo.getPacs())) {
+            pacs += searchVo.getPacs() + ";";
+        }
+        List<PacsResult> pacsArr = searchVo.getPacsArr();
+        if (ListUtil.isNotEmpty(pacsArr)) {
+            List<PacsResult> convertPacsArr = transferFacade.addPacsUniqueName(pacsArr, searchVo.getHosCode());
+            for (PacsResult pacsResult : convertPacsArr) {
+                String pacsResultString = "";
+                if (StringUtils.isNotBlank(pacsResult.getUniqueName())) {
+                    pacsResultString = pacsResult.getUniqueName() + ":";
+                } else {
+                    pacsResultString = pacsResult.getName() + ":";
+                }
+                pacsResultString += pacsResult.getResult() + ";";
+                pacs += pacsResultString;
+            }
+        }
+        return pacs;
+    }
+
+    /**
+     * 诊断转内部名称
+     *
+     * @param searchVo
+     * @return
+     */
+    @DataProvider("setDiag")
+    public String setDiag(@InvokeParameter("searchVo") SearchVo searchVo) {
+        String diag = "";
+        if (StringUtil.isNotBlank(searchVo.getDiag())) {
+            diag = transferFacade.strConvert(searchVo.getDiag(), searchVo.getHosCode(), FeatureTypeEnum.Feature_Type_Disease.getKey());
+        }
+        return diag;
+    }
+
+    /**
+     * 获取治疗方案诊断转内部名称
+     *
+     * @param searchVo
+     * @return
+     */
+    @DataProvider("setDiseaseName")
+    public String setDiseaseName(@InvokeParameter("searchVo") SearchVo searchVo) {
+        String diseaseName = "";
+        if (StringUtil.isNotBlank(searchVo.getDiseaseName())) {
+            diseaseName = transferFacade.strConvert(searchVo.getDiseaseName(), searchVo.getHosCode(), FeatureTypeEnum.Feature_Type_Disease.getKey());
+        }
+        return diseaseName;
+    }
+
+    /**
+     * 化验开单项映射公表名称
+     *
+     * @param searchVo
+     * @return
+     */
+    @DataProvider("setLisOrder")
+    public String setLisOrder(@InvokeParameter("searchVo") SearchVo searchVo) {
+        String lisOrder = "";
+        if (StringUtil.isNotBlank(searchVo.getLisOrder())) {
+            lisOrder = transferFacade.strConvert(searchVo.getLisOrder(), searchVo.getHosCode(), FeatureTypeEnum.Feature_Type_Lis.getKey());
+        }
+        return lisOrder;
+    }
+
+    /**
+     * 辅检开单项转内部项目名称
+     *
+     * @param searchVo
+     * @return
+     */
+    @DataProvider("setPacsOrder")
+    public String setPacsOrder(@InvokeParameter("searchVo") SearchVo searchVo) {
+        String pacsOrder = "";
+        if (StringUtil.isNotBlank(searchVo.getPacsOrder())) {
+            pacsOrder = transferFacade.strConvert(searchVo.getPacsOrder(), searchVo.getHosCode(), FeatureTypeEnum.Feature_Type_Pacs.getKey());
+        }
+        return pacsOrder;
+    }
+}

+ 21 - 1
aipt-service/src/main/java/com/diagbot/client/TranServiceClient.java

@@ -8,6 +8,7 @@ import com.diagbot.dto.HospitalDeptInfoDTO;
 import com.diagbot.dto.IndexDataDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.SysSetInfoDTO;
+import com.diagbot.vo.DiseaseIcdVO;
 import com.diagbot.vo.GetDiseaseIcdVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
 import com.diagbot.vo.HospitalDeptInfoVO;
@@ -15,6 +16,7 @@ import com.diagbot.vo.HospitalSetVO;
 import com.diagbot.vo.IndexDataSaveVO;
 import com.diagbot.vo.IndexDataiIds;
 import com.diagbot.vo.LisConfigVO;
+import com.diagbot.vo.PacsConfigVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -64,7 +66,7 @@ public interface TranServiceClient {
      * @return
      */
     @PostMapping("/tranLisConfig/getLisConfigByMealNameAndHosCode")
-    RespDTO<Map<String, Map<String, String>>> getLisConfigByMealNameAndHosCode(@RequestBody LisConfigVO lisConfigVO);
+    RespDTO<Map<String, Map<String, List<String>>>> getLisConfigByMealNameAndHosCode(@RequestBody LisConfigVO lisConfigVO);
 
     /**
      * 根据医院编码获取辅检公表映射关系
@@ -75,6 +77,15 @@ public interface TranServiceClient {
     @PostMapping("/pacsConfig/getPacsConfigByHosCode")
     RespDTO<Map<String, String>> getPacsConfigByHosCode(@RequestBody HosCodeVO hosCodeVO);
 
+    /**
+     * 获取辅检映射关系
+     *
+     * @param pacsConfigVO
+     * @return
+     */
+    @PostMapping("/pacsConfig/getPacsConfig")
+    RespDTO<Map<String, List<String>>> getPacsConfig(@RequestBody PacsConfigVO pacsConfigVO);
+
     /**
      * 根据医院编码获取提示信息标题映射关系
      *
@@ -93,6 +104,15 @@ public interface TranServiceClient {
     @PostMapping("/diseaseIcd/getDiseaseIcdByHosCode")
     RespDTO<Map<String, String>> getDiseaseIcdByHosCode(@RequestBody HosCodeVO hosCodeVO);
 
+    /**
+     * 获取诊断名称映射map
+     *
+     * @param diseaseIcdVO
+     * @return
+     */
+    @PostMapping("/diseaseIcd/getDiseaseIcdMap")
+    RespDTO<Map<String, String>> getDiseaseIcdMap(DiseaseIcdVO diseaseIcdVO);
+
     /**
      * 数据服务模式是否对外对接
      *

+ 28 - 1
aipt-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java

@@ -8,6 +8,7 @@ import com.diagbot.dto.HospitalDeptInfoDTO;
 import com.diagbot.dto.IndexDataDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.SysSetInfoDTO;
+import com.diagbot.vo.DiseaseIcdVO;
 import com.diagbot.vo.GetDiseaseIcdVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
 import com.diagbot.vo.HospitalDeptInfoVO;
@@ -15,8 +16,10 @@ import com.diagbot.vo.HospitalSetVO;
 import com.diagbot.vo.IndexDataSaveVO;
 import com.diagbot.vo.IndexDataiIds;
 import com.diagbot.vo.LisConfigVO;
+import com.diagbot.vo.PacsConfigVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.validation.Valid;
@@ -56,7 +59,7 @@ public class TranServiceHystrix implements TranServiceClient {
      * @return
      */
     @Override
-    public RespDTO<Map<String, Map<String, String>>> getLisConfigByMealNameAndHosCode(@RequestBody LisConfigVO lisConfigVO) {
+    public RespDTO<Map<String, Map<String, List<String>>>> getLisConfigByMealNameAndHosCode(@RequestBody LisConfigVO lisConfigVO) {
         log.error("【hystrix】调用{}异常", "getLisConfigByMealNameAndHosCode");
         return null;
     }
@@ -73,6 +76,18 @@ public class TranServiceHystrix implements TranServiceClient {
         return null;
     }
 
+    /**
+     * 获取辅检映射关系
+     *
+     * @param pacsConfigVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, List<String>>> getPacsConfig(@RequestBody PacsConfigVO pacsConfigVO) {
+        log.error("【hystrix】调用{}异常", "getPacsConfig");
+        return null;
+    }
+
     /**
      * 根据医院编码获取提示信息标题映射关系
      *
@@ -97,6 +112,18 @@ public class TranServiceHystrix implements TranServiceClient {
         return null;
     }
 
+    /**
+     * 获取诊断名称映射map
+     *
+     * @param diseaseIcdVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, String>> getDiseaseIcdMap(DiseaseIcdVO diseaseIcdVO) {
+        log.error("【hystrix】调用{}异常", "getDiseaseIcdMap");
+        return null;
+    }
+
     /**
      * 数据服务模式是否对外对接
      *

+ 19 - 0
aipt-service/src/main/java/com/diagbot/dto/PacsResult.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/11/7 15:02
+ */
+@Getter
+@Setter
+public class PacsResult {
+    private String name;
+    @ApiModelProperty(hidden = true)
+    private String uniqueName;
+    private String result;
+}

+ 109 - 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,101 @@ 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());
+        if (!connectIntroduceVO.getSysType().equals(SysTypeEnum.LTAPI_SERVICE.getKey())) {
+            ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
+            BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
+            conceptIntroduceVO.setLibType(ParamConvertUtil.conceptConvert2Lib(conceptIntroduceVO.getType()));
+            retList.add(conceptIntroduceVO);
+            return retList;
+        }
+
+        //是否对接
+        Boolean isConnect = transferFacade.isConnect(connectIntroduceVO.getHosCode(), connectIntroduceVO.getSysType());
+        if (isConnect) {
+            if (connectIntroduceVO.getType().equals(ConceptTypeEnum.Lis.getKey())) {
+                Map<String, Map<String, List<String>>> lisConfigMap
+                        = transferFacade.getLisConfigByMealNameAndHosCode(nameList, connectIntroduceVO.getHosCode());
+                if (lisConfigMap.get(connectIntroduceVO.getName()) != null) {
+                    Map<String, List<String>> itemMap = lisConfigMap.get(connectIntroduceVO.getName());
+                    if (StringUtil.isBlank(connectIntroduceVO.getDetailName())) {
+                        connectIntroduceVO.setDetailName("");
+                    }
+                    List<String> uniqueNameList = itemMap.get(connectIntroduceVO.getDetailName());
+                    if (ListUtil.isNotEmpty(uniqueNameList)) {
+                        for (String uniqueName : uniqueNameList) {
+                            ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
+                            BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
+                            conceptIntroduceVO.setName(uniqueName);
+                            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);
+                    }
+                }
+            } else {
+                ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
+                BeanUtil.copyProperties(connectIntroduceVO, conceptIntroduceVO);
+                conceptIntroduceVO.setLibType(ParamConvertUtil.conceptConvert2Lib(conceptIntroduceVO.getType()));
+                retList.add(conceptIntroduceVO);
+            }
+        }
+        return retList;
+    }
 }

+ 27 - 77
aipt-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -1,23 +1,13 @@
 package com.diagbot.facade;
 
 import com.alibaba.fastjson.JSONObject;
-import com.diagbot.client.TranServiceClient;
-import com.diagbot.client.bean.HosCodeVO;
 import com.diagbot.client.bean.ResponseData;
-import com.diagbot.dto.LisResult;
 import com.diagbot.dto.PushDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.SysSetInfoDTO;
 import com.diagbot.enums.FeatureTypeEnum;
-import com.diagbot.enums.LisSourceEnum;
 import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
-import com.diagbot.util.ListUtil;
-import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
-import com.diagbot.vo.HospitalSetVO;
-import com.diagbot.vo.LisConfigVO;
 import com.diagbot.vo.SearchVo;
 import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,11 +16,8 @@ import org.springframework.stereotype.Component;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -44,7 +31,7 @@ public class PushFacade {
     @Autowired
     private TreatmentFacade treatmentFacade;
     @Autowired
-    private TranServiceClient tranServiceClient;
+    private TransferFacade transferFacade;
     @Autowired
     DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
 
@@ -57,39 +44,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);
-        }
+        Boolean isConnect = transferFacade.isConnect(searchVo.getHosCode(), searchVo.getSysType());
+        //入参预处理
+        searchVo = precSearchData(searchVo, isConnect);
         ResponseData data = clinicalFacade.processClinicalData(searchVo);
 
         String featureType = searchVo.getFeatureType();
@@ -147,6 +104,12 @@ public class PushFacade {
      * @return
      */
     public Map<String, Object> getTreatment(SearchVo searchVo) {
+        //记录外部诊断名称
+        String diseaseName = searchVo.getDiseaseName();
+        //是否对接
+        Boolean isConnect = transferFacade.isConnect(searchVo.getHosCode(), searchVo.getSysType());
+        //入参预处理
+        searchVo = precSearchData(searchVo, isConnect);
         ResponseData data = clinicalFacade.processClinicalData(searchVo);
         Map<String, JSONObject> treat = data.getTreat();
         if (StringUtil.isBlank(searchVo.getDiseaseName())) {
@@ -154,43 +117,30 @@ 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;
     }
 
     /**
-     * 增加化验公表项
+     * searchData入参预处理
      *
-     * @param lisResults
-     * @param hosCode
+     * @param searchVo
+     * @param isConnect
      * @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()));
-                }
-            }
+    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 lisResults;
+        return searchVo;
     }
 }

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

@@ -0,0 +1,254 @@
+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.FeatureTypeEnum;
+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) {
+        List<LisResult> retLisResults = Lists.newLinkedList();
+        //化验项转公表内容,参数处理
+        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, List<String>>>> lisConfigRes
+                    = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
+            Map<String, Map<String, List<String>>> lisConfigMap = new LinkedHashMap<>();
+            if (RespDTOUtil.respIsOK(lisConfigRes)) {
+                lisConfigMap = lisConfigRes.data;
+            }
+            for (LisResult lisResult : lisResults) {
+                if (!lisResult.getSource().equals(LisSourceEnum.Outer.getKey())) {
+                    retLisResults.add(lisResult);
+                    continue;
+                }
+                if (lisResult.getDetailName() == null) {
+                    lisResult.setDetailName("");
+                }
+                Map<String, List<String>> itemMap = lisConfigMap.get(lisResult.getName());
+                if (itemMap != null) {
+                    List<String> uniqueNameList = itemMap.get(lisResult.getDetailName());
+                    if (ListUtil.isNotEmpty(uniqueNameList)) {
+                        //化验公表映射出多项时,拆分成多个公表项数据,指标值保持一致
+                        for (String uniqueName : uniqueNameList) {
+                            LisResult lisResult_new = new LisResult();
+                            BeanUtil.copyProperties(lisResult, lisResult_new);
+                            lisResult_new.setUniqueName(uniqueName);
+                            retLisResults.add(lisResult_new);
+                        }
+                    } else {
+                        retLisResults.add(lisResult);
+                    }
+                }
+            }
+        }
+        return retLisResults;
+    }
+
+
+    /**
+     * 辅检结果增加公表名(辅检项目名称)
+     *
+     * @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 nameList
+     * @param hosCode
+     * @return
+     */
+    public Map<String, Map<String, List<String>>> getLisConfigByMealNameAndHosCode(List<String> nameList, String hosCode) {
+        Map<String, Map<String, List<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, List<String>>>> lisConfigRes
+                    = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
+            if (RespDTOUtil.respIsOK(lisConfigRes)) {
+                lisConfigMap = lisConfigRes.data;
+            }
+        }
+        return lisConfigMap;
+    }
+
+    /**
+     * 外部项目名称转内部名称-字符串格式
+     *
+     * @param originalStr 原始数据
+     * @param hosCode     医院编码
+     * @param type        5-化验(仅限套餐),6-辅检,7-诊断
+     * @return
+     */
+    public String strConvert(String originalStr, String hosCode, Integer type) {
+        String retStr = "";
+        if (StringUtil.isBlank(originalStr)) {
+            return retStr;
+        }
+        String[] strArr = originalStr
+                .replace(" ", "")
+                .split(",|,|;|;");
+        List<String> strList = Arrays.asList(strArr);
+        strList = strList
+                .stream()
+                .filter(str -> StringUtil.isNotBlank(str))
+                .distinct()
+                .collect(Collectors.toList());
+        if (type.equals(FeatureTypeEnum.Feature_Type_Lis.getKey())) {
+            Map<String, Map<String, List<String>>> map = getLisConfigByMealNameAndHosCode(strList, hosCode);
+            if (map != null) {
+                for (String lis : strList) {
+                    Map<String, List<String>> itemMap = map.get(lis);
+                    if (itemMap != null && itemMap.get("") != null) {
+                        retStr += String.join(",", itemMap.get("")) + ",";
+                    }
+                }
+            }
+
+        } else if (type.equals(FeatureTypeEnum.Feature_Type_Pacs.getKey())) {
+            PacsConfigVO pacsConfigVO = new PacsConfigVO();
+            pacsConfigVO.setHosCode(hosCode);
+            pacsConfigVO.setMealNameList(strList);
+            RespDTO<Map<String, List<String>>> pacsRespDTO = tranServiceClient.getPacsConfig(pacsConfigVO);
+            if (RespDTOUtil.respIsOK(pacsRespDTO)) {
+                Map<String, List<String>> pacsMap = pacsRespDTO.data;
+                for (Map.Entry<String, List<String>> entry : pacsMap.entrySet()) {
+                    if (ListUtil.isNotEmpty(entry.getValue())) {
+                        retStr += String.join(",", entry.getValue()) + ",";
+                    }
+                }
+            }
+        } else if (type.equals(FeatureTypeEnum.Feature_Type_Disease.getKey())) {
+            DiseaseIcdVO diseaseIcdVO = new DiseaseIcdVO();
+            diseaseIcdVO.setHosCode(hosCode);
+            diseaseIcdVO.setDiseaseNameList(strList);
+            Map<String, String> disMap = new LinkedHashMap<>();
+            RespDTO<Map<String, String>> disRespDTO = tranServiceClient.getDiseaseIcdMap(diseaseIcdVO);
+            if (RespDTOUtil.respIsOK(disRespDTO)) {
+                disMap = disRespDTO.data;
+                for (String diseaseName : strList) {
+                    if (StringUtil.isNotBlank(disMap.get(diseaseName))) {
+                        retStr += disMap.get(diseaseName) + ",";
+                    }
+                }
+            }
+        }
+        if (retStr.endsWith(",")) {
+            retStr = retStr.substring(0, retStr.length() - 1);
+        }
+        return retStr;
+    }
+}

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

@@ -0,0 +1,36 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+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;
+    @NotNull(message = "请输入术语类型")
+    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;
+}

+ 19 - 0
aipt-service/src/main/java/com/diagbot/vo/DiseaseIcdVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import com.diagbot.client.bean.HosCodeVO;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/11/8 14:54
+ */
+@Getter
+@Setter
+public class DiseaseIcdVO extends HosCodeVO {
+    private List<String> diseaseNameList;
+    private List<String> conceptDisNameList;
+}

+ 19 - 0
aipt-service/src/main/java/com/diagbot/vo/PacsConfigVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import com.diagbot.client.bean.HosCodeVO;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/11/7 16:09
+ */
+@Getter
+@Setter
+public class PacsConfigVO extends HosCodeVO {
+    private List<String> mealNameList;
+    private List<String> uniqueNameList;
+}

+ 2 - 0
aipt-service/src/main/java/com/diagbot/vo/SearchVo.java

@@ -1,6 +1,7 @@
 package com.diagbot.vo;
 
 import com.diagbot.dto.LisResult;
+import com.diagbot.dto.PacsResult;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
@@ -32,6 +33,7 @@ public class SearchVo {
     private String lis;
     private List<LisResult> lisArr;
     private String pacs;
+    private List<PacsResult> pacsArr;
     private String diag;
     private String diseaseName; //指定诊断,例如取治疗方案
     private String scaleName;   //量表名称

+ 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-诊断,8-药品),单选必填<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>")

+ 8 - 0
aipt-service/src/main/java/com/diagbot/web/PushController.java

@@ -46,6 +46,10 @@ public class PushController {
                     "lis:otherValue:其他结果,包括阴性阳性,文字描述等,String<br>" +
                     "lis:source:数据来源(必填),Integer<br>" +
                     "pacs:辅检,String<br>" +
+                    "pacsArr:辅检结构化输入,Array<br>" +
+                    "pacsArr:name:辅检项目,String<br>" +
+                    "pacsArr:uniqueName:辅检项目(标准术语名),String<br>" +
+                    "pacsArr:result:辅检结果,String<br>" +
                     "diag:诊断,String<br>" +
                     "featureType:类型(必填),8:治疗方案,String<br>" +
                     "diseaeName:取治疗方案的诊断,String<br>" +
@@ -80,6 +84,10 @@ public class PushController {
                     "lis:otherValue:其他结果,包括阴性阳性,文字描述等,String<br>" +
                     "lis:source:数据来源(必填),Integer<br>" +
                     "pacs:辅检,String<br>" +
+                    "pacsArr:辅检结构化输入,Array<br>" +
+                    "pacsArr:name:辅检项目,String<br>" +
+                    "pacsArr:uniqueName:辅检项目(标准术语名),String<br>" +
+                    "pacsArr:result:辅检结果,String<br>" +
                     "diag:诊断,String<br>" +
                     "featureType:类型(必填),1:症状,3:其他史,4:查体结果,42:查体指标,5:化验,6:辅检,7:诊断,22-指标,String<br>" +
                     "disType:诊断类型,1-慢病,2-急诊,普通病不填,Integer<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);
 }

+ 19 - 0
ltapi-service/src/main/java/com/diagbot/client/bean/PacsResult.java

@@ -0,0 +1,19 @@
+package com.diagbot.client.bean;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/11/7 15:02
+ */
+@Getter
+@Setter
+public class PacsResult {
+    private String name;
+    @ApiModelProperty(hidden = true)
+    private String uniqueName;
+    private String result;
+}

+ 5 - 0
ltapi-service/src/main/java/com/diagbot/client/bean/SearchData.java

@@ -26,6 +26,7 @@ public class SearchData {
     private String lis;
     private List<LisResult> lisArr;
     private String pacs;
+    private List<PacsResult> pacsArr;
     private String diag;
     private String diseaseName; //指定诊断,例如取治疗方案
     private String scaleName;   //量表名称
@@ -36,4 +37,8 @@ public class SearchData {
     private String hosCode;
     @ApiModelProperty(hidden = true)
     private Integer sysType;  //系统类型
+
+    private String lisOrder;
+    private String pacsOrder;
+    private String otherOrder;
 }

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

+ 3 - 1
ltapi-service/src/main/java/com/diagbot/dto/ConceptIntroduceDTO.java

@@ -12,6 +12,8 @@ import java.util.List;
  */
 @Getter
 @Setter
-public class ConceptIntroduceDTO extends ConceptBaseDTO {
+public class ConceptIntroduceDTO {
+    private String clientName; //外部名称
+    private String name;       //概念名称
     private List<ConceptDetailDTO> details;
 }

+ 4 - 0
ltapi-service/src/main/java/com/diagbot/facade/AssembleFacade.java

@@ -30,6 +30,7 @@ public class AssembleFacade {
         searchData.setSymptom(pushVO.getSymptom());
         searchData.setVital(pushVO.getVital());
         searchData.setPacs(pushVO.getPacs());
+        searchData.setPacsArr(pushVO.getPacsArr());
         searchData.setPast(pushVO.getPast());
         searchData.setOther(pushVO.getOther());
         searchData.setDiag(pushVO.getDiag());
@@ -43,6 +44,9 @@ public class AssembleFacade {
         searchData.setLength(10);
         searchData.setSysType(SysTypeEnum.LTAPI_SERVICE.getKey());
         searchData.setHosCode(pushVO.getHosCode());
+        searchData.setLisOrder(pushVO.getLisOrder());
+        searchData.setPacsOrder(pushVO.getPacsOrder());
+        searchData.setOtherOrder(pushVO.getOtherOrder());
 
         switch (pushVO.getSex()) {
             case 1:

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

@@ -3,11 +3,17 @@ 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.ListUtil;
 import com.diagbot.util.RespDTOUtil;
+import com.diagbot.util.StringUtil;
 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 +29,28 @@ 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, "获取提示信息失败");
+        List<ConceptIntroduceDTO> data = respDTO.data;
+        if (ListUtil.isNotEmpty(data)) {
+            for (ConceptIntroduceDTO conceptIntroduceDTO : data) {
+                String clientName
+                        = connectIntroduceVO.getName()
+                        + (StringUtil.isNotBlank(connectIntroduceVO.getDetailName()) == true
+                        ? "(" + connectIntroduceVO.getDetailName() + ")"
+                        : "");
+                conceptIntroduceDTO.setClientName(clientName);
+            }
+        }
+        return data;
+    }
 }

+ 2 - 2
ltapi-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -90,7 +90,7 @@ public class PushFacade {
     public Map<String, Object> pushTreatment(PushVO pushVO) {
         SearchData searchData = assembleFacade.assembleData(pushVO);
         RespDTO<Map<String, Object>> res = aiptServiceClient.getTreatment(searchData);
-        RespDTOUtil.respNGDealCover(res, "中间层没有返回治疗方案");
+        RespDTOUtil.respNGDeal(res, "中间层没有返回治疗方案");
         Map<String, Object> data = res.data;
         return data;
     }
@@ -104,7 +104,7 @@ public class PushFacade {
     public List<ScaleContent> pushScale(PushVO pushVO) {
         SearchData searchData = assembleFacade.assembleData(pushVO);
         RespDTO<List<ScaleContent>> res = aiptServiceClient.getScale(searchData);
-        RespDTOUtil.respNGDealCover(res, "中间层没有返回量表");
+        RespDTOUtil.respNGDeal(res, "中间层没有返回量表");
         List<ScaleContent> data = res.data;
         return data;
     }

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

@@ -0,0 +1,40 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/11/11 11:29
+ */
+@Getter
+@Setter
+public class ConnectIntroduceVO {
+    @NotBlank(message = "请输入医院编码")
+    @ApiModelProperty(value = "医院编码", required = true)
+    private String hosCode;
+    @NotBlank(message = "请输入术语名称")
+    @ApiModelProperty(value = "术语名称", required = true)
+    private String name;
+    @ApiModelProperty(value = "化验明细名称")
+    private String detailName;
+    @NotNull(message = "请输入术语类型")
+    @ApiModelProperty(value = "术语类型", required = true)
+    private Integer type;
+    @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;
+}

+ 5 - 0
ltapi-service/src/main/java/com/diagbot/vo/PushVO.java

@@ -1,9 +1,12 @@
 package com.diagbot.vo;
 
+import com.diagbot.client.bean.PacsResult;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * @Description:
  * @Author:zhaops
@@ -20,6 +23,8 @@ public class PushVO  extends PushBaseVO {
     private String indications;   //推理指标
     private String hosCode;   //医院编码
 
+    private List<PacsResult> pacsArr;
+
     private String lisString;  //化验纯文本
     private String lisOrder;   //当前正在下单化验
     private String pacsOrder;   //当前正在下单辅检

+ 2 - 0
ltapi-service/src/main/java/com/diagbot/web/CalculateController.java

@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 import javax.validation.Valid;
 import java.util.Map;
@@ -23,6 +24,7 @@ import java.util.Map;
 @RestController
 @RequestMapping("/calc")
 @Api(value = "计算相关API", tags = { "接口服务模式-计算相关API" })
+@ApiIgnore
 @SuppressWarnings("unchecked")
 public class CalculateController {
     @Autowired

+ 18 - 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;
@@ -12,8 +13,10 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 import javax.validation.Valid;
+import java.util.List;
 
 /**
  * @Description:
@@ -35,8 +38,23 @@ public class ConceptDetailController {
                     "position:1-摘要,2-全文,5-药品说明书,6-不良反应,单选选填")
     @PostMapping("/getConceptDetail")
     @SysLogger("getConceptDetail")
+    @ApiIgnore
     public RespDTO<ConceptIntroduceDTO> getConceptDetail(@Valid @RequestBody ConceptIntroduceVO conceptIntroduceVO) {
         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-诊断,8-药品),单选必填<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);
+    }
 }

+ 14 - 0
ltapi-service/src/main/java/com/diagbot/web/PushController.java

@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 import javax.validation.Valid;
 import java.util.Map;
@@ -46,6 +47,10 @@ public class PushController {
                     "lis:otherValue:其他结果,包括阴性阳性,文字描述等,String<br>" +
                     "lis:source:数据来源(必填),Integer<br>" +
                     "pacs:辅检,String<br>" +
+                    "pacsArr:辅检结构化输入,Array<br>" +
+                    "pacsArr:name:辅检项目,String<br>" +
+                    "pacsArr:uniqueName:辅检项目(标准术语名),String<br>" +
+                    "pacsArr:result:辅检结果,String<br>" +
                     "diag:诊断,String<br>" +
                     "featureType:类型(必填),1:症状,3:其他史,4:查体结果,42:查体指标,5:化验,6:辅检,7:诊断,22-指标,String<br>" +
                     "diseaseName:取治疗方案的诊断,String<br>" +
@@ -81,6 +86,10 @@ public class PushController {
                     "lis:otherValue:其他结果,包括阴性阳性,文字描述等,String<br>" +
                     "lis:source:数据来源(必填),Integer<br>" +
                     "pacs:辅检,String<br>" +
+                    "pacsArr:辅检结构化输入,Array<br>" +
+                    "pacsArr:name:辅检项目,String<br>" +
+                    "pacsArr:uniqueName:辅检项目(标准术语名),String<br>" +
+                    "pacsArr:result:辅检结果,String<br>" +
                     "diag:诊断,String<br>" +
                     "featureType:类型(必填),8:治疗方案,String<br>" +
                     "diseaeName:取治疗方案的诊断,String<br>" +
@@ -115,6 +124,10 @@ public class PushController {
                     "lis:otherValue:其他结果,包括阴性阳性,文字描述等,String<br>" +
                     "lis:source:数据来源(必填),Integer<br>" +
                     "pacs:辅检,String<br>" +
+                    "pacsArr:辅检结构化输入,Array<br>" +
+                    "pacsArr:name:辅检项目,String<br>" +
+                    "pacsArr:uniqueName:辅检项目(标准术语名),String<br>" +
+                    "pacsArr:result:辅检结果,String<br>" +
                     "diag:诊断,String<br>" +
                     "featureType:类型(必填),21:量表,String<br>" +
                     "diseaeName:取治疗方案的诊断,String<br>" +
@@ -124,6 +137,7 @@ public class PushController {
                     "adverseReactions:不良反应,String<br>")
     @PostMapping("/pushScale")
     @SysLogger("pushScale")
+    @ApiIgnore
     public RespDTO<Map<String, Object>> pushScale(@RequestBody @Valid PushVO pushVO) {
         return RespDTO.onSuc(pushFacade.pushScale(pushVO));
     }

+ 9 - 8
tran-service/src/main/java/com/diagbot/entity/PacsConfig.java

@@ -1,10 +1,11 @@
 package com.diagbot.entity;
 
-import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableName;
+
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -33,12 +34,12 @@ public class PacsConfig implements Serializable {
     /**
      * 记录创建时间
      */
-    private LocalDateTime gmtCreate;
+    private Date gmtCreate;
 
     /**
      * 记录修改时间,如果时间是1970年则表示纪录未修改
      */
-    private LocalDateTime gmtModified;
+    private Date gmtModified;
 
     /**
      * 创建人,0表示无创建人值
@@ -81,19 +82,19 @@ public class PacsConfig implements Serializable {
         this.isDeleted = isDeleted;
     }
 
-    public LocalDateTime getGmtCreate() {
+    public Date getGmtCreate() {
         return gmtCreate;
     }
 
-    public void setGmtCreate(LocalDateTime gmtCreate) {
+    public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
 
-    public LocalDateTime getGmtModified() {
+    public Date getGmtModified() {
         return gmtModified;
     }
 
-    public void setGmtModified(LocalDateTime gmtModified) {
+    public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
 

+ 35 - 0
tran-service/src/main/java/com/diagbot/facade/PacsConfigFacade.java

@@ -5,11 +5,15 @@ import com.diagbot.entity.PacsConfig;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.PacsConfigServiceImpl;
 import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.PacsConfigVO;
 import org.springframework.stereotype.Component;
 
+import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -35,6 +39,37 @@ public class PacsConfigFacade extends PacsConfigServiceImpl{
         return retMap;
     }
 
+    /**
+     * 获取辅检映射关系
+     * @param pacsConfigVO
+     * @return
+     */
+    public Map<String,List<String>> getPacsConfig(PacsConfigVO pacsConfigVO) {
+        Map<String, List<String>> map = new HashMap<>();
+        Map<String, List<PacsConfig>> pacsMap = new LinkedHashMap<>();
+        QueryWrapper<PacsConfig> pacsConfigQueryWrapper = new QueryWrapper<>();
+        pacsConfigQueryWrapper
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_code", pacsConfigVO.getHosCode());
+        if (ListUtil.isNotEmpty(pacsConfigVO.getMealNameList())) {
+            pacsConfigQueryWrapper.in("meal_name", pacsConfigVO.getMealNameList());
+            List<PacsConfig> pacsConfigList = this.list(pacsConfigQueryWrapper);
+            pacsMap = EntityUtil.makeEntityListMap(pacsConfigList, "mealName");
+        } else if (ListUtil.isNotEmpty(pacsConfigVO.getUniqueNameList())) {
+            pacsConfigQueryWrapper.in("unique_name", pacsConfigVO.getUniqueNameList());
+            List<PacsConfig> pacsConfigList = this.list(pacsConfigQueryWrapper);
+            pacsMap = EntityUtil.makeEntityListMap(pacsConfigList, "uniqueName");
+        }
+        for (Map.Entry<String, List<PacsConfig>> entry : pacsMap.entrySet()) {
+            map.put(entry.getKey(), entry.getValue()
+                    .stream()
+                    .map(pacsConfig -> pacsConfig.getUniqueName())
+                    .distinct()
+                    .collect(Collectors.toList()));
+        }
+        return map;
+    }
+
     /**
      * 根据医院编码获取辅检公表映射关系,公表项做key  Map<uniqueName,List<mealName>>
      *

+ 25 - 0
tran-service/src/main/java/com/diagbot/facade/TranDiseaseIcdFacade.java

@@ -6,6 +6,8 @@ import com.diagbot.entity.DiseaseIcd;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.DiseaseIcdServiceImpl;
 import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.DiseaseIcdVO;
 import com.diagbot.vo.GetDiseaseIcdVO;
 import org.springframework.stereotype.Component;
 
@@ -47,4 +49,27 @@ public class TranDiseaseIcdFacade extends DiseaseIcdServiceImpl {
         Map<String, String> retMap= EntityUtil.makeMapWithKeyValue(diseaseIcdList, "conceptDisName", "diseaseName");
         return retMap;
     }
+
+    /**
+     * 获取诊断映射关系
+     * @param diseaseIcdVO
+     * @return
+     */
+    public Map<String,String> getDiseaseIcdMap(DiseaseIcdVO diseaseIcdVO) {
+        Map<String, String> diseaseMap = new HashMap<>();
+        QueryWrapper<DiseaseIcd> diseaseIcdQueryWrapper = new QueryWrapper<>();
+        diseaseIcdQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_code", diseaseIcdVO.getHosCode());
+        if (ListUtil.isNotEmpty(diseaseIcdVO.getDiseaseNameList())) {
+            diseaseIcdQueryWrapper.in("disease_name", diseaseIcdVO.getDiseaseNameList());
+            List<DiseaseIcd> diseaseIcdList = this.list(diseaseIcdQueryWrapper);
+            diseaseMap = EntityUtil.makeMapWithKeyValue(diseaseIcdList, "diseaseName", "conceptDisName");
+
+        } else if (ListUtil.isNotEmpty(diseaseIcdVO.getConceptDisNameList())) {
+            diseaseIcdQueryWrapper.in("concept_dis_name", diseaseIcdVO.getConceptDisNameList());
+            List<DiseaseIcd> diseaseIcdList = this.list(diseaseIcdQueryWrapper);
+            diseaseMap = EntityUtil.makeMapWithKeyValue(diseaseIcdList, "conceptDisName", "diseaseName");
+        }
+        return diseaseMap;
+    }
 }

+ 18 - 5
tran-service/src/main/java/com/diagbot/facade/TranLisConfigFacade.java

@@ -14,6 +14,8 @@ import org.springframework.stereotype.Component;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
+
 /**
  * 
  * @author wangfeng
@@ -43,12 +45,12 @@ public class TranLisConfigFacade extends TranLisConfigServiceImpl{
 	}
 
 	/**
-	 * 根据医院编码获取化验公表映射关系-itemName不为空 Map<mealName,Map<itemName,uniqueName>>
+	 * 根据医院编码获取化验公表映射关系 Map<mealName,Map<itemName,List<uniqueName>>>
 	 *
 	 * @return
 	 */
-	public Map<String, Map<String, String>> getLisConfigByMealNameAndHosCode(LisConfigVO lisConfigVO) {
-		Map<String, Map<String, String>> retMap = new LinkedHashMap<>();
+	public Map<String, Map<String, List<String>>> getLisConfigByMealNameAndHosCode(LisConfigVO lisConfigVO) {
+		Map<String, Map<String, List<String>>> retMap = new LinkedHashMap<>();
 		QueryWrapper<TranLisConfig> lisConfigQueryWrapper = new QueryWrapper<>();
 		lisConfigQueryWrapper
 				.select("hospital_code,meal_name,ifnull(item_name,'') as item_name,unique_name,unique_id")
@@ -62,8 +64,19 @@ public class TranLisConfigFacade extends TranLisConfigServiceImpl{
 				= EntityUtil.makeEntityListMap(lisConfigList, "mealName");
 		for (Map.Entry<String, List<TranLisConfig>> entry : lisConfigMap.entrySet()) {
 			if (entry.getValue().size() > 0) {
-				retMap.put(entry.getKey(),
-						EntityUtil.makeMapWithKeyValue(entry.getValue(), "itemName", "uniqueName"));
+				Map<String, List<TranLisConfig>> itemMap
+						= EntityUtil.makeEntityListMap(entry.getValue(), "itemName");
+				Map<String, List<String>> itemNameMap = new LinkedHashMap<>();
+				for (Map.Entry<String, List<TranLisConfig>> itemEntry : itemMap.entrySet()) {
+					if (ListUtil.isNotEmpty(itemEntry.getValue())) {
+						itemNameMap.put(itemEntry.getKey(), itemEntry
+								.getValue()
+								.stream()
+								.map(lisConfig -> lisConfig.getUniqueName())
+								.collect(Collectors.toList()));
+					}
+				}
+				retMap.put(entry.getKey(), itemNameMap);
 			} else {
 				retMap.put(entry.getKey(), null);
 			}

+ 18 - 0
tran-service/src/main/java/com/diagbot/vo/DiseaseIcdVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/11/8 14:54
+ */
+@Getter
+@Setter
+public class DiseaseIcdVO extends HosCodeVO {
+    private List<String> diseaseNameList;
+    private List<String> conceptDisNameList;
+}

+ 18 - 0
tran-service/src/main/java/com/diagbot/vo/PacsConfigVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/11/7 16:09
+ */
+@Getter
+@Setter
+public class PacsConfigVO extends HosCodeVO {
+    private List<String> mealNameList;
+    private List<String> uniqueNameList;
+}

+ 11 - 0
tran-service/src/main/java/com/diagbot/web/PacsConfigController.java

@@ -4,6 +4,7 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.PacsConfigFacade;
 import com.diagbot.vo.HosCodeVO;
+import com.diagbot.vo.PacsConfigVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -44,4 +45,14 @@ public class PacsConfigController {
     public RespDTO<Map<String, List<String>>> getPacsConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO) {
         return RespDTO.onSuc(pacsConfigFacade.getPacsConfigByUniqueNameAndHosCode(hosCodeVO.getHosCode()));
     }
+
+    @ApiOperation(value = "获取辅检映射关系:[by:zhaops]",
+            notes = "hosCode:医院编码,必填<br>" +
+                    "mealNameList:辅检项目外部名称列表<br>" +
+                    "uniqueNameList:辅检项目内部名称列表<br>")
+    @PostMapping("/getPacsConfig")
+    @SysLogger("getPacsConfig")
+    public RespDTO<Map<String, List<String>>> getPacsConfig(@RequestBody PacsConfigVO pacsConfigVO) {
+        return RespDTO.onSuc(pacsConfigFacade.getPacsConfig(pacsConfigVO));
+    }
 }

+ 11 - 0
tran-service/src/main/java/com/diagbot/web/TranDiseaseIcdController.java

@@ -5,6 +5,7 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.GetDiseaseIcdDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.TranDiseaseIcdFacade;
+import com.diagbot.vo.DiseaseIcdVO;
 import com.diagbot.vo.GetDiseaseIcdVO;
 import com.diagbot.vo.HosCodeVO;
 import io.swagger.annotations.Api;
@@ -54,4 +55,14 @@ public class TranDiseaseIcdController {
     public RespDTO<Map<String, String>> getDiseaseIcdByHosCode(@RequestBody HosCodeVO hosCodeVO) {
         return RespDTO.onSuc(diseaseIcdFacade.getDiseaseIcdByHosCode(hosCodeVO.getHosCode()));
     }
+
+    @ApiOperation(value = "获取诊断名称映射map:[by:zhaops]",
+            notes = "hosCode: 医院编码,必填<br>" +
+                    "diseaseNameList: 外部诊断名称列表<br>" +
+                    "conceptDisNameList: 内部诊断名称列表<br>")
+    @PostMapping("/getDiseaseIcdMap")
+    @SysLogger("getDiseaseIcdMap")
+    public RespDTO<Map<String, String>> getDiseaseIcdMap(@RequestBody DiseaseIcdVO diseaseIcdVO) {
+        return RespDTO.onSuc(diseaseIcdFacade.getDiseaseIcdMap(diseaseIcdVO));
+    }
 }

+ 1 - 1
tran-service/src/main/java/com/diagbot/web/TranLisConfigController.java

@@ -43,7 +43,7 @@ public class TranLisConfigController {
 			notes = "hosCode: 医院编码,必填<br>")
 	@PostMapping("/getLisConfigByMealNameAndHosCode")
 	@SysLogger("getLisConfigByMealNameAndHosCode")
-	public RespDTO<Map<String, Map<String, String>>> getLisConfigByMealNameAndHosCode(@RequestBody LisConfigVO lisConfigVO) {
+	public RespDTO<Map<String, Map<String, List<String>>>> getLisConfigByMealNameAndHosCode(@RequestBody LisConfigVO lisConfigVO) {
 		return RespDTO.onSuc(tranLisConfigFacade.getLisConfigByMealNameAndHosCode(lisConfigVO));
 	}