瀏覽代碼

公共代码

zhoutg 4 年之前
父節點
當前提交
49af451eaf
共有 37 個文件被更改,包括 1170 次插入111 次删除
  1. 10 3
      cdssman-service/src/main/java/com/diagbot/dto/KlConceptAllDTO.java
  2. 35 0
      cdssman-service/src/main/java/com/diagbot/dto/KlConceptSimDTO.java
  3. 151 0
      cdssman-service/src/main/java/com/diagbot/dto/KlDiseaseDTO.java
  4. 126 0
      cdssman-service/src/main/java/com/diagbot/dto/KlDrugRegisterDTO.java
  5. 1 0
      cdssman-service/src/main/java/com/diagbot/entity/CommonParam.java
  6. 11 82
      cdssman-service/src/main/java/com/diagbot/entity/KlDrugMapping.java
  7. 8 7
      cdssman-service/src/main/java/com/diagbot/entity/KlDrugRegister.java
  8. 50 0
      cdssman-service/src/main/java/com/diagbot/enums/InsertOrUpdateEnum.java
  9. 3 1
      cdssman-service/src/main/java/com/diagbot/enums/LexiconEnum.java
  10. 40 1
      cdssman-service/src/main/java/com/diagbot/facade/KlConceptFacade.java
  11. 44 2
      cdssman-service/src/main/java/com/diagbot/facade/KlDiseaseFacade.java
  12. 56 0
      cdssman-service/src/main/java/com/diagbot/facade/KlDrugMappingFacade.java
  13. 144 0
      cdssman-service/src/main/java/com/diagbot/facade/KlDrugRegisterFacade.java
  14. 8 1
      cdssman-service/src/main/java/com/diagbot/facade/KlRelationFacade.java
  15. 1 1
      cdssman-service/src/main/java/com/diagbot/facade/KlSymptomFacade.java
  16. 5 1
      cdssman-service/src/main/java/com/diagbot/mapper/KlConceptMapper.java
  17. 5 1
      cdssman-service/src/main/java/com/diagbot/mapper/KlDrugRegisterMapper.java
  18. 5 2
      cdssman-service/src/main/java/com/diagbot/service/KlConceptService.java
  19. 5 1
      cdssman-service/src/main/java/com/diagbot/service/KlDrugRegisterService.java
  20. 7 0
      cdssman-service/src/main/java/com/diagbot/service/impl/KlConceptServiceImpl.java
  21. 3 1
      cdssman-service/src/main/java/com/diagbot/service/impl/KlDrugMappingServiceImpl.java
  22. 10 1
      cdssman-service/src/main/java/com/diagbot/service/impl/KlDrugRegisterServiceImpl.java
  23. 3 1
      cdssman-service/src/main/java/com/diagbot/service/impl/KlSymptomServiceImpl.java
  24. 17 0
      cdssman-service/src/main/java/com/diagbot/vo/ConceptRelationVO.java
  25. 6 5
      cdssman-service/src/main/java/com/diagbot/vo/KlConceptAllVO.java
  26. 3 0
      cdssman-service/src/main/java/com/diagbot/vo/KlConceptSaveVO.java
  27. 25 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDrugMappingVO.java
  28. 24 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterDelVO.java
  29. 24 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterGetVO.java
  30. 94 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterPageVO.java
  31. 99 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterSaveVO.java
  32. 75 0
      cdssman-service/src/main/java/com/diagbot/web/KlDrugRegisterController.java
  33. 32 0
      cdssman-service/src/main/resources/mapper/KlConceptMapper.xml
  34. 1 0
      cdssman-service/src/main/resources/mapper/KlDrugMappingMapper.xml
  35. 34 0
      cdssman-service/src/main/resources/mapper/KlDrugRegisterMapper.xml
  36. 1 0
      docs/041.20210511知识库扩展/knowledgeExt_init.sql
  37. 4 0
      docs/041.20210511知识库扩展/user_init.sql

+ 10 - 3
cdssman-service/src/main/java/com/diagbot/dto/KlConceptAllDTO.java

@@ -1,7 +1,5 @@
 package com.diagbot.dto;
 
-import com.diagbot.vo.KlConceptSaveSubVO;
-import io.swagger.models.auth.In;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -32,10 +30,19 @@ public class KlConceptAllDTO {
     private Double maxVal;
     private String unit;
     private Integer scopeType;
-    private String  icdCode;
+    private String icdCode;
     private String remark;
     private Integer drug;
     private Long deptId;
     private String deptName;
     private List<KlConceptAllSubDTO> klConceptSub;
+
+    // 疾病扩展信息
+    private KlDiseaseDTO klDiseaseDTO;
+
+    // // 药品通用名与注册名扩展信息
+    // private KlDrugMappingVO klDrugMappingVO;
+    //
+    // // 症状扩展信息
+    // private KlSymptomVO klSymptomVO;
 }

+ 35 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlConceptSimDTO.java

@@ -0,0 +1,35 @@
+package com.diagbot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 概念表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-03-01
+ */
+@Data
+public class KlConceptSimDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键,概念id
+     */
+    private Long id;
+
+    /**
+     * 概念名称(冗余)
+     */
+    private String libName;
+
+    /**
+     * 概念词性type(冗余)
+     */
+    private Integer libType;
+
+}

+ 151 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlDiseaseDTO.java

