Browse Source

Merge remote-tracking branch 'origin/master'

zhaops 4 years ago
parent
commit
f05cc6f9c7

+ 100 - 1
src/main/java/com/diagbot/aggregate/AssembleAggregate.java

@@ -9,9 +9,11 @@ import com.diagbot.facade.DrugConfigFacade;
 import com.diagbot.facade.LisConfigFacade;
 import com.diagbot.facade.OperationConfigFacade;
 import com.diagbot.facade.PacsConfigFacade;
+import com.diagbot.facade.TransfusionConfigFacade;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
+import com.diagbot.vo.ItemExt;
 import com.diagbot.vo.SearchData;
 import com.google.common.collect.Lists;
 import io.github.lvyahui8.spring.annotation.DataConsumer;
@@ -45,6 +47,8 @@ public class AssembleAggregate {
     private OperationConfigFacade operationConfigFacade;
     @Autowired
     private DeptConfigFacade deptConfigFacade;
+    @Autowired
+    private TransfusionConfigFacade transfusionConfigFacade;
 
     @DataProvider("assembleDataAll")
     public SearchData assembleDataAll(
@@ -54,7 +58,8 @@ public class AssembleAggregate {
             @DataConsumer("diagConfigMap") Map<String, Map<String, Long>> diagConfigMap,
             @DataConsumer("drugConfigMap") Map<String, Map<String, Long>> drugConfigMap,
             @DataConsumer("operationConfigMap") Map<String, Map<String, Long>> operationConfigMap,
-            @DataConsumer("deptConfigMap") Map<String, Map<String, Long>> deptConfigMap) {
+            @DataConsumer("deptConfigMap") Map<String, Map<String, Long>> deptConfigMap,
+            @DataConsumer("transfusionConfigMap") Map<String, Map<String, Long>> transfusionConfigMap) {
         //检验
         if (MapUtils.isNotEmpty(lisConfigMap)) {
             if (ListUtil.isNotEmpty(searchData.getLis())) {
@@ -101,6 +106,10 @@ public class AssembleAggregate {
         }
         //手术
         if (MapUtils.isNotEmpty(operationConfigMap)) {
+            if (ListUtil.isNotEmpty(searchData.getOperation())) {
+                List<Item> convertItem = itemConvert(searchData.getOperation(), operationConfigMap);
+                searchData.setOperation(convertItem);
+            }
             if (ListUtil.isNotEmpty(searchData.getOperationOrder())) {
                 List<Item> convertItem = itemConvert(searchData.getOperationOrder(), operationConfigMap);
                 searchData.setOperationOrder(convertItem);
@@ -113,6 +122,17 @@ public class AssembleAggregate {
                 searchData.setDept(convertItem);
             }
         }
+        //输血
+        if (MapUtils.isNotEmpty(transfusionConfigMap)) {
+            if (ListUtil.isNotEmpty(searchData.getTransfusion())) {
+                List<ItemExt> convertItem = itemExtConvert(searchData.getTransfusion(), transfusionConfigMap);
+                searchData.setTransfusion(convertItem);
+            }
+            if (ListUtil.isNotEmpty(searchData.getTransfusionOrder())) {
+                List<ItemExt> convertItem = itemExtConvert(searchData.getTransfusionOrder(), transfusionConfigMap);
+                searchData.setTransfusionOrder(convertItem);
+            }
+        }
 
 
         return searchData;
@@ -254,6 +274,14 @@ public class AssembleAggregate {
     public Map<String, Map<String, Long>> operationConfigMap(@InvokeParameter("searchData") SearchData searchData) {
         //手术公表转换
         List<String> operationHisNameList = Lists.newArrayList();
+        //operation
+        if (ListUtil.isNotEmpty(searchData.getOperation())) {
+            operationHisNameList.addAll(searchData.getOperation()
+                    .stream()
+                    .filter(i -> StringUtil.isNotBlank(i.getName()) || StringUtil.isNotBlank(i.getUniqueName()))
+                    .map(i -> i.getName())
+                    .collect(Collectors.toList()));
+        }
         //operationOrder
         if (ListUtil.isNotEmpty(searchData.getOperationOrder())) {
             operationHisNameList.addAll(searchData.getOperationOrder()
@@ -301,6 +329,40 @@ public class AssembleAggregate {
         return configMap;
     }
 
+    @DataProvider("transfusionConfigMap")
+    public Map<String, Map<String, Long>> transfusionConfigMap(@InvokeParameter("searchData") SearchData searchData) {
+        //输血公表转换
+        List<String> transfusionHisNameList = Lists.newArrayList();
+        //transfusion
+        if (ListUtil.isNotEmpty(searchData.getTransfusion())) {
+            transfusionHisNameList.addAll(searchData.getTransfusion()
+                    .stream()
+                    .filter(i -> StringUtil.isNotBlank(i.getName()) || StringUtil.isNotBlank(i.getUniqueName()))
+                    .map(i -> i.getName())
+                    .collect(Collectors.toList()));
+        }
+        //transfusionOrder
+        if (ListUtil.isNotEmpty(searchData.getTransfusionOrder())) {
+            transfusionHisNameList.addAll(searchData.getTransfusionOrder()
+                    .stream()
+                    .filter(i -> StringUtil.isNotBlank(i.getName()) || StringUtil.isNotBlank(i.getUniqueName()))
+                    .map(i -> i.getName())
+                    .collect(Collectors.toList()));
+        }
+        transfusionHisNameList = transfusionHisNameList
+                .stream()
+                .distinct()
+                .collect(Collectors.toList());
+
+        Map<String, Map<String, Long>> configMap = new HashMap<>();
+
+        if (ListUtil.isNotEmpty(transfusionHisNameList)) {
+            configMap
+                    = transfusionConfigFacade.getConfigMap(searchData.getHospitalId(), transfusionHisNameList, null);
+        }
+        return configMap;
+    }
+
     /**
      * 化验公表转换
      *
@@ -417,4 +479,41 @@ public class AssembleAggregate {
         });
         return convertItem;
     }
+
+    /**
+     * 输血转换
+     *
+     * @param items
+     * @param configMap
+     * @return
+     */
+    public List<ItemExt> itemExtConvert(List<ItemExt> items, Map<String, Map<String, Long>> configMap) {
+        if (ListUtil.isEmpty(items)) {
+            return items;
+        }
+        if (configMap == null || configMap.size() == 0) {
+            return items;
+        }
+        List<ItemExt> convertItem = Lists.newLinkedList();
+        items.forEach(item -> {
+            if (StringUtil.isBlank(item.getName())
+                    || StringUtil.isNotBlank(item.getUniqueName())) {
+                convertItem.add(item);
+            } else {
+                Map<String, Long> uniqueNameMap = new HashMap<>();
+                if (configMap.get(item.getName()) != null) {
+                    uniqueNameMap = configMap.get(item.getName());
+                }
+                if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
+                    for (String uniqueName : uniqueNameMap.keySet()) {
+                        ItemExt convertItemRecord = new ItemExt();
+                        BeanUtil.copyProperties(item, convertItemRecord);
+                        convertItemRecord.setUniqueName(uniqueName);
+                        convertItem.add(convertItemRecord);
+                    }
+                }
+            }
+        });
+        return convertItem;
+    }
 }

+ 5 - 1
src/main/java/com/diagbot/facade/PushFacade.java

@@ -183,7 +183,11 @@ public class PushFacade {
      * @return
      */
     public PushPlanDTO pushPlan(PushPlanVO pushPlanVO) {
-        //todo 入参转化
+        SearchData searchData = new SearchData();
+        BeanUtil.copyProperties(pushPlanVO, searchData);
+        //TODO 入参映射
+        searchData = assembleFacade.assembleData(searchData);
+        BeanUtil.copyProperties(searchData, pushPlanVO);
         RespDTO<PushPlanDTO> resp = cdssCoreClient.pushPlan(pushPlanVO);
         RespDTOUtil.respNGDeal(resp, "远程调用推理接口失败");
         PushPlanDTO pushPlanDTO = resp.data;