浏览代码

所有药品分类已经所属的药品加载到换里面去

gaodm 4 年之前
父节点
当前提交
48ba1a84e2

+ 26 - 24
src/main/java/com/diagbot/config/CacheDeleteInit.java

@@ -29,35 +29,37 @@ public class CacheDeleteInit implements CommandLineRunner {
         cacheFacade.clear();
         log.info("CDSS-CORE服务启动清除redis缓存成功!");
 
-//        cacheFacade.loadDrugTypeCache();
-//        log.info("CDSS-CORE服务启动加载药品类型对应关系缓存成功!");
-//
-//        cacheFacade.getSymptomCache();
-//        log.info("CDSS-CORE服务启动加载图谱症状缓存成功!");
-//
-//        cacheFacade.getVitalCache();
-//        log.info("CDSS-CORE服务启动加载图谱体征缓存成功!");
-//
-//        cacheFacade.getSymptomFeatureCache();
-//        log.info("CDSS-CORE服务启动加载症状特征缓存成功!");
-//
-        cacheFacade.getDiseaseCorrespondCache();
-        log.info("CDSS-CORE服务启动加载疾病对应ICD10缓存成功!");
+        cacheFacade.loadDrugTypeCache();
+        log.info("CDSS-CORE服务启动加载药品类型对应关系缓存成功!");
+
+//        cacheFacade.getDiseaseCorrespondCache();
+//        log.info("CDSS-CORE服务启动加载疾病对应ICD10缓存成功!");
 //
 //        cacheFacade.getdiseaseFilterCache();
 //        log.info("CDSS-CORE服务启动加载疾病过滤缓存成功!");
 //
-//        cacheFacade.getSymptomMainCache();
-//        log.info("CDSS-CORE服务启动加载典型症状缓存成功!");
-//
-//        cacheFacade.loadDiseaseTypeCache();
-//        log.info("CDSS-CORE服务启动加载疾病属性(性别、年龄、发病率)缓存成功!");
+//        cacheFacade.loadAllRuleCache();
+//        log.info("CDSS-CORE服务启动加载医学知识库中的所有规则缓存成功!");
 //
-//        cacheFacade.getSymptomNumCache();
-//        log.info("CDSS-CORE服务启动加载疾病对应的症状个数缓存成功!");
-        cacheFacade.loadAllRuleCache();
-        log.info("CDSS-CORE服务启动加载医学知识库中的所有规则缓存成功!");
-
+        //无用的缓存
+        //
+        //        cacheFacade.getSymptomCache();
+        //        log.info("CDSS-CORE服务启动加载图谱症状缓存成功!");
+        //
+        //        cacheFacade.getVitalCache();
+        //        log.info("CDSS-CORE服务启动加载图谱体征缓存成功!");
+        //
+        //        cacheFacade.getSymptomFeatureCache();
+        //        log.info("CDSS-CORE服务启动加载症状特征缓存成功!");
+        //
+        //        cacheFacade.getSymptomMainCache();
+        //        log.info("CDSS-CORE服务启动加载典型症状缓存成功!");
+        //
+        //        cacheFacade.loadDiseaseTypeCache();
+        //        log.info("CDSS-CORE服务启动加载疾病属性(性别、年龄、发病率)缓存成功!");
+        //
+        //        cacheFacade.getSymptomNumCache();
+        //        log.info("CDSS-CORE服务启动加载疾病对应的症状个数缓存成功!");
 
         log.info("CDSS-CORE初始化完成!");
     }

+ 15 - 0
src/main/java/com/diagbot/dto/DrugNameDTO.java

@@ -0,0 +1,15 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/2/4 10:34
+ */
+@Getter
+@Setter
+public class DrugNameDTO {
+    private String drug;
+}

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

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/2/4 10:36
+ */
+@Getter
+@Setter
+public class DrugTypeCacheDTO {
+    private String drugType;
+    private List<String> drugs;
+}

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

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/2/4 9:55
+ */
+@Getter
+@Setter
+public class DrugTypeDTO {
+    private String drugType;
+    private List<DrugNameDTO> drugs;
+}

+ 1 - 0
src/main/java/com/diagbot/dto/RuleConditionDTO.java

@@ -16,5 +16,6 @@ import java.util.List;
 public class RuleConditionDTO {
     private Integer hasSubCond;
     private String ruleGroup;
+    private String msg;
     private List<RuleBaseDTO> ruleBaseDTOList = new ArrayList<>();
 }

+ 0 - 1
src/main/java/com/diagbot/dto/RuleDTO.java

@@ -17,6 +17,5 @@ public class RuleDTO {
     private String libName;
     private Integer libType;
     private Integer ruleType;
-    private String msg;
     private List<RuleConditionDTO> ruleConditionDTOList = new ArrayList<>();
 }

+ 39 - 29
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -8,6 +8,9 @@ import com.diagbot.client.ChiefPresentSimilarityServiceClient;
 import com.diagbot.client.StandConvertServiceClient;
 import com.diagbot.dto.BillNeoDTO;
 import com.diagbot.dto.CriticalNeoDTO;