@@ -0,0 +1,151 @@
+package com.diagbot.dto;
+
+import com.google.common.collect.Lists;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 疾病表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlDiseaseDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 科室概念id
+     */
+    private Long deptId;
+
+    /**
+     * ICD10编号
+     */
+    private String icd10Code;
+
+    /**
+     * 病程
+     */
+    private String course;
+
+    /**
+     * 诱因
+     */
+    private String inducement;
+
+    /**
+     * 饮食禁忌
+     */
+    private String foodProhibition;
+
+    /**
+     * 危险因素
+     */
+    private String hazard;
+
+    /**
+     * 治愈性
+     */
+    private String healing;
+
+    /**
+     * 危害性
+     */
+    private String pernicious;
+
+    /**
+     * 临床分类
+     */
+    private String clinicType;
+
+    /**
+     * 好发地区
+     */
+    private String vulArea;
+
+    /**
+     * 好发人群
+     */
+    private String vulCrowd;
+
+    /**
+     * 发病率
+     */
+    private Double incidence;
+
+    /**
+     * 是否传染(0:否,1:是)
+     */
+    private Integer isInfect;
+
+    /**
+     * 并发症
+     */
+    private String complication;
+
+    /**
+     * 病因
+     */
+    private String pathogeny;
+
+    /**
+     * 疾病分型
+     */
+    private String disType;
+
+    /**
+     * 中西医疾病(0:通用,1:西,2:中)
+     */
+    private Integer chWestern;
+
+    /**
+     * 是否常见病(0:否,1:是)
+     */
+    private Integer isCommonDis;
+
+    /**
+     * 是否遗传(0:否,1:是)
+     */
+    private Integer isHeredity;
+
+    /**
+     * 简称
+     */
+    private String nameSimple;
+
+    /**
+     * 英文简称
+     */
+    private String enNameSimple;
+
+    /**
+     * 英文名称
+     */
+    private String enName;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    // 科室列表
+    private List<KlConceptSimDTO> deptList = Lists.newLinkedList();
+
+    // 部位列表
+    private List<KlConceptSimDTO> partList = Lists.newLinkedList();
+
+    // 疾病系统分类列表
+    private List<KlConceptSimDTO> systemTypeList = Lists.newLinkedList();
+
+}

+ 126 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlDrugRegisterDTO.java

@@ -0,0 +1,126 @@
+package com.diagbot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 药品注册表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlDrugRegisterDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 药品代码
+     */
+    private String drugCode;
+
+    /**
+     * 注册名称
+     */
+    private String name;
+
+    /**
+     * 英文名称
+     */
+    private String enName;
+
+    /**
+     * 商品名称
+     */
+    private String tradeName;
+
+    /**
+     * 药品剂型
+     */
+    private String form;
+
+    /**
+     * 注册规格
+     */
+    private String specification;
+
+    /**
+     * 最小包装数量
+     */
+    private String minPackQuantity;
+
+    /**
+     * 最小包装单位
+     */
+    private String minPackUnit;
+
+    /**
+     * 药品企业
+     */
+    private String company;
+
+    /**
+     * 批准文号
+     */
+    private String approval;
+
+    /**
+     * 药品本位码
+     */
+    private String standardCode;
+
+    /**
+     * 医保类型
+     */
+    private String insuranceType;
+
+    /**
+     * 医保备注
+     */
+    private String insuranceRemrk;
+
+    /**
+     * 药品类别
+     */
+    private String drugType;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 1 - 0
cdssman-service/src/main/java/com/diagbot/entity/CommonParam.java

@@ -16,4 +16,5 @@ public class CommonParam {
     private String person;     //操作人
     private Date now;          //当前时间
     private Long conceptId;    //conceptId
+    private int insertOrUpdate;//更新或新增标识
 }

+ 11 - 82
cdssman-service/src/main/java/com/diagbot/entity/KlDrugMapping.java

@@ -2,8 +2,10 @@ package com.diagbot.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
+import lombok.Data;
+
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -13,6 +15,7 @@ import java.io.Serializable;
  * @author zhoutg
  * @since 2021-05-11
  */
+@Data
 public class KlDrugMapping implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -31,12 +34,12 @@ public class KlDrugMapping implements Serializable {
     /**
      * 记录创建时间
      */
-    private LocalDateTime gmtCreate;
+    private Date gmtCreate;
 
     /**
      * 记录修改时间,如果时间是1970年则表示纪录未修改
      */
-    private LocalDateTime gmtModified;
+    private Date gmtModified;
 
     /**
      * 创建人,0表示无创建人值
@@ -58,87 +61,13 @@ public class KlDrugMapping implements Serializable {
      */
     private Long registerId;
 
+    /**
+     * 顺序号
+     */
+    private Integer orderNo;
+
     /**
      * 备注
      */
     private String remark;
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-    public String getIsDeleted() {
-        return isDeleted;
-    }
-
-    public void setIsDeleted(String isDeleted) {
-        this.isDeleted = isDeleted;
-    }
-    public LocalDateTime getGmtCreate() {
-        return gmtCreate;
-    }
-
-    public void setGmtCreate(LocalDateTime gmtCreate) {
-        this.gmtCreate = gmtCreate;
-    }
-    public LocalDateTime getGmtModified() {
-        return gmtModified;
-    }
-
-    public void setGmtModified(LocalDateTime gmtModified) {
-        this.gmtModified = gmtModified;
-    }
-    public String getCreator() {
-        return creator;
-    }
-
-    public void setCreator(String creator) {
-        this.creator = creator;
-    }
-    public String getModifier() {
-        return modifier;
-    }
-
-    public void setModifier(String modifier) {
-        this.modifier = modifier;
-    }
-    public Long getDrugConcept() {
-        return drugConcept;
-    }
-
-    public void setDrugConcept(Long drugConcept) {
-        this.drugConcept = drugConcept;
-    }
-    public Long getRegisterId() {
-        return registerId;
-    }
-
-    public void setRegisterId(Long registerId) {
-        this.registerId = registerId;
-    }
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
-    @Override
-    public String toString() {
-        return "KlDrugMapping{" +
-            "id=" + id +
-            ", isDeleted=" + isDeleted +
-            ", gmtCreate=" + gmtCreate +
-            ", gmtModified=" + gmtModified +
-            ", creator=" + creator +
-            ", modifier=" + modifier +
-            ", drugConcept=" + drugConcept +
-            ", registerId=" + registerId +
-            ", remark=" + remark +
-        "}";
-    }
 }

+ 8 - 7
cdssman-service/src/main/java/com/diagbot/entity/KlDrugRegister.java

