Bladeren bron

非官方医院化验小项取得医学标准术语最大的范围值

gaodm 4 jaren geleden
bovenliggende
commit
4882730bec

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

@@ -9,6 +9,7 @@ import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.KlConceptStaticDTO;
 import com.diagbot.dto.KlRuleByIdParDTO;
 import com.diagbot.dto.KlRuleInfoDTO;
+import com.diagbot.dto.KllisDetailDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushPlanDTO;
 import com.diagbot.dto.RespDTO;
@@ -82,6 +83,16 @@ public interface CdssCoreClient {
     @PostMapping("/retrieval/getConceptNames")
     RespDTO<List<String>> getConceptNames(@Valid @RequestBody ConceptVO conceptVO);
 
+
+    /**
+     * 化验小项术语批量查询获取范围
+     *
+     * @param kllisDetailVO
+     * @return
+     */
+    @PostMapping("/retrieval/getLisDetaisByNames")
+    RespDTO<Map<String, KllisDetailDTO>> getLisDetaisByNames(@RequestBody KllisDetailVO kllisDetailVO);
+
     /**
      * 取上级静态知识
      *

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

@@ -9,6 +9,7 @@ import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.KlConceptStaticDTO;
 import com.diagbot.dto.KlRuleByIdParDTO;
 import com.diagbot.dto.KlRuleInfoDTO;
+import com.diagbot.dto.KllisDetailDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushPlanDTO;
 import com.diagbot.dto.RespDTO;
@@ -104,6 +105,18 @@ public class CdssCoreHystrix implements CdssCoreClient {
         return null;
     }
 
+    /**
+     * 化验小项术语批量查询获取范围
+     *
+     * @param kllisDetailVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, KllisDetailDTO>> getLisDetaisByNames(@RequestBody KllisDetailVO kllisDetailVO) {
+        log.error("【hystrix】调用{}异常", "getConceptNames");
+        return null;
+    }
+
     /**
      * 取上级静态知识
      *

+ 38 - 0
src/main/java/com/diagbot/dto/KllisDetailDTO.java

@@ -0,0 +1,38 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/4/16 14:34
+ */
+@Getter
+@Setter
+public class KllisDetailDTO {
+    /**
+     * 名称
+     */
+    private String libName;
+    /**
+     * 编号
+     */
+    private Long id;
+    /**
+     * 下限
+     */
+    private Double minValue;
+    /**
+     * 上限
+     */
+    private Double maxValue;
+    /**
+     * 单位
+     */
+    private String unit;
+    /**
+     * 参考范围:0-范围内,1-范围外
+     */
+    private Integer type;
+}

+ 24 - 5
src/main/java/com/diagbot/facade/LisConfigFacade.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.CdssCoreClient;
+import com.diagbot.dto.KllisDetailDTO;
 import com.diagbot.dto.LisDetailDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.LisConfig;
@@ -22,6 +23,7 @@ import com.diagbot.util.SysUserUtils;
 import com.diagbot.vo.ConceptVO;
 import com.diagbot.vo.IdListVO;
 import com.diagbot.vo.IdVO;
+import com.diagbot.vo.KllisDetailVO;
 import com.diagbot.vo.LisConfigListVO;
 import com.diagbot.vo.LisConfigPageVO;
 import com.diagbot.vo.RetrievalVO;
@@ -597,11 +599,28 @@ public class LisConfigFacade {
     public List<LisDetailDTO> getLis(RetrievalVO retrievalVO) {
         List<LisDetailDTO> lisDetailNames = new ArrayList<>();
         List<LisConfig> records = lisConfigService.getLisIndex(retrievalVO);
-        for (LisConfig lisConfig : records) {
-            LisDetailDTO lisDetailDTO = new LisDetailDTO();
-            lisDetailDTO.setName(lisConfig.getHisName());
-            lisDetailDTO.setUniqueName(lisConfig.getHisDetailName());
-            lisDetailNames.add(lisDetailDTO);
+        if (ListUtil.isNotEmpty(records)) {
+            List<String> names = records.stream().map(LisConfig::getUniqueName).distinct().collect(Collectors.toList());
+            KllisDetailVO kllisDetailVO = new KllisDetailVO();
+            kllisDetailVO.setNames(names);
+            RespDTO<Map<String, KllisDetailDTO>> respDTO = cdssCoreClient.getLisDetaisByNames(kllisDetailVO);
+            Map<String, KllisDetailDTO> map = new HashMap<>();
+            if (null != respDTO && null != respDTO.data) {
+                map = respDTO.data;
+            }
+            for (LisConfig lisConfig : records) {
+                LisDetailDTO lisDetailDTO = new LisDetailDTO();
+                lisDetailDTO.setName(lisConfig.getHisName());
+                lisDetailDTO.setUniqueName(lisConfig.getHisDetailName());
+                if (null != map.get(lisConfig.getUniqueName())) {
+                    KllisDetailDTO kllisDetailDTO =  map.get(lisConfig.getUniqueName());
+                    lisDetailDTO.setMaxValue(kllisDetailDTO.getMaxValue());
+                    lisDetailDTO.setMinValue(kllisDetailDTO.getMinValue());
+                    lisDetailDTO.setUnits(kllisDetailDTO.getUnit());
+                    lisDetailDTO.setRange(kllisDetailDTO.getType());
+                }
+                lisDetailNames.add(lisDetailDTO);
+            }
         }
         return lisDetailNames;
     }

+ 20 - 0
src/main/java/com/diagbot/vo/KllisDetailVO.java

@@ -0,0 +1,20 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/4/16 14:38
+ */
+@Getter
+@Setter
+public class KllisDetailVO {
+    /**
+     * 名称
+     */
+    private List<String> names;
+}

+ 9 - 5
src/main/resources/mapper/LisConfigMapper.xml

@@ -91,10 +91,10 @@
 
     <select id="getLisIndex" resultType="com.diagbot.entity.LisConfig"
             parameterType="com.diagbot.vo.RetrievalVO">
-        SELECT DISTINCT u.his_name,u.his_detail_name
+        SELECT DISTINCT u.his_name,u.his_detail_name,max(u.unique_name) as unique_name
         FROM(
         SELECT
-        DISTINCT his_name,his_detail_name
+        DISTINCT his_name,his_detail_name,unique_name
         FROM
         `tran_lis_config`
         WHERE
@@ -107,7 +107,7 @@
         </if>
         UNION
         SELECT
-        DISTINCT his_name,his_detail_name
+        DISTINCT his_name,his_detail_name,unique_name
         FROM
         `tran_lis_config`
         WHERE
@@ -120,7 +120,7 @@
         </if>
         UNION
         SELECT
-        DISTINCT his_name,his_detail_name
+        DISTINCT his_name,his_detail_name,unique_name
         FROM
         `tran_lis_config`
         WHERE
@@ -131,6 +131,10 @@
         <if test="inputStr!=null and inputStr!=''">
             and his_detail_name like concat("%",#{inputStr},"%")
         </if>
-        ) u LIMIT 100
+        ) u
+        GROUP BY
+        u.his_name,
+        u.his_detail_name
+        LIMIT 100
     </select>
 </mapper>