浏览代码

Merge remote-tracking branch 'origin/dev/newDiagMode20220316' into debug

zhaops 3 年之前
父节点
当前提交
4d4e5ea564

+ 4 - 2
src/main/java/com/diagbot/client/CdssCoreClient.java

@@ -1,6 +1,5 @@
 package com.diagbot.client;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.client.hystrix.CdssCoreHystrix;
 import com.diagbot.dto.*;
@@ -28,6 +27,9 @@ public interface CdssCoreClient {
     @PostMapping("/core/push")
     RespDTO<PushDTO> push(@RequestBody @Valid PushVO pushVo);
 
+    @PostMapping("/core/pushByDisease")
+    RespDTO<PushExtDTO> pushByDisease(@RequestBody @Valid PushVO pushVo);
+
     /**
      * 推送持续检验检查计划
      */
@@ -259,4 +261,4 @@ public interface CdssCoreClient {
     //根据录入内容查询有效规则的明细
     @PostMapping("/klRule/getRuleDetail")
     RespDTO<RuleDTO> getRuleDetail(@RequestBody @Valid RuleQueryKeyVO ruleQueryKeyVO);
-}
+}

+ 6 - 1
src/main/java/com/diagbot/client/hystrix/CdssCoreHystrix.java

@@ -1,6 +1,5 @@
 package com.diagbot.client.hystrix;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.client.CdssCoreClient;
 import com.diagbot.dto.*;
@@ -35,6 +34,12 @@ public class CdssCoreHystrix implements CdssCoreClient {
         return null;
     }
 
+    @Override
+    public RespDTO<PushExtDTO> pushByDisease(@RequestBody @Valid PushVO pushVo) {
+        log.error("【hystrix】调用{}异常", "pushByDisease");
+        return null;
+    }
+
     /**
      * 推送持续检验检查计划
      */

+ 1 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -78,6 +78,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/sys/tokenPermission/delPermission").permitAll()
                 .antMatchers("/sys/tokenPermission/getPermission").permitAll()
                 .antMatchers("/sys/push/push").permitAll()
+                .antMatchers("/sys/push/pushByDisease").permitAll()
                 .antMatchers("/sys/push/pushApi").permitAll()
                 .antMatchers("/sys/push/indicationPush").permitAll()
                 .antMatchers("/sys/push/indicationExtPush").permitAll()

+ 1 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -121,6 +121,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/sys/tokenPermission/delPermission", request)
                 || matchers("/sys/tokenPermission/getPermission", request)
                 || matchers("/sys/push/push", request)
+                || matchers("/sys/push/pushByDisease", request)
                 || matchers("/sys/push/pushApi", request)
                 || matchers("/sys/push/indicationPush", request)
                 || matchers("/sys/push/indicationExtPush", request)

+ 12 - 0
src/main/java/com/diagbot/dto/PushExtDTO.java

@@ -0,0 +1,12 @@
+package com.diagbot.dto;
+
+import lombok.Data;
+
+/**
+ * @description: 推送扩展类
+ * @author: zhoutg
+ * @date: 2022/3/21 9:33
+ */
+@Data
+public class PushExtDTO extends PushDTO {
+}

+ 46 - 4
src/main/java/com/diagbot/facade/PushFacade.java

@@ -1,6 +1,5 @@
 package com.diagbot.facade;
 
-import com.diagbot.biz.push.entity.Item;
 import com.diagbot.client.CdssCoreClient;
 import com.diagbot.dto.BillMsg;
 import com.diagbot.dto.ConceptDetailDTO;
@@ -9,6 +8,7 @@ import com.diagbot.dto.DictionaryInfoDTO;
 import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.PushBaseDTO;
 import com.diagbot.dto.PushDTO;
+import com.diagbot.dto.PushExtDTO;
 import com.diagbot.dto.PushPlanDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.TreatDTO;