@@ -2,8 +2,9 @@ package com.diagbot.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
+
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -31,12 +32,12 @@ public class KlDrugRegister implements Serializable {
     /**
      * 记录创建时间
      */
-    private LocalDateTime gmtCreate;
+    private Date gmtCreate;
 
     /**
      * 记录修改时间,如果时间是1970年则表示纪录未修改
      */
-    private LocalDateTime gmtModified;
+    private Date gmtModified;
 
     /**
      * 创建人,0表示无创建人值
@@ -137,18 +138,18 @@ public class KlDrugRegister implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
-    public LocalDateTime getGmtCreate() {
+    public Date getGmtCreate() {
         return gmtCreate;
     }
 
-    public void setGmtCreate(LocalDateTime gmtCreate) {
+    public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
-    public LocalDateTime getGmtModified() {
+    public Date getGmtModified() {
         return gmtModified;
     }
 
-    public void setGmtModified(LocalDateTime gmtModified) {
+    public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
     public String getCreator() {

+ 50 - 0
cdssman-service/src/main/java/com/diagbot/enums/InsertOrUpdateEnum.java

@@ -0,0 +1,50 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 下午2:31:42
+ */
+public enum InsertOrUpdateEnum implements KeyedNamed {
+    Insert(1, "新增"),
+    Update(2, "修改");
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    InsertOrUpdateEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static InsertOrUpdateEnum getEnum(int key) {
+        for (InsertOrUpdateEnum item : InsertOrUpdateEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        InsertOrUpdateEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}
+

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

@@ -53,7 +53,9 @@ public enum LexiconEnum implements KeyedNamed {
     OperationClassNode(407,"手术和操作类别根节点"),
     LisClassNode(408,"实验室检查类别根节点"),
     PacsClassNode(409,"辅助检查类别根节点"),
-    Age(410,"年龄");
+    Age(410,"年龄"),
+    DisSysType(411,"疾病系统分类"),
+    Nature(412,"性质");
 
 
     @Setter

+ 40 - 1
cdssman-service/src/main/java/com/diagbot/facade/KlConceptFacade.java

@@ -8,6 +8,7 @@ import com.diagbot.dto.GetAllForRelationDTO;
 import com.diagbot.dto.KlConceptAllDTO;
 import com.diagbot.dto.KlConceptAllSubDTO;
 import com.diagbot.dto.KlConceptInfoDTO;
+import com.diagbot.dto.KlConceptSimDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.CommonParam;
 import com.diagbot.entity.KlConcept;
@@ -28,10 +29,12 @@ import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.KlConceptServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
+import com.diagbot.vo.ConceptRelationVO;
 import com.diagbot.vo.GetAllForRelationVO;
 import com.diagbot.vo.KlConceptAllVO;
 import com.diagbot.vo.KlConceptClearVO;
@@ -42,6 +45,7 @@ import com.diagbot.vo.KlConceptSaveVO;
 import com.diagbot.vo.KlLibraryInfoVO;
 import com.diagbot.vo.SearchConceptVO;
 import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -95,6 +99,8 @@ public class KlConceptFacade extends KlConceptServiceImpl {
     KlOperationFacade klOperationFacade;
     @Autowired
     KlVitalResFacade klVitalResFacade;
+    @Autowired
+    KlDrugMappingFacade klDrugMappingFacade;
 
 
     /**
@@ -180,6 +186,21 @@ public class KlConceptFacade extends KlConceptServiceImpl {
             }
         }
         klConceptAll.setKlConceptSub(klConceptSub);
+
+        LexiconEnum lexiconEnum = LexiconEnum.getEnum(klConceptAllVO.getLibType());
+        if (lexiconEnum != null) {
+            ConceptRelationVO conceptRelationVO = new ConceptRelationVO();
+            conceptRelationVO.setConceptId(klConceptAllVO.getConceptId());
+            switch (lexiconEnum) {
+                case Disease: // 疾病扩展 kl_disease, kl_relation,kl_relation_order
+                    klDiseaseFacade.getKlDisease(klConceptAllVO.getConceptId(), klConceptAll);
+                    break;
+                case Symptom: // 症状扩展 kl_symptom, kl_relation,kl_relation_order
+                    break;
+                case Medicine: //  药品通用名和注册名映射表 kl_drug_mapping
+                    break;
+            }
+        }
         return klConceptAll;
     }
 
@@ -315,10 +336,13 @@ public class KlConceptFacade extends KlConceptServiceImpl {
                     res = klDiseaseFacade.saveAll(commonParam, klConceptSaveVO.getKlDiseaseVO());
                     klRelationFacade.saveKlDisease(commonParam, klConceptSaveVO.getKlDiseaseVO());
                     break;
-                    case Symptom: // 症状扩展 kl_symptom, kl_relation,kl_relation_order
+                case Symptom: // 症状扩展 kl_symptom, kl_relation,kl_relation_order
                     klSymptomFacade.saveAll(commonParam, klConceptSaveVO.getKlSymptomVO());
                     klRelationFacade.saveKlSymptom(commonParam, klConceptSaveVO.getKlSymptomVO());
                     break;
+                case Medicine: //  药品通用名和注册名映射表 kl_drug_mapping
+                    klDrugMappingFacade.saveAll(commonParam, klConceptSaveVO.getKlDrugMappingVO());
+                    break;
                 case LisName:
                 case LisSubName:
                     klLisFacade.saveAll(commonParam,klConceptSaveVO.getKlLisVO());
@@ -558,6 +582,21 @@ public class KlConceptFacade extends KlConceptServiceImpl {
         }
     }
 
+    /**
+     * 根据conceptId和relationId获取关联数据(通用方法)
+     *
+     * @param conceptRelationVO
+     * @return
+     */
+    public Map<Integer, List<KlConceptSimDTO>> getRelationConceptFac(ConceptRelationVO conceptRelationVO) {
+        Map<Integer, List<KlConceptSimDTO>> map = Maps.newLinkedHashMap();
+        List<KlConceptSimDTO> relationConcept = this.getRelationConcept(conceptRelationVO);
+        if (ListUtil.isNotEmpty(relationConcept)) {
+            map = EntityUtil.makeEntityListMap(relationConcept, "libType");
+        }
+        return map;
+    }
+
     /**
      * 初始化参数
      *

+ 44 - 2
cdssman-service/src/main/java/com/diagbot/facade/KlDiseaseFacade.java

@@ -8,6 +8,9 @@ import com.diagbot.dto.DiseaseDetailDTO;
 import com.diagbot.dto.DiseasePageDTO;
 import com.diagbot.dto.DiseaseSubDetailDTO;
 import com.diagbot.dto.DiseaseTreeDetailDTO;
+import com.diagbot.dto.KlConceptAllDTO;
+import com.diagbot.dto.KlConceptSimDTO;
+import com.diagbot.dto.KlDiseaseDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.CommonParam;
 import com.diagbot.entity.KlConcept;
@@ -15,6 +18,7 @@ import com.diagbot.entity.KlDisease;
 import com.diagbot.entity.KlLexiconRelationship;
 import com.diagbot.enums.DiseaseRelationTypeEnum;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.LexiconEnum;
 import com.diagbot.enums.RelationLibTypeEnum;
 import com.diagbot.service.impl.KlDiseaseServiceImpl;
 import com.diagbot.util.BeanUtil;
@@ -22,22 +26,23 @@ import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
+import com.diagbot.vo.ConceptRelationVO;
 import com.diagbot.vo.DiseaseDeleteVO;
 import com.diagbot.vo.DiseasePageVO;
 import com.diagbot.vo.GetDiseaseDetailVO;
 import com.diagbot.vo.KlDiseaseVO;
+import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.compress.utils.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
-
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+
 /**
  * @author wangfeng
  * @Description:
@@ -190,5 +195,42 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
         klDisease.setModifier(commonParam.getPerson());
         return this.save(klDisease);
     }
+
+    /**
+     * 疾病扩展获取
+     *
+     * @param conceptId
+     * @param klConceptAllDTO
+     */
+    public void getKlDisease(Long conceptId, KlConceptAllDTO klConceptAllDTO) {
+        KlDisease klDisease = this.getOne(new QueryWrapper<KlDisease>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("concept_id", conceptId), false);
+        if (klDisease == null) {
+            return;
+        }
+        KlDiseaseDTO klDiseaseDTO = new KlDiseaseDTO();
+        BeanUtil.copyProperties(klDisease, klDiseaseDTO);
+
+        List<Integer> relationIdList = Lists.newArrayList(
+                RelationLibTypeEnum.relationDept.getKey(),
+                RelationLibTypeEnum.relationPart.getKey(),
+                RelationLibTypeEnum.relationSystem.getKey()
+        );
+        ConceptRelationVO conceptRelationVO = new ConceptRelationVO();
+        conceptRelationVO.setConceptId(conceptId);
+        conceptRelationVO.setRelationList(relationIdList);
+        Map<Integer, List<KlConceptSimDTO>> map = klConceptFacade.getRelationConceptFac(conceptRelationVO);
+        if (map.get(LexiconEnum.Part.getKey()) != null) {
+            klDiseaseDTO.setPartList(map.get(LexiconEnum.Part.getKey()));
+        }
+        if (map.get(LexiconEnum.Dept.getKey()) != null) {
+            klDiseaseDTO.setDeptList(map.get(LexiconEnum.Dept.getKey()));
+        }
+        if (map.get(LexiconEnum.DisSysType.getKey()) != null) {
+            klDiseaseDTO.setSystemTypeList(map.get(LexiconEnum.DisSysType.getKey()));
+        }
+        klConceptAllDTO.setKlDiseaseDTO(klDiseaseDTO);
+    }
 }
 

+ 56 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlDrugMappingFacade.java

@@ -0,0 +1,56 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.CommonParam;
+import com.diagbot.entity.KlDrugMapping;
+import com.diagbot.service.KlDrugMappingService;
+import com.diagbot.service.impl.KlDrugMappingServiceImpl;
+import com.diagbot.vo.KlDrugMappingVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author zhoutg
+ * @Description:
+ * @date 2021-04-13 10:41
+ */
+@Component
+public class KlDrugMappingFacade extends KlDrugMappingServiceImpl {
+
+    @Autowired
+    @Qualifier("klDrugMappingServiceImpl")
+    KlDrugMappingService klDrugMappingService;
+
+    /**
+     * 保存药品通用名称和注册名称扩展表
+     *
+     * @param commonParam
+     * @param klDrugMappingVO
+     * @return
+     */
+    public void saveAll(CommonParam commonParam, KlDrugMappingVO klDrugMappingVO) {
+        // 先删除药品通用名和注册名关联扩展表
+        this.remove(new QueryWrapper<KlDrugMapping>().eq("drug_concept", commonParam.getConceptId()));
+
+        // 新增关联
+        List<KlDrugMapping> klDrugMappingList = Lists.newLinkedList();
+        if (klDrugMappingVO != null) {
+            for (Long registerId : klDrugMappingVO.getRegisterIdList()) {
+                KlDrugMapping klDrugMapping = new KlDrugMapping();
+                klDrugMapping.setDrugConcept(commonParam.getConceptId());
+                klDrugMapping.setRegisterId(registerId);
+                klDrugMapping.setGmtModified(commonParam.getNow());
+                klDrugMapping.setGmtCreate(commonParam.getNow());
+                klDrugMapping.setCreator(commonParam.getPerson());
+                klDrugMapping.setModifier(commonParam.getPerson());
+                klDrugMappingList.add(klDrugMapping);
+            }
+            klDrugMappingService.saveBatch(klDrugMappingList);
+        }
+    }
+
+}

+ 144 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlDrugRegisterFacade.java

@@ -0,0 +1,144 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.KlDrugRegisterDTO;
+import com.diagbot.entity.CommonParam;
+import com.diagbot.entity.KlConcept;
+import com.diagbot.entity.KlDrugMapping;
+import com.diagbot.entity.KlDrugRegister;
+import com.diagbot.enums.InsertOrUpdateEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.KlDrugRegisterServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.KlDrugRegisterDelVO;
+import com.diagbot.vo.KlDrugRegisterGetVO;
+import com.diagbot.vo.KlDrugRegisterPageVO;
+import com.diagbot.vo.KlDrugRegisterSaveVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author zhoutg
+ * @Description:
+ * @date 2021-04-13 10:41
+ */
+@Component
+public class KlDrugRegisterFacade extends KlDrugRegisterServiceImpl {
+
+    @Autowired
+    KlDrugMappingFacade klDrugMappingFacade;
+    @Autowired
+    KlConceptFacade klConceptFacade;
+    @Autowired
+    UserFacade userFacade;
+
+    /**
+     * 保存或更新
+     *
+     * @param klDrugRegisterSaveVO
+     */
+    public void saveOrUpdate(KlDrugRegisterSaveVO klDrugRegisterSaveVO) {
+        CommonParam param = initCommonParam();
+        KlDrugRegister klDrugRegister = new KlDrugRegister();
+        if (klDrugRegisterSaveVO.getId() != null) {
+            klDrugRegister = this.getOne(new QueryWrapper<KlDrugRegister>()
+                    .eq("id", klDrugRegisterSaveVO.getId())
+                    .eq("is_deleted", IsDeleteEnum.N.getKey()), false);
+            if (klDrugRegister == null) { //校验
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "数据不存在");
+            }
+            param.setInsertOrUpdate(InsertOrUpdateEnum.Update.getKey());
+        }
+        BeanUtil.copyProperties(klDrugRegisterSaveVO, klDrugRegister);
+        // 重复校验
+        int count = this.count(new QueryWrapper<KlDrugRegister>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("drug_code", klDrugRegisterSaveVO.getDrugCode())
+                .ne("id", klDrugRegisterSaveVO.getId() == null ? -1 : klDrugRegisterSaveVO.getId()));
+        if (count > 0) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "药品代码已存在");
+        }
+        if (InsertOrUpdateEnum.Insert.getKey() == param.getInsertOrUpdate()) {
+            klDrugRegister.setCreator(param.getPerson()); //创建人
+            klDrugRegister.setGmtCreate(param.getNow());//创建时间
+        }
+        klDrugRegister.setGmtModified(param.getNow());//修改时间
+        klDrugRegister.setModifier(param.getPerson());//修改人
+        this.saveOrUpdate(klDrugRegister);
+    }
+
+    /**
+     * 初始化参数
+     *
+     * @return
+     */
+    public CommonParam initCommonParam() {
+        CommonParam param = new CommonParam();
+        String person = UserUtils.getCurrentPrincipleID();
+        param.setNow(DateUtil.now());
+        param.setPerson(person);
+        param.setInsertOrUpdate(InsertOrUpdateEnum.Insert.getKey());
+        return param;
+    }
+
+    /**
+     * 分页
+     *
+     * @param klDrugRegisterPageVO
+     * @return
+     */
+    public IPage<KlDrugRegisterDTO> getPageFac(KlDrugRegisterPageVO klDrugRegisterPageVO) {
+        IPage<KlDrugRegisterDTO> res = this.getPage(klDrugRegisterPageVO);
+        return res;
+    }
+
+    /**
+     * 根据id删除标签
+     *
+     * @param klDrugRegisterDelVO
+     * @return
+     */
+    public void deleteByIdFac(KlDrugRegisterDelVO klDrugRegisterDelVO) {
+        List<KlDrugMapping> klDrugMappingList = klDrugMappingFacade.list(new QueryWrapper<KlDrugMapping>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("register_id", klDrugRegisterDelVO.getId()));
+        if (ListUtil.isNotEmpty(klDrugMappingList)) {
+            List<Long> idList = klDrugMappingList.stream().map(r -> r.getDrugConcept()).collect(Collectors.toList());
+            List<KlConcept> klConceptList = klConceptFacade.list(new QueryWrapper<KlConcept>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey()).in("id", idList));
+            if (ListUtil.isNotEmpty(klConceptList)) {
+                String errMsg = klConceptList.stream().map(r -> r.getLibName()).distinct().collect(Collectors.joining(","));
+                if (StringUtil.isNotBlank(errMsg)) {
+                    throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "已关联药品通用名:" + errMsg);
+                }
+            }
+        }
+        this.remove(new QueryWrapper<KlDrugRegister>().eq("id", klDrugRegisterDelVO.getId()));
+    }
+
+    /**
+     * 根据参数返回数据
+     *
+     * @param klDrugRegisterGetVO 获取标签内容参数
+     * @return 标签内容
+     */
+    public KlDrugRegisterDTO getByParam(KlDrugRegisterGetVO klDrugRegisterGetVO) {
+        KlDrugRegisterDTO klDrugRegisterDTO = new KlDrugRegisterDTO();
+        KlDrugRegister klDrugRegister = this.getOne(new QueryWrapper<KlDrugRegister>()
+                .eq("id", klDrugRegisterGetVO.getId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey()), false);
+        if (klDrugRegister != null) {
+            BeanUtil.copyProperties(klDrugRegister, klDrugRegisterDTO);
+        }
+        return klDrugRegisterDTO;
+    }
+}

