Kaynağa Gözat

智能分诊返回医院科室列表

zhaops 5 yıl önce
ebeveyn
işleme
8ad2e5884c

+ 2 - 2
tran-service/src/main/java/com/diagbot/facade/HospitalDeptFacade.java

@@ -58,7 +58,7 @@ public class HospitalDeptFacade extends HospitalDeptServiceImpl {
     }
 
     /**
-     * 获取科室对接信息
+     * 根据概念名称获取科室信息map
      *
      * @param hospitalDeptVO
      * @return
@@ -88,4 +88,4 @@ public class HospitalDeptFacade extends HospitalDeptServiceImpl {
         }
         return retMap;
     }
-}
+}

+ 11 - 2
tran-service/src/main/java/com/diagbot/web/HospitalDeptInfoController.java

@@ -5,6 +5,8 @@ import java.util.Map;
 
 import javax.validation.Valid;
 
+import com.diagbot.dto.HospitalDeptDTO;
+import com.diagbot.vo.HospitalDeptVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -46,7 +48,7 @@ public class HospitalDeptInfoController {
         HospitalDeptInfoDTO data = hospitalDeptFacade.getHospitalDeptInfo(hospitalDeptInfoVO);
         return RespDTO.onSuc(data);
     }
-    
+
     @PostMapping(value = "/hospitalDeptInfoMapByIds")
     @SysLogger("hospitalDeptInfoMapByIds")
     @ApiOperation(value = "根据ids获取科室信息map[by:rengb]")
@@ -55,5 +57,12 @@ public class HospitalDeptInfoController {
         Map<Long, HospitalDept> result = hospitalDeptFacade.hospitalDeptInfoMapByIds(ids);
         return RespDTO.onSuc(result);
     }
-    
+
+    @PostMapping(value = "/hospitalDeptByConceptNames")
+    @SysLogger("hospitalDeptByConceptNames")
+    @ApiOperation(value = "根据概念名称获取科室信息map[by:zhaops]")
+    RespDTO<Map<String, List<HospitalDeptDTO>>> hospitalDeptByConceptNames(@RequestBody HospitalDeptVO hospitalDeptVO) {
+        Map<String, List<HospitalDeptDTO>> data = hospitalDeptFacade.hospitalDeptByConceptNames(hospitalDeptVO);
+        return RespDTO.onSuc(data);
+    }
 }

+ 23 - 0
triage-service/src/main/java/com/diagbot/client/TranServiceClient.java

@@ -0,0 +1,23 @@
+package com.diagbot.client;
+
+import com.diagbot.client.hystrix.TranServiceHystrix;
+import com.diagbot.dto.HospitalDeptDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.vo.HospitalDeptVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/8/20 10:12
+ */
+@FeignClient(value = "tran-service", fallback = TranServiceHystrix.class)
+public interface TranServiceClient {
+    @PostMapping(value = "/hospitalDeptInfo/hospitalDeptByConceptNames")
+    RespDTO<Map<String, List<HospitalDeptDTO>>> hospitalDeptByConceptNames(@RequestBody HospitalDeptVO hospitalDeptVO);
+}

+ 9 - 24
triage-service/src/main/java/com/diagbot/client/bean/FeatureRate.java

@@ -1,34 +1,19 @@
 package com.diagbot.client.bean;
 
+import com.diagbot.dto.HospitalDeptDTO;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
 /**
  * Created by fyeman on 2018/1/17.
  */
+@Getter
+@Setter
 public class FeatureRate {
     private String featureName;
     private String extraProperty;
     private String rate;
-
-    public String getFeatureName() {
-        return featureName;
-    }
-
-    public void setFeatureName(String featureName) {
-        this.featureName = featureName;
-    }
-
-    public String getRate() {
-        return rate;
-    }
-
-    public void setRate(String rate) {
-        this.rate = rate;
-    }
-
-    public String getExtraProperty() {
-        return extraProperty;
-    }
-
-    public void setExtraProperty(String extraProperty) {
-        this.extraProperty = extraProperty;
-    }
+    private List<HospitalDeptDTO> hospitalDepts;
 }