@@ -30,10 +30,8 @@ import org.springframework.stereotype.Component;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -122,7 +120,7 @@ public class PushFacade {
         if (indicationDTO != null) {
             if (ListUtil.isNotEmpty(indicationDTO.getBillMsgList()) || ListUtil.isNotEmpty(indicationDTO.getHighRiskList())
                     || ListUtil.isNotEmpty(indicationDTO.getCriticalValList()) || ListUtil.isNotEmpty(indicationDTO.getOtherList()))
-            return mrFacade.createIndicationMr(indicationDTO);
+                return mrFacade.createIndicationMr(indicationDTO);
         }
         return "";
     }
@@ -145,6 +143,50 @@ public class PushFacade {
         return pushPlanDTO;
     }
 
+    /**
+     * 点击诊断推送
+     *
+     * @param pushVO
+     * @return
+     */
+    public PushExtDTO pushByDisease(PushVO pushVO) {
+        List<String> featureTypes = StringUtil.isNotBlank(pushVO.getFeatureType())
+                ? Arrays.asList(pushVO.getFeatureType().split(","))
+                : Lists.newArrayList();
+
+        if (pushVO.getDiseaseName() != null
+                && StringUtil.isBlank(pushVO.getDiseaseName().getName())
+                && StringUtil.isBlank(pushVO.getDiseaseName().getUniqueName())) {
+            pushVO.setDiseaseName(null);
+        }
+        SearchData searchData = new SearchData();
+        BeanUtil.copyProperties(pushVO, searchData);
+        //入参映射
+        searchData = assembleFacade.assembleData(searchData);
+        BeanUtil.copyProperties(searchData, pushVO);
+        RespDTO<PushExtDTO> resp = cdssCoreClient.pushByDisease(pushVO);
+        RespDTOUtil.respNGDeal(resp, "远程调用推理接口失败");
+        PushExtDTO data = resp.data;
+        PushDTO pushDTO = new PushDTO();
+        BeanUtil.copyProperties(data, pushDTO);
+
+        //出参映射
+        pushDTO = assembleFacade.assemblePushDTO(pushDTO, pushVO.getHospitalId());
+        //是否有静态信息
+        if (pushVO.getGetStaticKnowledge() != null
+                && pushVO.getGetStaticKnowledge().equals(1)) {
+            pushDTO = getStaticKnoledge(pushDTO);
+        }
+        //一般治疗
+        if (data != null) {
+            if (ListUtil.isNotEmpty(featureTypes) && featureTypes.contains("10")) {
+                data.setTreat(retGeneraTreat(data, pushVO.getHospitalId()));
+            }
+        }
+        BeanUtil.copyProperties(pushDTO, data);
+        return data;
+    }
+
     /**
      * 推理结果标志是否包含静态知识
      *

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

@@ -4,6 +4,7 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.annotation.TokenAuth;
 import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.PushDTO;
+import com.diagbot.dto.PushExtDTO;
 import com.diagbot.dto.PushPlanDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.PushFacade;
@@ -83,4 +84,20 @@ public class PushController {
         PushPlanDTO pushPlanDTO = pushFacade.pushPlan(pushPlanVO);
         return RespDTO.onSuc(pushPlanDTO);
     }
+
+    @ApiOperation(value = "点击诊断推送API[zhoutg]", notes =
+            "diseaseName:点击诊断<br>" +
+                    "age:年龄<br>" +
+                    "sex:性别<br>" +
+                    "length:截取长度<br>" +
+                    "featureType 类型(多选必填),1:症状,4:查体结果,5:检验,6:检查," +
+                    "7:诊断,8:药品,9:手术,10:一般治疗, 12:量表,13:护理<br>" +
+                    "注意:11:管理评估,22:指标推送 这2个类型原5.0系统已占")
+    @PostMapping("/pushByDisease")
+    public RespDTO<PushExtDTO> pushByDisease(@RequestBody PushVO pushVO) {
+        pushVO.setGetStaticKnowledge(1);
+        PushExtDTO pushExtDTO = pushFacade.pushByDisease(pushVO);
+        return RespDTO.onSuc(pushExtDTO);
+    }
+
 }