+ 8 - 1
cdssman-service/src/main/java/com/diagbot/facade/KlRelationFacade.java

@@ -13,7 +13,11 @@ import com.diagbot.service.KlRelationService;
 import com.diagbot.service.impl.KlRelationServiceImpl;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
-import com.diagbot.vo.*;
+import com.diagbot.vo.KlDiseaseVO;
+import com.diagbot.vo.KlSymptomVO;
+import com.diagbot.vo.KlVitalResultVO;
+import com.diagbot.vo.RelationVO;
+import com.diagbot.vo.TreeVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -40,6 +44,9 @@ public class KlRelationFacade extends KlRelationServiceImpl {
     @Qualifier("klRelationServiceImpl")
     KlRelationService klRelationService;
 
+    @Autowired
+    KlConceptFacade klConceptFacade;
+
     public TreeAllDTO getTree(TreeVO treeVO) {
         List<Long[]> pList = new ArrayList<>();
         pList.add(new Long[] { 402L, 600L, 301L, 600L, 101L });//药品化学物质类别

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

@@ -9,7 +9,7 @@ import com.diagbot.vo.KlSymptomVO;
 import org.springframework.stereotype.Component;
 
 /**
- * @author wangfeng
+ * @author zhoutg
  * @Description:
  * @date 2021-04-13 10:41
  */

+ 5 - 1
cdssman-service/src/main/java/com/diagbot/mapper/KlConceptMapper.java

@@ -1,10 +1,12 @@
 package com.diagbot.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.KlConceptAllDTO;
 import com.diagbot.dto.KlConceptInfoDTO;
+import com.diagbot.dto.KlConceptSimDTO;
 import com.diagbot.entity.KlConcept;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.ConceptRelationVO;
 import com.diagbot.vo.KlConceptAllVO;
 import com.diagbot.vo.KlConceptInfoVO;
 
@@ -25,4 +27,6 @@ public interface KlConceptMapper extends BaseMapper<KlConcept> {
     List<KlConceptAllDTO> getConceptAll(KlConceptAllVO klConceptAllVO);
 
     IPage<KlConceptInfoDTO> getConceptPage2(KlConceptInfoVO klConceptInfoVO);
+
+    List<KlConceptSimDTO> getRelationConcept(ConceptRelationVO conceptRelationVO);
 }

+ 5 - 1
cdssman-service/src/main/java/com/diagbot/mapper/KlDrugRegisterMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.KlDrugRegister;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.KlDrugRegisterDTO;
+import com.diagbot.entity.KlDrugRegister;
+import com.diagbot.vo.KlDrugRegisterPageVO;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface KlDrugRegisterMapper extends BaseMapper<KlDrugRegister> {
 
+    IPage<KlDrugRegisterDTO> getPage(KlDrugRegisterPageVO klDrugRegisterPageVO);
 }

+ 5 - 2
cdssman-service/src/main/java/com/diagbot/service/KlConceptService.java

@@ -1,11 +1,12 @@
 package com.diagbot.service;
 
-import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.KlConceptAllDTO;
 import com.diagbot.dto.KlConceptInfoDTO;
+import com.diagbot.dto.KlConceptSimDTO;
 import com.diagbot.entity.KlConcept;
-import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.ConceptRelationVO;
 import com.diagbot.vo.KlConceptAllVO;
 import com.diagbot.vo.KlConceptInfoVO;
 
@@ -24,4 +25,6 @@ public interface KlConceptService extends IService<KlConcept> {
     public List<KlConceptAllDTO> getConceptAll(KlConceptAllVO klConceptAllVO);
 
     IPage<KlConceptInfoDTO> getConceptPage2(KlConceptInfoVO klConceptInfoVO);
+
+    List<KlConceptSimDTO> getRelationConcept(ConceptRelationVO conceptRelationVO);
 }

+ 5 - 1
cdssman-service/src/main/java/com/diagbot/service/KlDrugRegisterService.java

@@ -1,7 +1,10 @@
 package com.diagbot.service;
 
-import com.diagbot.entity.KlDrugRegister;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.KlDrugRegisterDTO;
+import com.diagbot.entity.KlDrugRegister;
+import com.diagbot.vo.KlDrugRegisterPageVO;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface KlDrugRegisterService extends IService<KlDrugRegister> {
 
+    IPage<KlDrugRegisterDTO> getPage(KlDrugRegisterPageVO klDrugRegisterPageVO);
 }

+ 7 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/KlConceptServiceImpl.java

@@ -4,10 +4,12 @@ import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.KlConceptAllDTO;
 import com.diagbot.dto.KlConceptInfoDTO;
+import com.diagbot.dto.KlConceptSimDTO;
 import com.diagbot.entity.KlConcept;
 import com.diagbot.mapper.KlConceptMapper;
 import com.diagbot.service.KlConceptService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.ConceptRelationVO;
 import com.diagbot.vo.KlConceptAllVO;
 import com.diagbot.vo.KlConceptInfoVO;
 import org.springframework.stereotype.Service;
@@ -40,4 +42,9 @@ public class KlConceptServiceImpl extends ServiceImpl<KlConceptMapper, KlConcept
     public IPage<KlConceptInfoDTO> getConceptPage2(KlConceptInfoVO klConceptInfoVO){
         return baseMapper.getConceptPage2(klConceptInfoVO);
     }
+
+    @Override
+    public List<KlConceptSimDTO> getRelationConcept(ConceptRelationVO conceptRelationVO) {
+        return baseMapper.getRelationConcept(conceptRelationVO);
+    }
 }

+ 3 - 1
cdssman-service/src/main/java/com/diagbot/service/impl/KlDrugMappingServiceImpl.java

@@ -1,9 +1,10 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.entity.KlDrugMapping;
 import com.diagbot.mapper.KlDrugMappingMapper;
 import com.diagbot.service.KlDrugMappingService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 /**
@@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
  * @since 2021-05-11
  */
 @Service
+@DS("med")
 public class KlDrugMappingServiceImpl extends ServiceImpl<KlDrugMappingMapper, KlDrugMapping> implements KlDrugMappingService {
 
 }

+ 10 - 1
cdssman-service/src/main/java/com/diagbot/service/impl/KlDrugRegisterServiceImpl.java

@@ -1,9 +1,13 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.KlDrugRegisterDTO;
 import com.diagbot.entity.KlDrugRegister;
 import com.diagbot.mapper.KlDrugRegisterMapper;
 import com.diagbot.service.KlDrugRegisterService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.KlDrugRegisterPageVO;
 import org.springframework.stereotype.Service;
 
 /**
@@ -15,6 +19,11 @@ import org.springframework.stereotype.Service;
  * @since 2021-05-11
  */
 @Service
+@DS("med")
 public class KlDrugRegisterServiceImpl extends ServiceImpl<KlDrugRegisterMapper, KlDrugRegister> implements KlDrugRegisterService {
 
+    @Override
+    public IPage<KlDrugRegisterDTO> getPage(KlDrugRegisterPageVO klDrugRegisterPageVO) {
+        return baseMapper.getPage(klDrugRegisterPageVO);
+    }
 }

+ 3 - 1
cdssman-service/src/main/java/com/diagbot/service/impl/KlSymptomServiceImpl.java

@@ -1,9 +1,10 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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;
 
 /**
@@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
  * @since 2021-05-12
  */
 @Service
+@DS("med")
 public class KlSymptomServiceImpl extends ServiceImpl<KlSymptomMapper, KlSymptom> implements KlSymptomService {
 
 }

+ 17 - 0
cdssman-service/src/main/java/com/diagbot/vo/ConceptRelationVO.java

@@ -0,0 +1,17 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhoutg
+ * @time: 2020/9/10 14:48
+ */
+@Data
+public class ConceptRelationVO {
+
+    private Long conceptId;
+    private List<Integer> relationList;
+}

+ 6 - 5
cdssman-service/src/main/java/com/diagbot/vo/KlConceptAllVO.java

@@ -1,7 +1,6 @@
 package com.diagbot.vo;
 
-import lombok.Getter;
-import lombok.Setter;
+import lombok.Data;
 
 import javax.validation.constraints.NotNull;
 
@@ -10,9 +9,11 @@ import javax.validation.constraints.NotNull;
  * @Description:
  * @date 2021-03-02 14:06
  */
-@Setter
-@Getter
+@Data
 public class KlConceptAllVO {
     @NotNull(message = "请输入conceptId")
-    private Long  conceptId;
+    private Long conceptId;
+
+    @NotNull(message = "请输入libType")
+    private Integer libType;
 }

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

@@ -44,6 +44,9 @@ public class KlConceptSaveVO {
     // 疾病扩展信息
     private KlDiseaseVO klDiseaseVO;
 
+    // 药品通用名与注册名扩展信息
+    private KlDrugMappingVO klDrugMappingVO;
+
     // 症状扩展信息
     private KlSymptomVO klSymptomVO;
 

+ 25 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlDrugMappingVO.java

@@ -0,0 +1,25 @@
+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-11
+ */
+@Data
+public class KlDrugMappingVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    // 药品注册名Id列表
+    private List<Long> registerIdList = Lists.newLinkedList();
+
+}

+ 24 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterDelVO.java

@@ -0,0 +1,24 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 药品注册表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlDrugRegisterDelVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+}