+ 27 - 0
triage-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java

@@ -0,0 +1,27 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.HospitalDeptDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.vo.HospitalDeptVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/8/20 10:14
+ */
+@Component
+@Slf4j
+public class TranServiceHystrix implements TranServiceClient {
+    @Override
+    public RespDTO<Map<String, List<HospitalDeptDTO>>> hospitalDeptByConceptNames(@RequestBody HospitalDeptVO hospitalDeptVO) {
+        log.error("【hystrix】调用{}异常", "hospitalDeptByConceptNames");
+        return null;
+    }
+}

+ 33 - 0
triage-service/src/main/java/com/diagbot/dto/HospitalDeptDTO.java

@@ -0,0 +1,33 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/8/19 16:45
+ */
+@Getter
+@Setter
+public class HospitalDeptDTO {
+    /**
+     * 医院科室编码(科室ID)
+     */
+    private String hospitalDeptCode;
+
+    /**
+     * 医院科室名称
+     */
+    private String hospitalDeptName;
+
+    /**
+     * 医院编码(医院ID)
+     */
+    private String hospitalCode;
+
+    /**
+     * 医院名称
+     */
+    private String hospitalName;
+}

+ 20 - 4
triage-service/src/main/java/com/diagbot/facade/AIFacade.java

@@ -1,10 +1,12 @@
 package com.diagbot.facade;
 
 import com.diagbot.client.AiptServiceClient;
+import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.bean.FeatureRate;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.bean.SearchData;
 import com.diagbot.dto.AIDTO;
+import com.diagbot.dto.HospitalDeptDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
@@ -12,6 +14,7 @@ import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.AIVO;
+import com.diagbot.vo.HospitalDeptVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -21,6 +24,7 @@ import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 调用AI服务业务实现
@@ -31,6 +35,8 @@ import java.util.Map;
 public class AIFacade {
     @Autowired
     private AiptServiceClient aiptServiceClient;
+    @Autowired
+    private TranServiceClient tranServiceClient;
 
     /**
      * 调用ai接口业务逻辑
@@ -110,12 +116,22 @@ public class AIFacade {
                         items.add(item);
                     }
                 }
-                //                if (ListUtil.isEmpty(items)){
-                //                    throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "暂时无法推理出结果");
-                //                }
+                //获取对接科室
+                if (ListUtil.isNotEmpty(items)) {
+                    HospitalDeptVO hospitalDeptVO = new HospitalDeptVO();
+                    hospitalDeptVO.setHospitalCode(aivo.getHospitalCode());
+                    hospitalDeptVO.setConceptNames(items.stream().map(i -> i.getExtraProperty()).collect(Collectors.toList()));
+                    RespDTO<Map<String, List<HospitalDeptDTO>>> retDeptMap = tranServiceClient.hospitalDeptByConceptNames(hospitalDeptVO);
+                    if (RespDTOUtil.respIsOK(retDeptMap)) {
+                        Map<String, List<HospitalDeptDTO>> deptMap = retDeptMap.data;
+                        for (FeatureRate item : items) {
+                            item.setHospitalDepts(deptMap.get(item.getExtraProperty()));
+                        }
+                    }
+                }
                 aidto.setItems(items);
                 break;
         }
         return aidto;
     }
-}
+}

+ 2 - 0
triage-service/src/main/java/com/diagbot/vo/AIVO.java

@@ -20,4 +20,6 @@ public class AIVO {
     private Integer sex;
     @NotBlank(message = "请输入症状")
     private String symptom;
+    @NotBlank(message = "请输入医院编码")
+    private String hospitalCode;
 }

+ 21 - 0
triage-service/src/main/java/com/diagbot/vo/HospitalDeptVO.java

@@ -0,0 +1,21 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/8/19 16:52
+ */
+@Getter
+@Setter
+public class HospitalDeptVO {
+    @NotNull(message = "请输入医院编码")
+    private String hospitalCode;
+    @NotNull(message = "请输入ICSS科室名称")
+    private List<String> conceptNames;
+}