瀏覽代碼

Merge remote-tracking branch 'origin/dev/mapping20210603' into dev/mapping20210603

zhaops 3 年之前
父節點
當前提交
66024e2d18

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

@@ -3,6 +3,7 @@ package com.diagbot.client;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.client.hystrix.CdssCoreHystrix;
 import com.diagbot.dto.ConceptDetailDTO;
+import com.diagbot.dto.ConceptScaleDTO;
 import com.diagbot.dto.DictionaryInfoDTO;
 import com.diagbot.dto.GetAllForRelationDTO;
 import com.diagbot.dto.IndexBatchDTO;
@@ -125,11 +126,11 @@ public interface CdssCoreClient {
     /**
      * 根据名称和类型获取静态知识内容
      *
-     * @param staticKnowledgeVO
+     * @param scaleStaticAllVO
      * @return
      */
     @PostMapping("/kl/conceptStatic/getStaticKnowledge")
-    RespDTO<StaticKnowledgeDTO> getStaticKnowledge(@Valid @RequestBody StaticKnowledgeVO staticKnowledgeVO);
+    RespDTO<StaticKnowledgeDTO> getStaticKnowledge(@Valid @RequestBody ScaleStaticAllVO scaleStaticAllVO);
 
     /**
      * 分页查询
@@ -195,6 +196,15 @@ public interface CdssCoreClient {
     @PostMapping("/kl/conceptStatic/getDetailByConcept")
     RespDTO<Map<String, List<ConceptDetailDTO>>> getDetailByConcept(@Valid @RequestBody GetDetailVO getDetailVO);
 
+    /**
+     * 推理结果匹配量表
+     *
+     * @param getDetailVO
+     * @return
+     */
+    @PostMapping("/kl/conceptStatic/getScaleDetailByConcept")
+    RespDTO<Map<String, ConceptScaleDTO>> getScaleDetailByConcept(@RequestBody @Valid GetDetailVO getDetailVO);
+
     /**
      * 获取规则下拉菜单信息
      *

+ 15 - 2
src/main/java/com/diagbot/client/hystrix/CdssCoreHystrix.java

@@ -3,6 +3,7 @@ package com.diagbot.client.hystrix;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.client.CdssCoreClient;
 import com.diagbot.dto.ConceptDetailDTO;
+import com.diagbot.dto.ConceptScaleDTO;
 import com.diagbot.dto.DictionaryInfoDTO;
 import com.diagbot.dto.GetAllForRelationDTO;
 import com.diagbot.dto.IndexBatchDTO;
@@ -158,11 +159,11 @@ public class CdssCoreHystrix implements CdssCoreClient {
     /**
      * 根据名称和类型获取静态知识内容
      *
-     * @param staticKnowledgeVO
+     * @param scaleStaticAllVO
      * @return
      */
     @Override
-    public RespDTO<StaticKnowledgeDTO> getStaticKnowledge(@Valid @RequestBody StaticKnowledgeVO staticKnowledgeVO) {
+    public RespDTO<StaticKnowledgeDTO> getStaticKnowledge(@Valid @RequestBody ScaleStaticAllVO scaleStaticAllVO) {
         log.error("【hystrix】调用{}异常", "getStaticKnowledge");
         return null;
     }
@@ -251,6 +252,18 @@ public class CdssCoreHystrix implements CdssCoreClient {
         return null;
     }
 
+    /**
+     * 推理结果匹配量表
+     *
+     * @param getDetailVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, ConceptScaleDTO>> getScaleDetailByConcept(@RequestBody @Valid GetDetailVO getDetailVO) {
+        log.error("【hystrix】调用{}异常", "getScaleDetailByConcept");
+        return null;
+    }
+
     @Override
     public RespDTO<List<KlRuleMenuWrapper>> getMenus(KlRuleMenuVO klRuleMenuVO) {
         log.error("【hystrix】调用{}异常", "getMenus");

+ 17 - 0
src/main/java/com/diagbot/dto/ConceptScaleDTO.java

@@ -0,0 +1,17 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/5/12 13:50
+ */
+@Getter
+@Setter
+public class ConceptScaleDTO {
+    List<ConceptScaleSubDTO> scaleDetails;
+}

+ 107 - 0
src/main/java/com/diagbot/dto/ConceptScaleDetailDTO.java

@@ -0,0 +1,107 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/5/12 13:54
+ */
+@Getter
+@Setter
+public class ConceptScaleDetailDTO {
+    /**
+     * 下级
+     */
+    private List<ConceptScaleSubDTO> subList = new ArrayList<>();
+
+    private Long id;
+    /**
+     * -1:表示顶级,其他值表示上级id
+     */
+    private Long parentId;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 编码
+     */
+    private String ruleCode;
+
+    /**
+     * 扣分
+     */
+    private BigDecimal score;
+
+    /**
+     * 0表格1有分数2无分数
+     */
+    private Integer textType;
+
+    /**
+     * 结果类型(1算分;2显示选择结果)
+     */
+    private Integer resultType;
+
+    /**
+     * 选择类型(1单选2多选)
+     */
+    private Integer selectType;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+
+    /**
+     * 系数
+     */
+    private BigDecimal factor;
+
+    /**
+     * 常数
+     */
+    private BigDecimal constant;
+
+
+    /**
+     * 1:显示,0:不显示,2隐藏
+     */
+    private Integer status;
+
+    /**
+     * 组别互斥(同组互斥)
+     */
+    private Integer groupNum;
+
+    /**
+     * 结果
+     */
+    private String result;
+
+    /**
+     * 推送信息
+     */
+    private String pushInfo;
+
+    private Integer match ;
+}

+ 18 - 0
src/main/java/com/diagbot/dto/ConceptScaleSubDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/5/25 13:46
+ */
+@Getter
+@Setter
+public class ConceptScaleSubDTO {
+    private Integer groupNum;
+    private List<ConceptScaleDetailDTO> detailList;
+}

+ 1 - 1
src/main/java/com/diagbot/dto/PushBaseDTO.java

@@ -21,4 +21,4 @@ public class PushBaseDTO {
      * 是否有静态知识
      */
     private Integer hasInfo = 0;
-}
+}

+ 1 - 1
src/main/java/com/diagbot/dto/PushDTO.java

@@ -38,7 +38,7 @@ public class PushDTO {
     //一般治疗
     private List<TreatDTO> treat = new ArrayList<>();
     //推送量表
-    private List<PushBaseDTO> scale = Lists.newArrayList();
+    private List<PushScaleDTO> scale = Lists.newArrayList();
 
     // 记录调试信息
     private Map<String, Object> debug = new LinkedHashMap<>();

+ 18 - 0
src/main/java/com/diagbot/dto/PushScaleDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/5/26 13:31
+ */
+@Getter
+@Setter
+public class PushScaleDTO extends PushBaseDTO {
+    /**
+     * 是否有评估量表
+     */
+    private Integer hasScale = 0;
+}

+ 5 - 0
src/main/java/com/diagbot/dto/StaticKnowledgeDTO.java

@@ -42,4 +42,9 @@ public class StaticKnowledgeDTO {
      * 静态知识明细
      */
     private Map<String, List<StaticKnowledgeDetailDTO>> details;
+
+    /**
+     * 量表结构
+     */
+    private ConceptScaleDTO scale;
 }

+ 24 - 1
src/main/java/com/diagbot/facade/KlConceptStaticFacade.java

@@ -20,6 +20,9 @@ import com.diagbot.vo.ChangeStatusVO;
 import com.diagbot.vo.IdVO;
 import com.diagbot.vo.KlConceptStaticPageVO;
 import com.diagbot.vo.KlConceptStaticVO;
+import com.diagbot.vo.PushJoinVO;
+import com.diagbot.vo.ScaleStaticAllVO;
+import com.diagbot.vo.SearchData;
 import com.diagbot.vo.StaticKnowledgeHISVO;
 import com.diagbot.vo.StaticKnowledgeIndexPageVO;
 import com.diagbot.vo.StaticKnowledgeIndexVO;
@@ -46,6 +49,10 @@ public class KlConceptStaticFacade {
     private ConceptInfoFacade conceptInfoFacade;
     @Autowired
     private SysUserFacade sysUserFacade;
+    @Autowired
+    MrFacade mrFacade;
+    @Autowired
+    private AssembleFacade assembleFacade;
 
 
     /**
@@ -76,7 +83,23 @@ public class KlConceptStaticFacade {
      * @return
      */
     public StaticKnowledgeDTO getStaticKnowledge(StaticKnowledgeVO staticKnowledgeVO) {
-        RespDTO<StaticKnowledgeDTO> respDTO = cdssCoreClient.getStaticKnowledge(staticKnowledgeVO);
+        ScaleStaticAllVO scaleStaticAllVO = new ScaleStaticAllVO();
+        if (staticKnowledgeVO.getType() == 8) {
+            PushJoinVO mr = mrFacade.getMr(staticKnowledgeVO.getMrId());
+            if (null != mr) {
+                SearchData searchData = new SearchData();
+                BeanUtil.copyProperties(mr, searchData);
+                //入参映射
+                searchData = assembleFacade.assembleData(searchData);
+                BeanUtil.copyProperties(searchData, scaleStaticAllVO);
+            } else {
+                scaleStaticAllVO.setHospitalId(-1L);
+            }
+        } else {
+            scaleStaticAllVO.setHospitalId(-1L);
+        }
+        BeanUtil.copyProperties(staticKnowledgeVO, scaleStaticAllVO);
+        RespDTO<StaticKnowledgeDTO> respDTO = cdssCoreClient.getStaticKnowledge(scaleStaticAllVO);
         if (RespDTOUtil.respIsOK(respDTO)) {
             StaticKnowledgeDTO staticKnowledgeDTO = respDTO.data;
             return staticKnowledgeDTO;

+ 19 - 3
src/main/java/com/diagbot/facade/PushFacade.java

@@ -3,6 +3,7 @@ package com.diagbot.facade;
 import com.diagbot.client.CdssCoreClient;
 import com.diagbot.dto.BillMsg;
 import com.diagbot.dto.ConceptDetailDTO;
+import com.diagbot.dto.ConceptScaleDTO;
 import com.diagbot.dto.DictionaryInfoDTO;
 import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.PushBaseDTO;
@@ -21,7 +22,6 @@ import com.diagbot.vo.PushPlanVO;
 import com.diagbot.vo.PushVO;
 import com.diagbot.vo.SearchData;
 import com.google.common.collect.Lists;
-import org.apache.commons.collections4.ListUtils;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -45,8 +45,6 @@ public class PushFacade {
     @Autowired
     private CdssCoreClient cdssCoreClient;
     @Autowired
-    private ConceptInfoFacade conceptInfoFacade;
-    @Autowired
     private DictionaryFacade dictionaryFacade;
     @Autowired
     MrFacade mrFacade;
@@ -243,6 +241,24 @@ public class PushFacade {
                 });
             }
         }
+
+        //量表
+        if (ListUtil.isNotEmpty(pushDTO.getScale())) {
+            GetDetailVO scaleDetailVO = new GetDetailVO();
+            scaleDetailVO.setNameList(pushDTO.getScale().stream().map(PushBaseDTO::getName).distinct().collect(Collectors.toList()));
+            RespDTO<Map<String, ConceptScaleDTO>> respDTO = cdssCoreClient.getScaleDetailByConcept(scaleDetailVO);
+            if (RespDTOUtil.respIsOK(respDTO)) {
+                Map<String, ConceptScaleDTO> conceptScaleMap = respDTO.data;
+                if (ListUtil.isNotEmpty(pushDTO.getScale())) {
+                    pushDTO.getScale().forEach(item -> {
+                        if (conceptScaleMap.containsKey(item.getName() + "_" + dicStaticTypeValNameMap.get("8"))
+                                && conceptScaleMap.get(item.getName() + "_" + dicStaticTypeValNameMap.get("8")) != null) {
+                            item.setHasScale(1);
+                        }
+                    });
+                }
+            }
+        }
         return pushDTO;
     }
 

+ 32 - 0
src/main/java/com/diagbot/vo/ScaleStaticAllVO.java

@@ -0,0 +1,32 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-06-18 10:58
+ */
+@Setter
+@Getter
+public class ScaleStaticAllVO extends ScaleVO{
+    /**
+     * 标准术语名称
+     */
+    private String name;
+    /**
+     * 术语类型
+     */
+    @NotNull(message = "请输入术语类型:1-诊断、2-药品、3-检验套餐、4-检验细项、5-检查、6-检查子项、7-手术和操作")
+    private Integer type;
+    /**
+     * 内容类型:1-化验、辅检、手术和操作、诊断、药品静态信息,2-注意事项,3-临床路径,4-治疗方案
+     */
+    private List<Integer> contentTypes;
+
+    private String mrId;
+}

+ 18 - 0
src/main/java/com/diagbot/vo/ScaleVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description:量表规则入参
+ * @Author:zhoutg
+ * @time: 2020/7/29 15:34
+ */
+@Data
+public class ScaleVO extends SearchData {
+
+    // 量表规则列表
+    private List<String> codeList = new ArrayList<>();
+}

+ 2 - 0
src/main/java/com/diagbot/vo/StaticKnowledgeVO.java

@@ -28,4 +28,6 @@ public class StaticKnowledgeVO {
      * 内容类型:1-化验、辅检、手术和操作、诊断、药品静态信息,2-注意事项,3-临床路径,4-治疗方案
      */
     private List<Integer> contentTypes;
+
+    private String mrId;
 }