+ 24 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterGetVO.java

@@ -0,0 +1,24 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 药品注册表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlDrugRegisterGetVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+}

+ 94 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterPageVO.java

@@ -0,0 +1,94 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Data;
+
+/**
+ * <p>
+ * 药品注册表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlDrugRegisterPageVO extends Page {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 药品代码
+     */
+    private String drugCode;
+
+    /**
+     * 注册名称| 商品名称
+     */
+    private String name;
+
+    /**
+     * 英文名称
+     */
+    private String enName;
+
+    /**
+     * 药品剂型
+     */
+    private String form;
+
+    /**
+     * 注册规格
+     */
+    private String specification;
+
+    /**
+     * 最小包装数量
+     */
+    private String minPackQuantity;
+
+    /**
+     * 最小包装单位
+     */
+    private String minPackUnit;
+
+    /**
+     * 药品企业
+     */
+    private String company;
+
+    /**
+     * 批准文号
+     */
+    private String approval;
+
+    /**
+     * 药品本位码
+     */
+    private String standardCode;
+
+    /**
+     * 医保类型
+     */
+    private String insuranceType;
+
+    /**
+     * 医保备注
+     */
+    private String insuranceRemrk;
+
+    /**
+     * 药品类别
+     */
+    private String drugType;
+
+}

