Browse Source

推理-开单合理项

zhaops 4 years ago
parent
commit
a2a6ee97be

+ 9 - 0
src/main/java/com/diagbot/client/CdssCoreClient.java

@@ -1,7 +1,14 @@
 package com.diagbot.client;
 
 import com.diagbot.client.hystrix.CdssCoreHystrix;
+import com.diagbot.dto.IndicationDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.vo.IndicationPushVO;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.validation.Valid;
 
 /**
  * @Description: CDSS核心类客户端
@@ -11,6 +18,8 @@ import org.springframework.cloud.openfeign.FeignClient;
 @FeignClient(name = "cdss-core", url = "${cdss-core.url}", fallback = CdssCoreHystrix.class)
 public interface CdssCoreClient {
 
+    @PostMapping("/core/indication")
+    RespDTO<IndicationDTO> indication(@Valid @RequestBody IndicationPushVO indicationPushVO);
 }
 
 

+ 12 - 0
src/main/java/com/diagbot/client/hystrix/CdssCoreHystrix.java

@@ -1,8 +1,14 @@
 package com.diagbot.client.hystrix;
 
 import com.diagbot.client.CdssCoreClient;
+import com.diagbot.dto.IndicationDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.vo.IndicationPushVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.validation.Valid;
 
 /**
  * @Description: 病历质控客户端(请求失败熔断)
@@ -12,4 +18,10 @@ import org.springframework.stereotype.Component;
 @Component
 @Slf4j
 public class CdssCoreHystrix implements CdssCoreClient {
+
+    @Override
+    public RespDTO<IndicationDTO> indication(@Valid @RequestBody IndicationPushVO indicationPushVO) {
+        log.error("【hystrix】调用{}异常", "indication");
+        return null;
+    }
 }

+ 23 - 0
src/main/java/com/diagbot/dto/BillMsg.java

@@ -0,0 +1,23 @@
+package com.diagbot.dto;
+
+import lombok.Data;
+
+/**
+ * @description: 开单合理性提示语
+ * @author: zhoutg
+ * @time: 2020/7/29 9:57
+ */
+@Data
+public class BillMsg {
+
+    // 提示信息
+    private String msg;
+    // 开单名称
+    private String orderName;
+    // 开单标准名称
+    private String orderStandName;
+    // 匹配名称
+    private String compareName;
+    // 匹配标准名称
+    private String compareStandName;
+}

+ 19 - 0
src/main/java/com/diagbot/dto/IndicationDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @description: 提示信息出参
+ * @author: zhoutg
+ * @time: 2020/7/29 9:57
+ */
+@Data
+public class IndicationDTO {
+
+    // 开单合理性提示信息
+    private List<BillMsg> billMsgList = new ArrayList<>();
+
+}

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

@@ -1,6 +1,10 @@
 package com.diagbot.facade;
 
+import com.diagbot.client.CdssCoreClient;
+import com.diagbot.dto.IndicationDTO;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.RespDTOUtil;
 import com.diagbot.vo.IndicationPushVO;
 import com.diagbot.vo.PushVO;
 import com.diagbot.vo.SearchData;
@@ -16,6 +20,8 @@ import org.springframework.stereotype.Component;
 public class PushFacade {
     @Autowired
     private AssembleFacade assembleFacade;
+    @Autowired
+    private CdssCoreClient cdssCoreClient;
 
     /**
      * 基础推理
@@ -34,10 +40,13 @@ public class PushFacade {
      *
      * @param indicationPushVO
      */
-    public void indicationPush(IndicationPushVO indicationPushVO) {
+    public IndicationDTO indicationPush(IndicationPushVO indicationPushVO) {
         SearchData searchData = new SearchData();
         BeanUtil.copyProperties(indicationPushVO, searchData);
         searchData = assembleFacade.assembleData(searchData);
         BeanUtil.copyProperties(searchData, indicationPushVO);
+        RespDTO<IndicationDTO> resp = cdssCoreClient.indication(indicationPushVO);
+        RespDTOUtil.respNGDealCover(resp, "远程调用推理接口失败");
+        return resp.data;
     }
 }

+ 37 - 0
src/main/java/com/diagbot/web/PushController.java

@@ -0,0 +1,37 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.IndicationDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.PushFacade;
+import com.diagbot.vo.IndicationPushVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/8/6 9:49
+ */
+@RestController
+@RequestMapping("/push")
+@Api(value = "推理相关API", tags = { "推理相关API" })
+public class PushController {
+    @Autowired
+    private PushFacade pushFacade;
+
+    @ApiOperation(value = "开单合理项推理[by:zhaops]", notes = "")
+    @PostMapping("/indicationPush")
+    @SysLogger("indicationPush")
+    public RespDTO<IndicationDTO> indicationPush(@RequestBody @Valid IndicationPushVO indicationPushVO) {
+        IndicationDTO data = pushFacade.indicationPush(indicationPushVO);
+        return RespDTO.onSuc(data);
+    }
+}