Quellcode durchsuchen

1、推送量表映射医院术语
2、推送量表关联静态信息

zhaops vor 4 Jahren
Ursprung
Commit
eae90aafdb

+ 32 - 1
src/main/java/com/diagbot/aggregate/AssemblePushAggregate.java

@@ -7,6 +7,7 @@ import com.diagbot.facade.DrugConfigFacade;
 import com.diagbot.facade.LisConfigFacade;
 import com.diagbot.facade.OperationConfigFacade;
 import com.diagbot.facade.PacsConfigFacade;
+import com.diagbot.facade.ScaleConfigFacade;
 import com.diagbot.util.ListUtil;
 import com.google.common.collect.Lists;
 import io.github.lvyahui8.spring.annotation.DataConsumer;
@@ -40,6 +41,8 @@ public class AssemblePushAggregate {
     private DrugConfigFacade drugConfigFacade;
     @Autowired
     private OperationConfigFacade operationConfigFacade;
+    @Autowired
+    private ScaleConfigFacade scaleConfigFacade;
 
     @DataProvider("assemblePushAll")
     public PushDTO assemblePushAll(
@@ -49,7 +52,8 @@ public class AssemblePushAggregate {
             @DataConsumer("retPacs") List<PushBaseDTO> retPacs,
             @DataConsumer("retDiagMap") Map<String, List<PushBaseDTO>> retDiagMap,
             @DataConsumer("retOperation") List<PushBaseDTO> retOperation,
-            @DataConsumer("retDrug") List<PushBaseDTO> retDrug) {
+            @DataConsumer("retDrug") List<PushBaseDTO> retDrug,
+            @DataConsumer("retScale") List<PushBaseDTO> retScale) {
         //检验
         if (ListUtil.isNotEmpty(retLis)) {
             data.setLis(retLis);
@@ -70,6 +74,10 @@ public class AssemblePushAggregate {
         if (ListUtil.isNotEmpty(retDrug)) {
             data.setMedicines(retDrug);
         }
+        //量表
+        if (ListUtil.isNotEmpty(retScale)) {
+            data.setScale(retScale);
+        }
         return data;
     }
 
@@ -196,4 +204,27 @@ public class AssemblePushAggregate {
         }
         return retDrug;
     }
+
+    @DataProvider("retScale")
+    public List<PushBaseDTO> retScale(@InvokeParameter("pushDTO") PushDTO data,
+                                      @InvokeParameter("hospitalId") Long hospitalId) {
+        //量表
+        List<PushBaseDTO> retScale = new ArrayList<>();
+        if (ListUtil.isNotEmpty(data.getScale())) {
+            retScale = data.getScale();
+            List<String> uniqueNameList = retScale.stream()
+                    .map(i -> i.getName())
+                    .collect(Collectors.toList());
+            Map<String, Map<String, Long>> uniqueNameMap
+                    = scaleConfigFacade.getUniqueNameConfigMap(hospitalId, null, uniqueNameList);
+            if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
+                retScale.forEach(item -> {
+                    if (uniqueNameMap.get(item.getName()) != null) {
+                        item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
+                    }
+                });
+            }
+        }
+        return retScale;
+    }
 }

+ 3 - 0
src/main/java/com/diagbot/dto/PushDTO.java

@@ -1,5 +1,6 @@
 package com.diagbot.dto;
 
+import com.google.common.collect.Lists;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -34,6 +35,8 @@ public class PushDTO {
     private Map<String, List<PushBaseDTO>> dis;
     //一般治疗
     private List<TreatDTO> treat = new ArrayList<>();
+    //推送量表
+    private List<PushBaseDTO> scale = Lists.newArrayList();
 
     // 记录调试信息
     private Map<String, Object> debug = new LinkedHashMap<>();

+ 10 - 0
src/main/java/com/diagbot/facade/PushFacade.java

@@ -152,6 +152,9 @@ public class PushFacade {
         if (ListUtil.isNotEmpty(pushDTO.getOperations())) {
             conceptBaseList.addAll(pushDTO.getOperations());
         }
+        if (ListUtil.isNotEmpty(pushDTO.getScale())) {
+            conceptBaseList.addAll(pushDTO.getScale());
+        }
         if (ListUtil.isNotEmpty(conceptBaseList)) {
             conceptNameList = conceptBaseList.stream()
                     .map(i -> i.getName())
@@ -204,6 +207,13 @@ public class PushFacade {
                     }
                 });
             }
+            if (ListUtil.isNotEmpty(pushDTO.getScale())) {
+                pushDTO.getScale().forEach(item -> {
+                    if (conceptDetailMap.containsKey(item.getName() + "_" + dicStaticTypeValNameMap.get("8"))) {
+                        item.setHasInfo(1);
+                    }
+                });
+            }
         }
         return pushDTO;
     }