Browse Source

添加症状特征缓存

kongwz 4 years ago
parent
commit
126f50e970

+ 3 - 0
src/main/java/com/diagbot/config/CacheDeleteInit.java

@@ -38,6 +38,9 @@ public class CacheDeleteInit implements CommandLineRunner {
         cacheFacade.getVitalCache();
         log.info("CDSS-CORE服务启动加载图谱体征缓存成功!");
 
+        cacheFacade.getSymptomFeatureCache();
+        log.info("CDSS-CORE服务启动加载症状特征缓存成功!");
+
         cacheFacade.loadDiseaseTypeCache();
         log.info("CDSS-CORE服务启动加载疾病属性(性别、年龄、发病率)缓存成功!");
 

+ 86 - 0
src/main/java/com/diagbot/entity/SymptomFeature.java

@@ -0,0 +1,86 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-06
+ */
+@Data
+public class SymptomFeature implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 最小组合单元
+     */
+    private String minCombineElement;
+
+    /**
+     * 部位
+     */
+    private String bodyPart;
+
+    /**
+     * 方位
+     */
+    private String position;
+
+    /**
+     * 形状性质
+     */
+    private String shapePropety;
+
+    /**
+     * 程度
+     */
+    private String degree;
+
+    /**
+     * 颜色
+     */
+    private String color;
+
+    /**
+     * 变化
+     */
+    private String variety;
+
+    /**
+     * 放射情况
+     */
+    private String radiationSituation;
+
+    /**
+     * 频率
+     */
+    private String frequency;
+
+}

+ 1 - 0
src/main/java/com/diagbot/enums/RedisEnum.java

@@ -15,6 +15,7 @@ public enum RedisEnum implements KeyedNamed {
     symptomVitalType(3, "symptomVitalType:"),
     symptomNumType(4, "symptomNumType:"),
     vitalType(5, "vitalType:"),
+    symptomFeature(6, "symptomFeature:"),
     diseaseType(2, "diseaseType:");
 
     @Setter

+ 10 - 0
src/main/java/com/diagbot/facade/CacheFacade.java

@@ -99,6 +99,16 @@ public class CacheFacade {
 
     }
 
+    /**
+     * 加载数据库中症状特征缓存
+     *
+     * @return
+     */
+    public void getSymptomFeatureCache() {
+        redisUtil.deleteByPrex(RedisEnum.symptomFeature.getName());
+        neoFacade.symptomFeatureCache();
+    }
+
     /**
      * 加载图谱中的疾病对应的症状个数
      *

+ 27 - 0
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -8,6 +8,7 @@ import com.diagbot.client.StandConvertServiceClient;
 import com.diagbot.dto.*;
 import com.diagbot.entity.DiseaseInfo;
 import com.diagbot.entity.DiseaseProperty;
+import com.diagbot.entity.SymptomFeature;
 import com.diagbot.entity.SymptomNumOfDiS;
 import com.diagbot.entity.node.LisRemind;
 import com.diagbot.entity.relationship.LisRemindGroup;
@@ -17,6 +18,7 @@ import com.diagbot.enums.RedisEnum;
 import com.diagbot.enums.StandConvertEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.mapper.SymptomFeatureMapper;
 import com.diagbot.model.entity.PD;
 import com.diagbot.repository.*;
 import com.diagbot.util.ListUtil;
@@ -104,6 +106,8 @@ public class NeoFacade {
     PacsRemindRepository pacsRemindRepository;
     @Autowired
     PacsResultRepository pacsResultRepository;
+    @Autowired
+    SymptomFeatureMapper symptomFeatureMapper;
 
     /**
      * 返回药品缓存信息
@@ -189,6 +193,29 @@ public class NeoFacade {
         }
     }
 
+    public void symptomFeatureCache() {
+        List<SymptomFeature> symptomFeatures = symptomFeatureMapper.selectList(null);
+        if(ListUtil.isNotEmpty(symptomFeatures)){
+            Map map = symptomFeatures.stream().collect(Collectors.toMap(
+                    k -> RedisEnum.symptomFeature.getName() + k.getMinCombineElement(),
+                    v -> {
+                        Map<String, String> desc = new HashMap<>();
+                        desc.put("bodyPart", v.getBodyPart());
+                        desc.put("change", v.getVariety());
+                        desc.put("color", v.getColor());
+                        desc.put("degree", v.getDegree());
+                        desc.put("frequency", v.getFrequency());
+                        desc.put("position", v.getPosition());
+                        desc.put("radiationSituation", v.getRadiationSituation());
+                        desc.put("shapePropety", v.getShapePropety());
+                        return desc;
+                    },
+                    (v1, v2) -> (v2)
+            ));
+            redisTemplate.opsForValue().multiSet(map);
+        }
+    }
+
     public void symptomNumCache() {
         List<SymptomNumOfDiS> diseaseProperty = nodeRepository.getSymptomNum();
         if (ListUtil.isNotEmpty(diseaseProperty)) {

+ 16 - 0
src/main/java/com/diagbot/mapper/SymptomFeatureMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.SymptomFeature;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-06
+ */
+public interface SymptomFeatureMapper extends BaseMapper<SymptomFeature> {
+
+}

+ 16 - 0
src/main/java/com/diagbot/service/SymptomFeatureService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.SymptomFeature;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-06
+ */
+public interface SymptomFeatureService extends IService<SymptomFeature> {
+
+}

+ 20 - 0
src/main/java/com/diagbot/service/impl/SymptomFeatureServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.SymptomFeature;
+import com.diagbot.mapper.SymptomFeatureMapper;
+import com.diagbot.service.SymptomFeatureService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-06
+ */
+@Service
+public class SymptomFeatureServiceImpl extends ServiceImpl<SymptomFeatureMapper, SymptomFeature> implements SymptomFeatureService {
+
+}

+ 1 - 0
src/main/java/com/diagbot/web/CacheController.java

@@ -38,6 +38,7 @@ public class CacheController {
         cacheFacade.getSymptomCache();
         cacheFacade.getVitalCache();
         cacheFacade.getSymptomNumCache();
+        cacheFacade.getSymptomFeatureCache();
         return RespDTO.onSuc(true);
     }
 

+ 22 - 0
src/main/resources/mapper/SymptomFeatureMapper.xml

@@ -0,0 +1,22 @@
+<?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">
+<mapper namespace="com.diagbot.mapper.SymptomFeatureMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.SymptomFeature">
+        <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="min_combine_element" property="minCombineElement" />
+        <result column="body_part" property="bodyPart" />
+        <result column="position" property="position" />
+        <result column="shape_propety" property="shapePropety" />
+        <result column="degree" property="degree" />
+        <result column="color" property="color" />
+        <result column="change" property="change" />
+        <result column="radiation_situation" property="radiationSituation" />
+        <result column="frequency" property="frequency" />
+    </resultMap>
+
+</mapper>