+import com.diagbot.dto.DrugNameDTO;
+import com.diagbot.dto.DrugTypeCacheDTO;
+import com.diagbot.dto.DrugTypeDTO;
 import com.diagbot.dto.HighRiskNeoDTO;
 import com.diagbot.dto.NeoPushDTO;
 import com.diagbot.dto.NodeNeoDTO;
@@ -152,6 +155,8 @@ public class NeoFacade {
 
     @Autowired
     private KlRuleFacade klRuleFacade;
+    @Autowired
+    private KlRelationFacade klRelationFacade;
 
     /**
      * 返回药品缓存信息
@@ -159,38 +164,43 @@ public class NeoFacade {
      * @return
      */
     // @Cacheable(value = "cache", key = "'drugCache'")
-    public Map<String, List<String>> getDrugCache() {
-        Map<String, List<String>> res = new HashMap<>();
-
-        String med_type;
-        String med_name;
-        String comma = "::";
-
-        List<String> medClass = nodeRepository.getMedHuaXueClass();
-        medClass.addAll(nodeRepository.getMedYaoLiClass());
-        medClass.addAll(nodeRepository.getMedZhiLiaoClass());
-        medClass.addAll(nodeRepository.getMedJiePouClass());
-
-
-        for (String medcls : medClass) {
-            String[] spres = medcls.split(comma);
-            med_type = spres[1];
-            med_name = spres[0];
-
-            if (res.get(med_type) == null) {
-                res.put(med_type, new ArrayList<>());
-            }
-            if (res.get(med_type).indexOf(med_name) == -1) {
-                res.get(med_type).add(med_name);
-            }
+    public void getDrugCache() {
+        List<DrugTypeDTO> list = klRelationFacade.getDrugType();
+        List<DrugTypeCacheDTO> cacheDTOList = new ArrayList<>();
+        for (DrugTypeDTO drugTypeDTO : list) {
+            DrugTypeCacheDTO drugTypeCacheDTO = new DrugTypeCacheDTO();
+            drugTypeCacheDTO.setDrugType(drugTypeDTO.getDrugType());
+            drugTypeCacheDTO.setDrugs(drugTypeDTO.getDrugs().stream().map(DrugNameDTO::getDrug).collect(Collectors.toList()));
+            cacheDTOList.add(drugTypeCacheDTO);
         }
-        Map redisMap = res.entrySet().stream().collect(
-                Collectors.toMap(k -> RedisEnum.drugType.getName() + k.getKey(),
-                        v -> v.getValue(), (v1, v2) -> (v2)));
+        //        String med_type;
+        //        String med_name;
+        //        String comma = "::";
+        //
+        //        List<String> medClass = nodeRepository.getMedHuaXueClass();
+        //        medClass.addAll(nodeRepository.getMedYaoLiClass());
+        //        medClass.addAll(nodeRepository.getMedZhiLiaoClass());
+        //        medClass.addAll(nodeRepository.getMedJiePouClass());
+        //
+        //
+        //        for (String medcls : medClass) {
+        //            String[] spres = medcls.split(comma);
+        //            med_type = spres[1];
+        //            med_name = spres[0];
+        //
+        //            if (res.get(med_type) == null) {
+        //                res.put(med_type, new ArrayList<>());
+        //            }
+        //            if (res.get(med_type).indexOf(med_name) == -1) {
+        //                res.get(med_type).add(med_name);
+        //            }
+        //        }
+        Map redisMap = cacheDTOList.stream().collect(
+                Collectors.toMap(k -> RedisEnum.drugType.getName() + k.getDrugType(),
+                        v -> v.getDrugs(), (v1, v2) -> (v2)));
         if (redisMap != null && redisMap.size() > 0) {
             redisTemplate.opsForValue().multiSet(redisMap);
         }
-        return res;
     }
 
     public void diseasePropertyCache() {
@@ -1383,7 +1393,7 @@ public class NeoFacade {
      * 类型,疾病: disease,症状: symptom,手术和操作:operation,药品: drug,实验室检查:lis,辅助检查:pacs, 辅助检查:vital"
      *
      * @param standConvert
-     * @return Map<String ,   Map   <   String ,   String>> -->Map<类型, Map<原始词, 标准词>>
+     * @return Map<String       ,               Map               <               String       ,               String>> -->Map<类型, Map<原始词, 标准词>>
      */
     public Map<String, Map<String, String>> standConvertCrf(StandConvert standConvert) {
         Map<String, Map<String, String>> map = new LinkedHashMap<>();

+ 4 - 1
src/main/java/com/diagbot/mapper/KlRelationMapper.java

@@ -1,8 +1,11 @@
 package com.diagbot.mapper;
 
+import com.diagbot.dto.DrugTypeDTO;
 import com.diagbot.entity.KlRelation;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  * 术语关系表 Mapper 接口
@@ -12,5 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2021-01-21
  */
 public interface KlRelationMapper extends BaseMapper<KlRelation> {
-
+    List<DrugTypeDTO> getDrugType();
 }

+ 4 - 1
src/main/java/com/diagbot/service/KlRelationService.java

@@ -1,9 +1,12 @@
 package com.diagbot.service;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.diagbot.dto.DrugTypeDTO;
 import com.diagbot.entity.KlRelation;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  * 术语关系表 服务类
@@ -14,5 +17,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 @DS("med")
 public interface KlRelationService extends IService<KlRelation> {
-
+    List<DrugTypeDTO> getDrugType();
 }

+ 7 - 2
src/main/java/com/diagbot/service/impl/KlRelationServiceImpl.java

@@ -1,11 +1,14 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.DrugTypeDTO;
 import com.diagbot.entity.KlRelation;
 import com.diagbot.mapper.KlRelationMapper;
 import com.diagbot.service.KlRelationService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 术语关系表 服务实现类
@@ -16,5 +19,7 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class KlRelationServiceImpl extends ServiceImpl<KlRelationMapper, KlRelation> implements KlRelationService {
-
+    public List<DrugTypeDTO> getDrugType() {
+        return baseMapper.getDrugType();
+    }
 }

+ 10 - 8
src/main/java/com/diagbot/web/CacheController.java

@@ -34,14 +34,16 @@ public class CacheController {
     public RespDTO<Boolean> clear() {
         cacheFacade.clear();
         cacheFacade.loadDrugTypeCache();
-        cacheFacade.loadDiseaseTypeCache();
-        cacheFacade.getSymptomCache();
-        cacheFacade.getSymptomMainCache();
-        cacheFacade.getVitalCache();
-        cacheFacade.getSymptomNumCache();
-        cacheFacade.getSymptomFeatureCache();
-        cacheFacade.getDiseaseCorrespondCache();
-        cacheFacade.loadAllRuleCache();
+//        cacheFacade.getDiseaseCorrespondCache();
+//        cacheFacade.getdiseaseFilterCache();
+//        cacheFacade.loadAllRuleCache();
+        //无用的缓存
+//        cacheFacade.loadDiseaseTypeCache();
+//        cacheFacade.getSymptomCache();
+//        cacheFacade.getSymptomMainCache();
+//        cacheFacade.getVitalCache();
+//        cacheFacade.getSymptomNumCache();
+//        cacheFacade.getSymptomFeatureCache();
         return RespDTO.onSuc(true);
     }
 

+ 42 - 11
src/main/resources/mapper/KlRelationMapper.xml

@@ -1,19 +1,50 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.diagbot.mapper.KlRelationMapper">
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.diagbot.entity.KlRelation">
-        <id column="id" property="id" />
-        <result column="is_deleted" property="isDeleted" />
-        <result column="gmt_create" property="gmtCreate" />
-        <result column="gmt_modified" property="gmtModified" />
-        <result column="creator" property="creator" />
-        <result column="modifier" property="modifier" />
-        <result column="start_id" property="startId" />
-        <result column="relation_id" property="relationId" />
-        <result column="end_id" property="endId" />
-        <result column="status" property="status" />
+        <id column="id" property="id"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="gmt_create" property="gmtCreate"/>
+        <result column="gmt_modified" property="gmtModified"/>
+        <result column="creator" property="creator"/>
+        <result column="modifier" property="modifier"/>
+        <result column="start_id" property="startId"/>
+        <result column="relation_id" property="relationId"/>
+        <result column="end_id" property="endId"/>
+        <result column="status" property="status"/>
     </resultMap>
 
+    <resultMap id="DrugResultMap" type="com.diagbot.dto.DrugTypeDTO">
+        <result column="drugType" property="drugType"/>
+        <collection property="drugs" ofType="com.diagbot.dto.DrugNameDTO">
+            <result column="drug" property="drug"/>
+        </collection>
+    </resultMap>
+
+    <select id="getDrugType" resultMap="DrugResultMap">
+        SELECT
+            t1.lib_name AS drugType,
+            t3.lib_name AS drug
+        FROM
+            kl_concept t1,
+            kl_relation t2,
+            kl_concept t3
+        WHERE
+            t1.is_deleted = "N"
+        AND t2.is_deleted = "N"
+        AND t3.is_deleted = "N"
+        AND t1.lib_type IN (301, 302, 303, 304)
+        AND t3.lib_type = 101
+        AND t1.id = t2.start_id
+        AND t3.id = t2.end_id
+        AND t2.relation_id = 600
+        ORDER BY
+            t1.id,
+            t2.relation_id,
+            t3.id
+    </select>
+
 </mapper>

+ 1 - 1
src/main/resources/mapper/KlRuleMapper.xml

@@ -21,10 +21,10 @@
         <result column="libName" property="libName"/>
         <result column="libType" property="libType"/>
         <result column="ruleType" property="ruleType"/>
-        <result column="msg" property="msg"/>
         <collection property="ruleConditionDTOList" ofType="com.diagbot.dto.RuleConditionDTO">
             <result column="hasSubCond" property="hasSubCond"/>
             <result column="ruleGroup" property="ruleGroup"/>
+			<result column="msg" property="msg"/>
             <collection property="ruleBaseDTOList" ofType="com.diagbot.dto.RuleBaseDTO">
                 <result column="baseLibName" property="baseLibName"/>
                 <result column="baseLibType" property="baseLibType"/>