+ 99 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterSaveVO.java

@@ -0,0 +1,99 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 药品注册表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlDrugRegisterSaveVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 药品代码
+     */
+    private String drugCode;
+
+    /**
+     * 注册名称
+     */
+    private String name;
+
+    /**
+     * 英文名称
+     */
+    private String enName;
+
+    /**
+     * 商品名称
+     */
+    private String tradeName;
+
+    /**
+     * 药品剂型
+     */
+    private String form;
+
+    /**
+     * 注册规格
+     */
+    private String specification;
+
+    /**
+     * 最小包装数量
+     */
+    private String minPackQuantity;
+
+    /**
+     * 最小包装单位
+     */
+    private String minPackUnit;
+
+    /**
+     * 药品企业
+     */
+    private String company;
+
+    /**
+     * 批准文号
+     */
+    private String approval;
+
+    /**
+     * 药品本位码
+     */
+    private String standardCode;
+
+    /**
+     * 医保类型
+     */
+    private String insuranceType;
+
+    /**
+     * 医保备注
+     */
+    private String insuranceRemrk;
+
+    /**
+     * 药品类别
+     */
+    private String drugType;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 75 - 0
cdssman-service/src/main/java/com/diagbot/web/KlDrugRegisterController.java

@@ -0,0 +1,75 @@
+package com.diagbot.web;
+
+
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.KlDrugRegisterDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.KlDrugRegisterFacade;
+import com.diagbot.vo.KlDrugRegisterDelVO;
+import com.diagbot.vo.KlDrugRegisterGetVO;
+import com.diagbot.vo.KlDrugRegisterPageVO;
+import com.diagbot.vo.KlDrugRegisterSaveVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 标签基础表 前端控制器
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2018-11-23
+ */
+@RestController
+@RequestMapping("/klDrugRegister")
+@SuppressWarnings("unchecked")
+@Api(value = "注册药品相关API", tags = { "注册药品相关API" })
+public class KlDrugRegisterController {
+
+    @Autowired
+    KlDrugRegisterFacade klDrugRegisterFacade;
+
+    @ApiOperation(value = "新增或更新[by:zhoutg]",
+            notes = "")
+    @PostMapping("/saveOrUpdate")
+    @SysLogger("saveOrUpdate")
+    @DSTransactional
+    public RespDTO<Boolean> saveOrUpdate(@RequestBody KlDrugRegisterSaveVO klDrugRegisterSaveVO) {
+        klDrugRegisterFacade.saveOrUpdate(klDrugRegisterSaveVO);
+        return RespDTO.onSuc(true);
+    }
+
+    @ApiOperation(value = "分页[by:zhoutg]",
+            notes = "")
+    @PostMapping("/getPage")
+    @SysLogger("getPage")
+    public RespDTO<IPage<KlDrugRegisterDTO>> getPage(@RequestBody KlDrugRegisterPageVO klDrugRegisterPageVO) {
+        IPage<KlDrugRegisterDTO> data = klDrugRegisterFacade.getPageFac(klDrugRegisterPageVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "删除[by:zhoutg]",
+            notes = "")
+    @PostMapping("/delete")
+    @SysLogger("delete")
+    @DSTransactional
+    public RespDTO<Boolean> delete(@RequestBody KlDrugRegisterDelVO klDrugRegisterDelVO) {
+        klDrugRegisterFacade.deleteByIdFac(klDrugRegisterDelVO);
+        return RespDTO.onSuc(true);
+    }
+
+    @ApiOperation(value = "根据参数获取数据[by:zhoutg]",
+            notes = "id: 主键")
+    @PostMapping("/getByParam")
+    public RespDTO<KlDrugRegisterDTO> getByParam(@RequestBody KlDrugRegisterGetVO klDrugRegisterGetVO) {
+        KlDrugRegisterDTO data = klDrugRegisterFacade.getByParam(klDrugRegisterGetVO);
+        return RespDTO.onSuc(data);
+    }
+}

+ 32 - 0
cdssman-service/src/main/resources/mapper/KlConceptMapper.xml

@@ -15,6 +15,7 @@
         <result column="lib_type" property="libType"/>
         <result column="status" property="status"/>
     </resultMap>
+
     <select id="getConceptPage"
             parameterType="com.diagbot.vo.KlConceptInfoVO" resultType="com.diagbot.dto.KlConceptInfoDTO">
         SELECT
@@ -55,6 +56,7 @@
         GROUP BY a.concept_id
         ORDER BY b.status DESC ,b.gmt_modified DESC
     </select>
+
     <select id="getConceptAll" resultType="com.diagbot.dto.KlConceptAllDTO">
         SELECT
         a.concept_id AS conceptId,
@@ -130,4 +132,34 @@
         </if>
         ORDER BY b.status DESC ,b.gmt_modified DESC,b.id DESC
     </select>
+
+    <select id="getRelationConcept" parameterType="com.diagbot.vo.ConceptRelationVO" resultType="com.diagbot.dto.KlConceptSimDTO">
+        SELECT
+            t.id, t.lib_name, t.lib_type
+        FROM
+            kl_concept a,
+            kl_relation b,
+            kl_relation_order c,
+            kl_concept t
+        WHERE
+            a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND t.is_deleted = 'N'
+        AND a.`status` = 1
+        AND t.`status` = 1
+        <if test="conceptId!=null and conceptId!=''">
+            AND a.id = #{conceptId}
+        </if>
+        <if test="relationList != null and relationList.size() > 0">
+            and b.relation_id in
+            <foreach collection="relationList" item="item" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
+        AND a.id = b.start_id
+        AND b.id = c.t_relation_id
+        AND b.end_id = t.id
+        order by b.relation_id, c.order_no
+    </select>
 </mapper>

+ 1 - 0
cdssman-service/src/main/resources/mapper/KlDrugMappingMapper.xml

@@ -12,6 +12,7 @@
         <result column="modifier" property="modifier" />
         <result column="drug_concept" property="drugConcept" />
         <result column="register_id" property="registerId" />
+        <result column="oder_no" property="orderNo" />
         <result column="remark" property="remark" />
     </resultMap>
 

+ 34 - 0
cdssman-service/src/main/resources/mapper/KlDrugRegisterMapper.xml

@@ -27,4 +27,38 @@
         <result column="remark" property="remark" />
     </resultMap>
 
+    <select id="getPage" resultType="com.diagbot.dto.KlDrugRegisterDTO">
+        SELECT a.* FROM `kl_drug_register` a
+        WHERE a.is_deleted = 'N'
+        <if test="drugCode != null and drugCode != ''">
+            AND a.drug_code like concat ('%', #{drugCode}, '%')
+        </if>
+        <if test="name != null and name != ''">
+            AND (a.name like concat ('%', #{name}, '%') or
+            a.trade_name like concat ('%', #{name}, '%')
+            )
+        </if>
+        <if test="form != null and form != ''">
+            AND a.form like concat ('%', #{form}, '%')
+        </if>
+        <if test="specification != null and specification != ''">
+            AND a.specification like concat ('%', #{specification}, '%')
+        </if>
+        <if test="company != null and company != ''">
+            AND a.company like concat ('%', #{company}, '%')
+        </if>
+        <if test="approval != null and approval != ''">
+            AND a.approval like concat ('%', #{approval}, '%')
+        </if>
+        <if test="standardCode != null and standardCode != ''">
+            AND a.standard_code like concat ('%', #{standardCode}, '%')
+        </if>
+        <if test="insuranceType != null and insuranceType != ''">
+            AND a.insurance_type like concat ('%', #{insuranceType}, '%')
+        </if>
+        <if test="drugType != null and drugType != ''">
+            AND a.drug_type like concat ('%', #{drugType}, '%')
+        </if>
+        order by a.gmt_modified desc
+    </select>
 </mapper>

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

@@ -82,6 +82,7 @@ CREATE TABLE `kl_drug_mapping` (
   `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
   `drug_concept` bigint(20) NOT NULL DEFAULT '0' COMMENT '药品通用名conceptId',
   `register_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '药品注册名Id',
+  `order_no` int(11) NOT NULL DEFAULT '0' COMMENT '顺序号',
   `remark` varchar(300) DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`id`),
   KEY `drug_concept` (`drug_concept`) USING BTREE,

+ 4 - 0
docs/041.20210511知识库扩展/user_init.sql

@@ -0,0 +1,4 @@
+use `sys-user`;
+
+INSERT INTO `sys-user`.`sys_menu` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `parent_id`, `code`, `order_no`, `remark`) VALUES ('103', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '注册药品维护', '97', 'LT-ZSKKZWH-ZCYPWH', '6', '朗通-知识库扩展维护-注册药品维护');
+INSERT INTO `sys-user`.`sys_role_menu` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ('111', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '18', '103', '朗通-知识库扩展维护-注册药品维护');