Przeglądaj źródła

是否对接校验

zhaops 4 lat temu
rodzic
commit
f45a77e2d4

+ 89 - 4
src/main/java/com/diagbot/facade/AssembleFacade.java

@@ -3,6 +3,10 @@ package com.diagbot.facade;
 import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.biz.push.entity.Pacs;
+import com.diagbot.dto.PushBaseDTO;
+import com.diagbot.dto.PushDTO;
+import com.diagbot.entity.HospitalInfo;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
@@ -11,6 +15,7 @@ import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -33,9 +38,16 @@ public class AssembleFacade {
     private DrugConfigFacade drugConfigFacade;
     @Autowired
     private OperationConfigFacade operationConfigFacade;
+    @Autowired
+    private HospitalInfoFacade hospitalInfoFacade;
 
+    /**
+     * 入参映射
+     *
+     * @param searchData
+     * @return
+     */
     public SearchData assembleData(SearchData searchData) {
-
         //化验公表转换
         List<String> lisHisNameList = Lists.newArrayList();
         //lis
@@ -203,8 +215,6 @@ public class AssembleFacade {
                 searchData.setOperationOrder(convertItem);
             }
         }
-
-
         return searchData;
     }
 
@@ -321,4 +331,79 @@ public class AssembleFacade {
         });
         return convertItem;
     }
-}
+
+    /**
+     * 出参映射
+     *
+     * @param data
+     * @param hospitalId
+     * @return
+     */
+    public PushDTO assemblePushDTO(PushDTO data, Long hospitalId) {
+        HospitalInfo hospitalInfo = hospitalInfoFacade.getById(hospitalId);
+        Integer isConnect = 0;
+        if (hospitalInfo != null && hospitalInfo.getIsDeleted().equals(IsDeleteEnum.N.getKey())) {
+            isConnect = 1;
+        }
+        if (isConnect.equals(1)) {
+            if (ListUtil.isNotEmpty(data.getLis())) {
+                List<PushBaseDTO> retLis = data.getLis();
+                List<String> uniqueNameList = retLis.stream()
+                        .map(i -> i.getName())
+                        .collect(Collectors.toList());
+                Map<String, Map<String, Long>> uniqueNameMap
+                        = lisConfigFacade.getUniqueNameConfigMap(hospitalId, null, uniqueNameList);
+                if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
+                    retLis.forEach(item -> {
+                        if (uniqueNameMap.get(item.getName()) != null) {
+                            item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
+                        }
+                    });
+                    data.setLis(retLis);
+                }
+            }
+            if (ListUtil.isNotEmpty(data.getPacs())) {
+                List<PushBaseDTO> retPacs = data.getPacs();
+                List<String> uniqueNameList = retPacs.stream()
+                        .map(i -> i.getName())
+                        .collect(Collectors.toList());
+                Map<String, Map<String, Long>> uniqueNameMap
+                        = pacsConfigFacade.getUniqueNameConfigMap(hospitalId, null, uniqueNameList);
+                if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
+                    retPacs.forEach(item -> {
+                        if (uniqueNameMap.get(item.getName()) != null) {
+                            item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
+                        }
+                    });
+                    data.setPacs(retPacs);
+                }
+            }
+            if (data.getDis() != null && data.getDis().size() > 0) {
+                Map<String, List<PushBaseDTO>> retMap = data.getDis();
+                List<String> uniqueNameList = Lists.newLinkedList();
+                for (Map.Entry<String, List<PushBaseDTO>> entry : retMap.entrySet()) {
+                    if (ListUtil.isNotEmpty(entry.getValue())) {
+                        uniqueNameList.addAll(entry.getValue().stream()
+                                .map(i -> i.getName())
+                                .collect(Collectors.toList()));
+                    }
+                }
+                if (ListUtil.isNotEmpty(uniqueNameList)) {
+                    Map<String, Map<String, Long>> uniqueNameMap
+                            = diseaseConfigFacade.getUniqueNameConfigMap(hospitalId, null, uniqueNameList);
+                    for (Map.Entry<String, List<PushBaseDTO>> entry : retMap.entrySet()) {
+                        if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
+                            entry.getValue().forEach(item -> {
+                                if (uniqueNameMap.get(item.getName()) != null) {
+                                    item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
+                                }
+                            });
+                        }
+                    }
+                    data.setDis(retMap);
+                }
+            }
+        }
+        return data;
+    }
+}

+ 4 - 73
src/main/java/com/diagbot/facade/PushFacade.java

@@ -2,24 +2,16 @@ package com.diagbot.facade;
 
 import com.diagbot.client.CdssCoreClient;
 import com.diagbot.dto.IndicationDTO;
