Browse Source

数据服务模式推理结果映射公表

Zhaops 6 years ago
parent
commit
9b06f34224

+ 18 - 0
icss-service/src/main/java/com/diagbot/client/TranServiceClient.java

@@ -199,4 +199,22 @@ public interface TranServiceClient {
      */
     @PostMapping("/dataService/isDocking")
     RespDTO<Boolean> isDocking();
+
+    /**
+     * 根据医院编码获取化验公表映射关系,公表项做key
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/tranLisConfig/getLisConfigByUniqueNameAndHosCode")
+    RespDTO<Map<String, List<String>>> getLisConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    /**
+     * 根据医院编码查询辅检公表映射,公表项做key
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @PostMapping("/pacsConfig/getPacsConfigByUniqueNameAndHosCode")
+    RespDTO<Map<String, List<String>>> getPacsConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO);
 }

+ 25 - 1
icss-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java

@@ -188,4 +188,28 @@ public class TranServiceHystrix implements TranServiceClient {
         log.error("【hystrix】调用{}异常", "isDocking");
         return null;
     }
-}
+
+    /**
+     * 根据医院编码获取化验公表映射关系,公表项做key
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, List<String>>> getLisConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getLisConfigByUniqueNameAndHosCode");
+        return null;
+    }
+
+    /**
+     * 根据医院编码查询辅检公表映射,公表项做key
+     *
+     * @param hosCodeVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, List<String>>> getPacsConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getPacsConfigByUniqueNameAndHosCode");
+        return null;
+    }
+}

+ 17 - 0
icss-service/src/main/java/com/diagbot/dto/EMRQuestionDTO.java

@@ -0,0 +1,17 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/20 11:42
+ */
+@Getter
+@Setter
+public class EMRQuestionDTO {
+    private String name;
+    private String detailName;
+    private String uniqueName;
+}

+ 3 - 3
icss-service/src/main/java/com/diagbot/dto/PushEMRDTO.java

@@ -14,7 +14,7 @@ import java.util.Map;
 @Getter
 @Setter
 public class PushEMRDTO {
-    private List<String> lisList;
-    private List<String> pacsList;
-    private Map<String, List<String>> dis;
+    private List<EMRQuestionDTO> lisList;
+    private List<EMRQuestionDTO> pacsList;
+    private Map<String, List<EMRQuestionDTO>> dis;
 }

+ 48 - 11
icss-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -10,6 +10,7 @@ import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.bean.SearchData;
+import com.diagbot.dto.EMRQuestionDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushEMRDTO;
 import com.diagbot.dto.PushKYJDTO;
@@ -499,23 +500,53 @@ public class PushFacade {
         Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
 
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Lis.getKey()))) {
-            List<FeatureRate> labs = data.getLabs();
-            if (labs.size() > 0) {
-                List<String> lisList = labs.stream().map(lab -> lab.getFeatureName()).collect(Collectors.toList());
+            List<FeatureRate> lisFeatures = data.getLabs();
+            if (lisFeatures.size() > 0) {
+                Map<String, List<String>> lisMappingByUniqueName = new LinkedHashMap<>();
+                if (isDocking) {
+                    lisMappingByUniqueName = tranServiceClient.getLisConfigByUniqueNameAndHosCode(hosCodeVO).data;
+                } else {
+                    lisMappingByUniqueName = lisMappingFacade.getLisMappingByUniqueName();
+                }
+                List<EMRQuestionDTO> lisList = Lists.newLinkedList();
+                for (FeatureRate featureRate : lisFeatures) {
+                    EMRQuestionDTO lis = new EMRQuestionDTO();
+                    lis.setUniqueName(featureRate.getFeatureName());
+                    if (ListUtil.isNotEmpty(lisMappingByUniqueName.get(featureRate.getFeatureName()))) {
+                        lis.setName(lisMappingByUniqueName.get(featureRate.getFeatureName()).get(0));
+                    }
+                    lisList.add(lis);
+                }
                 pushEMRDTO.setLisList(lisList);
             }
         }
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Pacs.getKey()))) {
             List<FeatureRate> pacsFeatures = data.getPacs();
             if (pacsFeatures.size() > 0) {
-                List<String> pacsList = pacsFeatures.stream().map(pacs -> pacs.getFeatureName()).collect(Collectors.toList());
+                Map<String, List<String>> pacsConfigMapByUniqueName = new LinkedHashMap<>();
+                if (isDocking) {
+                    pacsConfigMapByUniqueName = tranServiceClient.getPacsConfigByUniqueNameAndHosCode(hosCodeVO).data;
+                }
+                List<EMRQuestionDTO> pacsList = Lists.newLinkedList();
+                for (FeatureRate featureRate : pacsFeatures) {
+                    EMRQuestionDTO pacs = new EMRQuestionDTO();
+                    pacs.setUniqueName(featureRate.getFeatureName());
+                    if (isDocking) {
+                        if (ListUtil.isNotEmpty(pacsConfigMapByUniqueName.get(featureRate.getFeatureName()))) {
+                            pacs.setName(pacsConfigMapByUniqueName.get(featureRate.getFeatureName()).get(0));
+                        }
+                    } else {
+                        pacs.setName(featureRate.getFeatureName());
+                    }
+                    pacsList.add(pacs);
+                }
                 pushEMRDTO.setPacsList(pacsList);
             }
         }
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Disease.getKey()))) {
             List<FeatureRate> dis = data.getDis();
             List<String> disNameList = dis.stream().map(disease -> disease.getFeatureName()).collect(Collectors.toList());
-            Map<String, List<String>> retDisMap = new LinkedHashMap<>();
+            Map<String, List<EMRQuestionDTO>> retDisMap = new LinkedHashMap<>();
             Map<String, String> disMap = tranServiceClient.getDiseaseIcdByHosCode(hosCodeVO).data;
 
             //诊断分类
@@ -525,16 +556,19 @@ public class PushFacade {
                 }
                 Map<String, Object> descMap = FastJsonUtils.getJsonToMap(featureRate.getDesc());
                 for (String disClass : descMap.keySet()) {
-                    List<String> retDisList = Lists.newLinkedList();
+                    List<EMRQuestionDTO> retDisList = Lists.newLinkedList();
                     if (retDisMap.get(disClass) != null) {
                         retDisList = retDisMap.get(disClass);
                     }
+                    EMRQuestionDTO retDis = new EMRQuestionDTO();
+                    retDis.setUniqueName(featureRate.getFeatureName());
                     if (isDocking) {
                         //对接模式转icd10名称
-                        retDisList.add(disMap.get(featureRate.getFeatureName()));
+                        retDis.setName(disMap.get(featureRate.getFeatureName()));
                     } else {
-                        retDisList.add(featureRate.getFeatureName());
+                        retDis.setName(featureRate.getFeatureName());
                     }
+                    retDisList.add(retDis);
                     retDisMap.put(disClass, retDisList);
                 }
             }
