Kaynağa Gözat

症状扩展

zhoutg 4 yıl önce
ebeveyn
işleme
c206d31568

+ 113 - 0
cdssman-service/src/main/java/com/diagbot/entity/KlSymptom.java

@@ -0,0 +1,113 @@
+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 2021-05-12
+ */
+@Data
+public class KlSymptom 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;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 英文名称
+     */
+    private String enName;
+
+    /**
+     * 定义
+     */
+    private String definition;
+
+    /**
+     * 中西医症状(0:通用,1:西,2:中)
+     */
+    private Integer chWestern;
+
+    /**
+     * 缓解因素
+     */
+    private String mitigatingFac;
+
+    /**
+     * 加重因素
+     */
+    private String aggravateFac;
+
+    /**
+     * 症状起因
+     */
+    private String cause;
+
+    /**
+     * 常见疾病
+     */
+    private String commonDis;
+
+    /**
+     * 预防措施
+     */
+    private String preMeasures;
+
+    /**
+     * 饮食禁忌
+     */
+    private String foodProhibition;
+
+    /**
+     * 通俗解释
+     */
+    private String commonExplain;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 3 - 1
cdssman-service/src/main/java/com/diagbot/enums/RelationLibTypeEnum.java

@@ -23,7 +23,9 @@ public enum RelationLibTypeEnum implements KeyedNamed {
     disNurse(510,"123"),
     relationDept(511,"115"),
     relationPart(512,"122"),
-    relationSystem(513,"411");
+    relationSystem(513,"411"),
+    relationAccSymptom(514,"103"),
+    relationNature(515,"412");
 
 
     @Setter

+ 14 - 5
cdssman-service/src/main/java/com/diagbot/facade/KlConceptFacade.java

@@ -87,6 +87,8 @@ public class KlConceptFacade extends KlConceptServiceImpl {
     KlDiagnoseBaseFacade klDiagnoseBaseFacade;
     @Autowired
     KlDrugFacade klDrugFacade;
+    @Autowired
+    KlSymptomFacade klSymptomFacade;
 
 
     /**
@@ -300,12 +302,19 @@ public class KlConceptFacade extends KlConceptServiceImpl {
             }
         }
 
-        // 更新疾病扩展表 kl_disease
-        if (LexiconEnum.Disease.getKey() == klConceptSaveVO.getLibType().intValue()) {
-            res = klDiseaseFacade.saveAll(commonParam, klConceptSaveVO.getKlDiseaseVO());
-            klRelationFacade.saveKlDisease(commonParam, klConceptSaveVO.getKlDiseaseVO());
+        LexiconEnum lexiconEnum = LexiconEnum.getEnum(klConceptSaveVO.getLibType().intValue());
+        if (lexiconEnum != null) {
+            switch (lexiconEnum) {
+                case Disease: // 疾病扩展 kl_disease, kl_relation,kl_relation_order
+                    res = klDiseaseFacade.saveAll(commonParam, klConceptSaveVO.getKlDiseaseVO());
+                    klRelationFacade.saveKlDisease(commonParam, klConceptSaveVO.getKlDiseaseVO());
+                    break;
+                case Symptom: // 症状扩展 kl_symptom, kl_relation,kl_relation_order
+                    klSymptomFacade.saveAll(commonParam, klConceptSaveVO.getKlSymptomVO());
+                    klRelationFacade.saveKlSymptom(commonParam, klConceptSaveVO.getKlSymptomVO());
+                    break;
+            }
         }
-
         return res;
     }
 

+ 29 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlRelationFacade.java

@@ -14,6 +14,7 @@ import com.diagbot.service.impl.KlRelationServiceImpl;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.KlDiseaseVO;
+import com.diagbot.vo.KlSymptomVO;
 import com.diagbot.vo.RelationVO;
 import com.diagbot.vo.TreeVO;
 import com.google.common.collect.Lists;
@@ -125,6 +126,34 @@ public class KlRelationFacade extends KlRelationServiceImpl {
         }
     }
 
+    /**
+     * 症状扩展
+     *
+     * @param commonParam
+     * @param klSymptomVO
+     */
+    public void saveKlSymptom(CommonParam commonParam, KlSymptomVO klSymptomVO) {
+        // 症状关联科室,部位,伴随症状,性质统一处理。先查找全部数据,删除关联排序表,再删除关联表
+        List<Integer> relationIdList = Lists.newArrayList(
+                RelationLibTypeEnum.relationDept.getKey(),
+                RelationLibTypeEnum.relationPart.getKey(),
+                RelationLibTypeEnum.relationAccSymptom.getKey(),
+                RelationLibTypeEnum.relationNature.getKey()
+        );
+        klRelationRemove(commonParam, relationIdList);
+
+        if (klSymptomVO != null) {
+            // 【科室关联】
+            klRelationSave(commonParam, klSymptomVO.getDeptList(), RelationLibTypeEnum.relationDept.getKey());
+            // 【部位关联】
+            klRelationSave(commonParam, klSymptomVO.getPartList(), RelationLibTypeEnum.relationPart.getKey());
+            // 【常见伴随症状关联】
+            klRelationSave(commonParam, klSymptomVO.getConSymptomList(), RelationLibTypeEnum.relationAccSymptom.getKey());
+            // 【性质关联】
+            klRelationSave(commonParam, klSymptomVO.getNatureList(), RelationLibTypeEnum.relationNature.getKey());
+        }
+    }
+
     /**
      * 删除关联表和关联排序表
      *

+ 40 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlSymptomFacade.java

@@ -0,0 +1,40 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.CommonParam;
+import com.diagbot.entity.KlSymptom;
+import com.diagbot.service.impl.KlSymptomServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.vo.KlSymptomVO;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-04-13 10:41
+ */
+@Component
+public class KlSymptomFacade extends KlSymptomServiceImpl {
+
+    /**
+     * 保存症状扩展表
+     *
+     * @param commonParam
+     * @param klSymptomVO
+     * @return
+     */
+    public boolean saveAll(CommonParam commonParam, KlSymptomVO klSymptomVO) {
+        // 先删除疾病扩展表
+        this.remove(new QueryWrapper<KlSymptom>().eq("concept_id", commonParam.getConceptId()));
+        // 重新插入扩展表
+        KlSymptom klSymptom = new KlSymptom();
+        BeanUtil.copyProperties(klSymptomVO, klSymptom);
+        klSymptom.setConceptId(commonParam.getConceptId());
+        klSymptom.setGmtModified(commonParam.getNow());
+        klSymptom.setGmtCreate(commonParam.getNow());
+        klSymptom.setCreator(commonParam.getPerson());
+        klSymptom.setModifier(commonParam.getPerson());
+        return this.save(klSymptom);
+    }
+
+}

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/mapper/KlSymptomMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.KlSymptom;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 症状扩展表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-12
+ */
+public interface KlSymptomMapper extends BaseMapper<KlSymptom> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.KlSymptom;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 症状扩展表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-12
+ */
+public interface KlSymptomService extends IService<KlSymptom> {
+
+}

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

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.KlSymptom;
+import com.diagbot.mapper.KlSymptomMapper;
+import com.diagbot.service.KlSymptomService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 症状扩展表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-12
+ */
+@Service
+public class KlSymptomServiceImpl extends ServiceImpl<KlSymptomMapper, KlSymptom> implements KlSymptomService {
+
+}

+ 4 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlConceptSaveVO.java

@@ -43,4 +43,8 @@ public class KlConceptSaveVO {
 
     // 疾病扩展信息
     private KlDiseaseVO klDiseaseVO;
+
+    // 症状扩展信息
+    private KlSymptomVO klSymptomVO;
+
 }

+ 93 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlSymptomVO.java

@@ -0,0 +1,93 @@
+package com.diagbot.vo;
+
+import com.google.common.collect.Lists;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 症状扩展表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-12
+ */
+@Data
+public class KlSymptomVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 英文名称
+     */
+    private String enName;
+
+    /**
+     * 定义
+     */
+    private String definition;
+
+    /**
+     * 中西医症状(0:通用,1:西,2:中)
+     */
+    private Integer chWestern;
+
+    /**
+     * 缓解因素
+     */
+    private String mitigatingFac;
+
+    /**
+     * 加重因素
+     */
+    private String aggravateFac;
+
+    /**
+     * 症状起因
+     */
+    private String cause;
+
+    /**
+     * 常见疾病
+     */
+    private String commonDis;
+
+    /**
+     * 预防措施
+     */
+    private String preMeasures;
+
+    /**
+     * 饮食禁忌
+     */
+    private String foodProhibition;
+
+    /**
+     * 通俗解释
+     */
+    private String commonExplain;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    // 科室列表
+    private List<Long> deptList = Lists.newLinkedList();
+
+    // 发病部位
+    private List<Long> partList = Lists.newLinkedList();
+
+    // 常见伴随症状
+    private List<Long> conSymptomList = Lists.newLinkedList();
+
+    // 性质
+    private List<Long> natureList = Lists.newLinkedList();
+}

+ 27 - 0
cdssman-service/src/main/resources/mapper/KlSymptomMapper.xml

@@ -0,0 +1,27 @@
+<?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.KlSymptomMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.KlSymptom">
+        <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="concept_id" property="conceptId" />
+        <result column="en_name" property="enName" />
+        <result column="definition" property="definition" />
+        <result column="ch_western" property="chWestern" />
+        <result column="mitigating_fac" property="mitigatingFac" />
+        <result column="aggravate_fac" property="aggravateFac" />
+        <result column="cause" property="cause" />
+        <result column="common_dis" property="commonDis" />
+        <result column="pre_measures" property="preMeasures" />
+        <result column="food_prohibition" property="foodProhibition" />
+        <result column="common_explain" property="commonExplain" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 1 - 1
cdssman-service/src/test/java/com/diagbot/CodeGeneration.java

@@ -56,7 +56,7 @@ public class CodeGeneration {
         StrategyConfig strategy = new StrategyConfig();
         //strategy.setTablePrefix(new String[] { "test" });// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "kl_disease","kl_drug_mapping","kl_drug_register"}); // 需要生成的表
+        strategy.setInclude(new String[] { "kl_symptom"}); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);

+ 1 - 0
docs/041.20210511知识库扩展/knowledgeExt_init.sql

@@ -6,6 +6,7 @@ INSERT INTO `kl_lexicon` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `cre
 INSERT INTO `kl_lexicon_relationship` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `remark`) VALUES ('12', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '关联科室', '511', '');
 INSERT INTO `kl_lexicon_relationship` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `remark`) VALUES ('13', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '关联部位', '512', '');
 INSERT INTO `kl_lexicon_relationship` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `remark`) VALUES ('14', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '关联系统分类', '513', '');
+INSERT INTO `kl_lexicon_relationship` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `remark`) VALUES ('15', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '关联伴随症状', '514', '');
 
 ALTER TABLE `kl_disease` add COLUMN `en_name` varchar(255) not null DEFAULT '' COMMENT '英文名称' AFTER `icd10_code`;
 ALTER TABLE `kl_disease` add COLUMN `en_name_simple` varchar(255) not null DEFAULT '' COMMENT '英文简称' AFTER `icd10_code`;