-import com.diagbot.dto.PushBaseDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.util.BeanUtil;
-import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.vo.IndicationPushVO;
 import com.diagbot.vo.PushVO;
 import com.diagbot.vo.SearchData;
-import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
 /**
  * @Description:
  * @Author:zhaops
@@ -31,13 +23,6 @@ public class PushFacade {
     private AssembleFacade assembleFacade;
     @Autowired
     private CdssCoreClient cdssCoreClient;
-    @Autowired
-    private LisConfigFacade lisConfigFacade;
-    @Autowired
-    private PacsConfigFacade pacsConfigFacade;
-    @Autowired
-    private DiseaseConfigFacade diseaseConfigFacade;
-
 
     /**
      * 基础推理-症状、查体、化验、辅检、诊断
@@ -47,69 +32,14 @@ public class PushFacade {
     public PushDTO push(PushVO pushVO) {
         SearchData searchData = new SearchData();
         BeanUtil.copyProperties(pushVO, searchData);
+        //TODO 入参映射
         searchData = assembleFacade.assembleData(searchData);
         BeanUtil.copyProperties(searchData, pushVO);
         RespDTO<PushDTO> resp = cdssCoreClient.push(pushVO);
         RespDTOUtil.respNGDealCover(resp, "远程调用推理接口失败");
         PushDTO data = resp.data;
-        //TODO 外部名称映射
-        if (ListUtil.isNotEmpty(data.getLis())) {
-            List<PushBaseDTO> retLis = data.getLis();
-            List<String> uniqueNameList = retLis.stream()
-                    .map(i -> i.getName())
-                    .collect(Collectors.toList());
-            Map<String, Map<String, Long>> uniqueNameMap
-                    = lisConfigFacade.getUniqueNameConfigMap(pushVO.getHospitalId(), null, uniqueNameList);
-            if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
-                retLis.forEach(item -> {
-                    if (uniqueNameMap.get(item.getName()) != null) {
-                        item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
-                    }
-                });
-                data.setLis(retLis);
-            }
-        }
-        if (ListUtil.isNotEmpty(data.getPacs())) {
-            List<PushBaseDTO> retPacs = data.getPacs();
-            List<String> uniqueNameList = retPacs.stream()
-                    .map(i -> i.getName())
-                    .collect(Collectors.toList());
-            Map<String, Map<String, Long>> uniqueNameMap
-                    = pacsConfigFacade.getUniqueNameConfigMap(pushVO.getHospitalId(), null, uniqueNameList);
-            if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
-                retPacs.forEach(item -> {
-                    if (uniqueNameMap.get(item.getName()) != null) {
-                        item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
-                    }
-                });
-                data.setPacs(retPacs);
-            }
-        }
-        if (data.getDis() != null && data.getDis().size() > 0) {
-            Map<String, List<PushBaseDTO>> retMap = data.getDis();
-            List<String> uniqueNameList = Lists.newLinkedList();
-            for (Map.Entry<String, List<PushBaseDTO>> entry : retMap.entrySet()) {
-                if (ListUtil.isNotEmpty(entry.getValue())) {
-                    uniqueNameList.addAll(entry.getValue().stream()
-                            .map(i -> i.getName())
-                            .collect(Collectors.toList()));
-                }
-            }
-            if (ListUtil.isNotEmpty(uniqueNameList)) {
-                Map<String, Map<String, Long>> uniqueNameMap
-                        = diseaseConfigFacade.getUniqueNameConfigMap(pushVO.getHospitalId(), null, uniqueNameList);
-                for (Map.Entry<String, List<PushBaseDTO>> entry : retMap.entrySet()) {
-                    if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
-                        entry.getValue().forEach(item -> {
-                            if (uniqueNameMap.get(item.getName()) != null) {
-                                item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
-                            }
-                        });
-                    }
-                }
-                data.setDis(retMap);
-            }
-        }
+        //TODO 出参映射
+        data = assembleFacade.assemblePushDTO(data, pushVO.getHospitalId());
         return data;
     }
 
@@ -121,6 +51,7 @@ public class PushFacade {
     public IndicationDTO indicationPush(IndicationPushVO indicationPushVO) {
         SearchData searchData = new SearchData();
         BeanUtil.copyProperties(indicationPushVO, searchData);
+        //TODO 入参映射
         searchData = assembleFacade.assembleData(searchData);
         BeanUtil.copyProperties(searchData, indicationPushVO);
         RespDTO<IndicationDTO> resp = cdssCoreClient.indication(indicationPushVO);