@@ -544,14 +578,17 @@ public class PushFacade {
             Response<GdbResponse> graphRes = graphServiceClient.highRiskPageData(searchData);
             Map<String, String> graphResult = graphRes.getData().getResult();
             if (graphResult.size() > 0) {
-                List<String> highRiskDisList = Lists.newLinkedList();
+                List<EMRQuestionDTO> highRiskDisList = Lists.newLinkedList();
                 for (Map.Entry<String, String> entry : graphResult.entrySet()) {
                     if (entry.getValue().equals("1")) {
+                        EMRQuestionDTO hrDis = new EMRQuestionDTO();
+                        hrDis.setUniqueName(entry.getKey());
                         if (isDocking) {
-                            highRiskDisList.add(disMap.get(entry.getKey()));
+                            hrDis.setName(disMap.get(entry.getKey()));
                         } else {
-                            highRiskDisList.add(entry.getKey());
+                            hrDis.setName(entry.getValue());
                         }
+                        highRiskDisList.add(hrDis);
                     }
                 }
                 retDisMap.put("警惕", highRiskDisList);

+ 1 - 0
icss-service/src/main/java/com/diagbot/vo/EMRIntroduceVO.java

@@ -20,6 +20,7 @@ public class EMRIntroduceVO {
     @NotBlank(message = "请输入检查或检验套餐名称")
     private String name;
     private String detailName;
+    private String uniqueName;
     private String[] titles;
     private String icdCode; //诊断icd10编码
 }

+ 0 - 22
tran-service/src/main/java/com/diagbot/facade/DiseaseIcdFacade.java

@@ -1,22 +0,0 @@
-package com.diagbot.facade;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.diagbot.entity.DiseaseIcd;
-import com.diagbot.entity.PacsConfig;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.service.impl.DiseaseIcdServiceImpl;
-import com.diagbot.util.EntityUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description:
- * @Author:zhaops
- * @time: 2019/3/18 17:29
- */
-@Component
-public class DiseaseIcdFacade extends DiseaseIcdServiceImpl {
-
-}

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

@@ -7,6 +7,7 @@ import com.diagbot.service.impl.PacsConfigServiceImpl;
 import com.diagbot.util.EntityUtil;
 import org.springframework.stereotype.Component;
 
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -30,4 +31,21 @@ public class PacsConfigFacade extends PacsConfigServiceImpl{
         Map<String, String> retMap=EntityUtil.makeMapWithKeyValue(pacsConfigList, "mealName", "uniqueName");
         return retMap;
     }
+
+    /**
+     * 根据医院编码获取辅检公表映射关系,公表项做key  Map<uniqueName,List<mealName>>
+     *
+     * @return
+     */
+    public Map<String, List<String>> getPacsConfigByUniqueNameAndHosCode(String hosCode) {
+        Map<String, List<String>> retMap = new LinkedHashMap<>();
+        QueryWrapper<PacsConfig> pacsConfigQueryWrapper = new QueryWrapper<>();
+        pacsConfigQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("hospital_code", hosCode);
+        List<PacsConfig> pacsConfigList = this.list(pacsConfigQueryWrapper);
+        Map<String, List<PacsConfig>> pacsConfigMap = EntityUtil.makeEntityListMap(pacsConfigList, "uniqueName");
+        for (Map.Entry<String, List<PacsConfig>> entry : pacsConfigMap.entrySet()) {
+            retMap.put(entry.getKey(), EntityUtil.makeListByFieldName(entry.getValue(), "mealName"));
+        }
+        return retMap;
+    }
 }

+ 17 - 0
tran-service/src/main/java/com/diagbot/facade/TranLisConfigFacade.java

@@ -73,4 +73,21 @@ public class TranLisConfigFacade extends TranLisConfigServiceImpl{
 		Map<String, String> retMap = EntityUtil.makeMapWithKeyValue(lisConfigList, "mealName", "uniqueName");
 		return retMap;
 	}
+
+	/**
+	 * 根据医院编码获取化验公表映射关系,公表项做key  Map<uniqueName,List<mealName>>
+	 *
+	 * @return
+	 */
+	public Map<String, List<String>> getLisConfigByUniqueNameAndHosCode(String hosCode) {
+		Map<String, List<String>> retMap = new LinkedHashMap<>();
+		QueryWrapper<TranLisConfig> tranLisConfigQueryWrapper = new QueryWrapper<>();
+		tranLisConfigQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("hospital_code",hosCode);
+		List<TranLisConfig> tranLisConfigList = this.list(tranLisConfigQueryWrapper);
+		Map<String, List<TranLisConfig>> lisConfigMap = EntityUtil.makeEntityListMap(tranLisConfigList, "uniqueName");
+		for (Map.Entry<String, List<TranLisConfig>> entry : lisConfigMap.entrySet()) {
+			retMap.put(entry.getKey(), EntityUtil.makeListByFieldName(entry.getValue(), "mealName"));
+		}
+		return retMap;
+	}
 }

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

