浏览代码

1、推理出参映射

zhaops 3 年之前
父节点
当前提交
6828f2b3c2

+ 33 - 0
src/main/java/com/diagbot/aggregate/AssemblePushAggregate.java

@@ -40,6 +40,7 @@ public class AssemblePushAggregate {
             @DataConsumer("retLis") List<PushBaseDTO> retLis,
             @DataConsumer("retPacs") List<PushBaseDTO> retPacs,
             @DataConsumer("retDiagMap") Map<String, List<PushBaseDTO>> retDiagMap,
+            @DataConsumer("retClickPosDis") List<PushBaseDTO> retClickPosDis,
             @DataConsumer("retOperation") List<PushBaseDTO> retOperation,
             @DataConsumer("retDrug") List<PushBaseDTO> retDrug,
             @DataConsumer("retScale") List<PushScaleDTO> retScale,
@@ -56,6 +57,10 @@ public class AssemblePushAggregate {
         if (MapUtils.isNotEmpty(retDiagMap)) {
             data.setDis(retDiagMap);
         }
+        //可点击可能诊断
+        if (ListUtil.isNotEmpty(retClickPosDis)) {
+            data.setClickAffDis(retClickPosDis);
+        }
         //手术
         if (ListUtil.isNotEmpty(retOperation)) {
             data.setOperations(retOperation);
@@ -167,6 +172,34 @@ public class AssemblePushAggregate {
         return retMap;
     }
 
+    @DataProvider("retClickPosDis")
+    public List<PushBaseDTO> retClickPosDis(@InvokeParameter("pushDTO") PushDTO data,
+                                            @InvokeParameter("hospitalId") Long hospitalId) {
+        //可点击可能诊断
+        List<PushBaseDTO> retClickPosDis = new ArrayList<>();
+        if (ListUtil.isNotEmpty(data.getClickPosDis())) {
+            retClickPosDis = data.getClickPosDis();
+            List<String> uniqueNameList = retClickPosDis.stream()
+                    .map(i -> i.getName())
+                    .collect(Collectors.toList());
+            Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
+                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Disease.getKey(), hospitalId, StatusEnum.Enable.getKey());
+
+            if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
+                retClickPosDis.forEach(item -> {
+                    if (uniqueNameMap.get(item.getName()) != null) {
+                        item.setHisNameList(uniqueNameMap.get(item.getName())
+                                .values().stream()
+                                .map(i -> i.keySet())
+                                .flatMap(Collection::stream)
+                                .collect(Collectors.toList()));
+                    }
+                });
+            }
+        }
+        return retClickPosDis;
+    }
+
     @DataProvider("retOperation")
     public List<PushBaseDTO> retOperation(@InvokeParameter("pushDTO") PushDTO data,
                                           @InvokeParameter("hospitalId") Long hospitalId) {

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

@@ -35,6 +35,10 @@ public class PushDTO {
     private List<PushBaseDTO> nurse = Lists.newArrayList();
     //诊断
     private Map<String, List<PushBaseDTO>> dis;
+    // 可点击可能诊断
+    private List<PushBaseDTO> clickPosDis = Lists.newArrayList();
+    // 可点击下的诊断
+    private List<PushBaseDTO> clickAffDis = Lists.newArrayList();
     //一般治疗
     private List<TreatDTO> treat = new ArrayList<>();
     //推送量表