@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -34,4 +35,12 @@ public class PacsConfigController {
     public RespDTO<Map<String, String>> getPacsConfigByHosCode(@RequestBody HosCodeVO hosCodeVO) {
         return RespDTO.onSuc(pacsConfigFacade.getPacsConfigByHosCode(hosCodeVO.getHosCode()));
     }
+
+    @ApiOperation(value = "根据医院编码查询辅检公表映射,公表项做key :[by:zhaops]",
+            notes = "hosCode: 医院编码,必填<br>")
+    @PostMapping("/getPacsConfigByUniqueNameAndHosCode")
+    @SysLogger("getPacsConfigByUniqueNameAndHosCode")
+    public RespDTO<Map<String, List<String>>> getPacsConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        return RespDTO.onSuc(pacsConfigFacade.getPacsConfigByUniqueNameAndHosCode(hosCodeVO.getHosCode()));
+    }
 }

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

@@ -56,4 +56,13 @@ public class TranLisConfigController {
 	public RespDTO<Map<String, String>> getLisConfigByHosCode_EmptyItemName(@RequestBody HosCodeVO hosCodeVO) {
 		return RespDTO.onSuc(tranLisConfigFacade.getLisConfigByHosCode_EmptyItemName(hosCodeVO.getHosCode()));
 	}
+
+	@ApiOperation(value = "根据医院编码获取化验公表映射关系,公表项做key :[by:zhaops]",
+			notes = "hosCode: 医院编码,必填<br>")
+	@PostMapping("/getLisConfigByUniqueNameAndHosCode")
+	@SysLogger("getLisConfigByUniqueNameAndHosCode")
+	public RespDTO<Map<String, List<String>>> getLisConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO) {
+		return RespDTO.onSuc(tranLisConfigFacade.getLisConfigByUniqueNameAndHosCode(hosCodeVO.getHosCode()));
+	}
 }
+