Преглед изворни кода

Merge branch 'dev/knowledgeExt20210511' into debug

zhoutg пре 4 година
родитељ
комит
8d89065494
87 измењених фајлова са 5102 додато и 306 уклоњено
  1. 21 10
      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. 26 0
      cdssman-service/src/main/java/com/diagbot/dto/KlDrugDTO.java
  5. 95 0
      cdssman-service/src/main/java/com/diagbot/dto/KlDrugMappingDTO.java
  6. 135 0
      cdssman-service/src/main/java/com/diagbot/dto/KlDrugRegisterDTO.java
  7. 89 0
      cdssman-service/src/main/java/com/diagbot/dto/KlLisDTO.java
  8. 43 0
      cdssman-service/src/main/java/com/diagbot/dto/KlOperationDTO.java
  9. 73 0
      cdssman-service/src/main/java/com/diagbot/dto/KlPacsDTO.java
  10. 94 0
      cdssman-service/src/main/java/com/diagbot/dto/KlSymptomDTO.java
  11. 50 0
      cdssman-service/src/main/java/com/diagbot/dto/KlVitalResultDTO.java
  12. 20 0
      cdssman-service/src/main/java/com/diagbot/entity/CommonParam.java
  13. 282 26
      cdssman-service/src/main/java/com/diagbot/entity/KlDisease.java
  14. 73 0
      cdssman-service/src/main/java/com/diagbot/entity/KlDrugMapping.java
  15. 301 0
      cdssman-service/src/main/java/com/diagbot/entity/KlDrugRegister.java
  16. 34 78
      cdssman-service/src/main/java/com/diagbot/entity/KlLis.java
  17. 75 0
      cdssman-service/src/main/java/com/diagbot/entity/KlOperation.java
  18. 128 0
      cdssman-service/src/main/java/com/diagbot/entity/KlPacs.java
  19. 118 0
      cdssman-service/src/main/java/com/diagbot/entity/KlSymptom.java
  20. 75 0
      cdssman-service/src/main/java/com/diagbot/entity/KlVitalResult.java
  21. 50 0
      cdssman-service/src/main/java/com/diagbot/enums/InsertOrUpdateEnum.java
  22. 3 1
      cdssman-service/src/main/java/com/diagbot/enums/LexiconEnum.java
  23. 6 1
      cdssman-service/src/main/java/com/diagbot/enums/RelationLibTypeEnum.java
  24. 112 38
      cdssman-service/src/main/java/com/diagbot/facade/KlConceptFacade.java
  25. 64 57
      cdssman-service/src/main/java/com/diagbot/facade/KlDiseaseFacade.java
  26. 47 49
      cdssman-service/src/main/java/com/diagbot/facade/KlDrugFacade.java
  27. 51 0
      cdssman-service/src/main/java/com/diagbot/facade/KlDrugMappingFacade.java
  28. 203 0
      cdssman-service/src/main/java/com/diagbot/facade/KlDrugRegisterFacade.java
  29. 44 1
      cdssman-service/src/main/java/com/diagbot/facade/KlLisFacade.java
  30. 62 0
      cdssman-service/src/main/java/com/diagbot/facade/KlOperationFacade.java
  31. 70 0
      cdssman-service/src/main/java/com/diagbot/facade/KlPacsFacade.java
  32. 185 0
      cdssman-service/src/main/java/com/diagbot/facade/KlRelationFacade.java
  33. 95 0
      cdssman-service/src/main/java/com/diagbot/facade/KlSymptomFacade.java
  34. 63 0
      cdssman-service/src/main/java/com/diagbot/facade/KlVitalResFacade.java
  35. 5 1
      cdssman-service/src/main/java/com/diagbot/mapper/KlConceptMapper.java
  36. 16 0
      cdssman-service/src/main/java/com/diagbot/mapper/KlDrugMappingMapper.java
  37. 32 0
      cdssman-service/src/main/java/com/diagbot/mapper/KlDrugRegisterMapper.java
  38. 16 0
      cdssman-service/src/main/java/com/diagbot/mapper/KlOperationMapper.java
  39. 16 0
      cdssman-service/src/main/java/com/diagbot/mapper/KlPacsMapper.java
  40. 16 0
      cdssman-service/src/main/java/com/diagbot/mapper/KlSymptomMapper.java
  41. 16 0
      cdssman-service/src/main/java/com/diagbot/mapper/KlVitalResultMapper.java
  42. 5 2
      cdssman-service/src/main/java/com/diagbot/service/KlConceptService.java
  43. 16 0
      cdssman-service/src/main/java/com/diagbot/service/KlDrugMappingService.java
  44. 32 0
      cdssman-service/src/main/java/com/diagbot/service/KlDrugRegisterService.java
  45. 16 0
      cdssman-service/src/main/java/com/diagbot/service/KlOperationService.java
  46. 16 0
      cdssman-service/src/main/java/com/diagbot/service/KlPacsService.java
  47. 16 0
      cdssman-service/src/main/java/com/diagbot/service/KlSymptomService.java
  48. 16 0
      cdssman-service/src/main/java/com/diagbot/service/KlVitalResultService.java
  49. 7 0
      cdssman-service/src/main/java/com/diagbot/service/impl/KlConceptServiceImpl.java
  50. 22 0
      cdssman-service/src/main/java/com/diagbot/service/impl/KlDrugMappingServiceImpl.java
  51. 50 0
      cdssman-service/src/main/java/com/diagbot/service/impl/KlDrugRegisterServiceImpl.java
  52. 20 0
      cdssman-service/src/main/java/com/diagbot/service/impl/KlOperationServiceImpl.java
  53. 20 0
      cdssman-service/src/main/java/com/diagbot/service/impl/KlPacsServiceImpl.java
  54. 22 0
      cdssman-service/src/main/java/com/diagbot/service/impl/KlSymptomServiceImpl.java
  55. 20 0
      cdssman-service/src/main/java/com/diagbot/service/impl/KlVitalResultServiceImpl.java
  56. 17 0
      cdssman-service/src/main/java/com/diagbot/vo/ConceptRelationVO.java
  57. 6 5
      cdssman-service/src/main/java/com/diagbot/vo/KlConceptAllVO.java
  58. 32 7
      cdssman-service/src/main/java/com/diagbot/vo/KlConceptSaveVO.java
  59. 142 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDiseaseVO.java
  60. 29 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDrugMappingGetVO.java
  61. 24 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterDelVO.java
  62. 24 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterGetVO.java
  63. 66 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterImportExVO.java
  64. 94 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterPageVO.java
  65. 104 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterSaveVO.java
  66. 24 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDrugSearchVO.java
  67. 26 0
      cdssman-service/src/main/java/com/diagbot/vo/KlDrugVO.java
  68. 88 0
      cdssman-service/src/main/java/com/diagbot/vo/KlLisVO.java
  69. 43 0
      cdssman-service/src/main/java/com/diagbot/vo/KlOperationVO.java
  70. 73 0
      cdssman-service/src/main/java/com/diagbot/vo/KlPacsVO.java
  71. 93 0
      cdssman-service/src/main/java/com/diagbot/vo/KlSymptomVO.java
  72. 50 0
      cdssman-service/src/main/java/com/diagbot/vo/KlVitalResultVO.java
  73. 107 6
      cdssman-service/src/main/java/com/diagbot/web/KlConceptController.java
  74. 117 0
      cdssman-service/src/main/java/com/diagbot/web/KlDrugRegisterController.java
  75. 32 12
      cdssman-service/src/main/resources/mapper/KlConceptMapper.xml
  76. 31 10
      cdssman-service/src/main/resources/mapper/KlDiseaseMapper.xml
  77. 19 0
      cdssman-service/src/main/resources/mapper/KlDrugMappingMapper.xml
  78. 111 0
      cdssman-service/src/main/resources/mapper/KlDrugRegisterMapper.xml
  79. 7 0
      cdssman-service/src/main/resources/mapper/KlLisMapper.xml
  80. 19 0
      cdssman-service/src/main/resources/mapper/KlOperationMapper.xml
  81. 25 0
      cdssman-service/src/main/resources/mapper/KlPacsMapper.xml
  82. 28 0
      cdssman-service/src/main/resources/mapper/KlSymptomMapper.xml
  83. 19 0
      cdssman-service/src/main/resources/mapper/KlVitalResultMapper.xml
  84. 2 2
      cdssman-service/src/test/java/com/diagbot/CodeGeneration.java
  85. 91 0
      cdssman-service/src/test/java/com/diagbot/PrintUtil.java
  86. 187 0
      docs/041.20210511知识库扩展/knowledgeExt_init.sql
  87. 4 0
      docs/041.20210511知识库扩展/user_init.sql

+ 21 - 10
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;
 
@@ -28,14 +26,27 @@ public class KlConceptAllDTO {
     private Integer isHasCommon;
     private Double minAge;
     private Double maxAge;
-    private Double minVal;
-    private Double maxVal;
-    private String unit;
-    private Integer scopeType;
-    private String  icdCode;
     private String remark;
-    private Integer drug;
-    private Long deptId;
-    private String deptName;
     private List<KlConceptAllSubDTO> klConceptSub;
+
+    // 疾病扩展信息
+    private KlDiseaseDTO klDiseaseDTO;
+
+    // 药品扩展信息
+    private KlDrugDTO klDrugDTO;
+
+    // 症状扩展信息
+    private KlSymptomDTO klSymptomDTO;
+
+    //化验扩展信息
+    private KlLisDTO klLisDTO;
+
+    //辅检扩展信息
+    private KlPacsDTO klPacsDTO;
+
+    //手术扩展信息
+    private KlOperationDTO klOperationDTO;
+
+    //体征结果扩展信息
+    private KlVitalResultDTO klVitalResultDTO;
 }

+ 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();
+
+}

+ 26 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlDrugDTO.java

@@ -0,0 +1,26 @@
+package com.diagbot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 药品
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlDrugDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    // 药品类别(0:西药,1:中成药)
+    private Integer drug;
+
+    // 通用药品名关联注册药品
+    // private List<KlDrugMappingDTO> klDrugMappingDTOList = Lists.newLinkedList();
+
+}

+ 95 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlDrugMappingDTO.java

@@ -0,0 +1,95 @@
+package com.diagbot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 药品注册表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlDrugMappingDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 药品代码
+     */
+    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;
+
+}

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

@@ -0,0 +1,135 @@
+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;
+
+    /**
+     * 药品通用名
+     */
+    private Long drugConceptId;
+
+    /**
+     * 药品通用名
+     */
+    private String drugName;
+}

+ 89 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlLisDTO.java

@@ -0,0 +1,89 @@
+package com.diagbot.dto;
+
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+;
+
+/**
+ * <p>
+ * 化验表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlLisDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 最小值
+     */
+    private Double minValue;
+
+    /**
+     * 最大值
+     */
+    private Double maxValue;
+
+    /**
+     * 类型(0:范围内;1:范围外)
+     */
+    private Integer type;
+
+    /**
+     * 单位概念id
+     */
+
+    private String unit;
+
+    /**
+     * 检查标本
+     */
+    private String checkSpecimen;
+
+    /**
+     * 检查方法
+     */
+    private String checkMethod;
+
+    /**
+     * 影响因素
+     */
+    private String influenceFac;
+
+    /**
+     * 临床意义
+     */
+    private String clinicalSig;
+
+    /**
+     * 定性(阴、阳性)
+     */
+    private String qualitative;
+
+    /**
+     * 所属类别
+     */
+    private String category;
+
+    /**
+     * 英文名称
+     */
+    private String enName;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 43 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlOperationDTO.java

@@ -0,0 +1,43 @@
+package com.diagbot.dto;
+
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+;
+
+/**
+ * <p>
+ * 手术表
+ * </p>
+ *
+ * @author kwz
+ * @since 2021-05-11
+ */
+@Data
+public class KlOperationDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 手术级别(0,1,2,3,4)
+     */
+    private Integer operationLevel;
+
+    /**
+     * 手术操作码
+     */
+    private String operationCode;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 73 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlPacsDTO.java

@@ -0,0 +1,73 @@
+package com.diagbot.dto;
+
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+;
+
+/**
+ * <p>
+ * 辅检表
+ * </p>
+ *
+ * @author kwz
+ * @since 2021-05-11
+ */
+@Data
+public class KlPacsDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 检查方法
+     */
+    private String checkMethod;
+
+    /**
+     * 项目定义
+     */
+    private String definition;
+
+    /**
+     * 检查目的
+     */
+    private String checkObjective;
+
+    /**
+     * 检查技术
+     */
+    private String checkSkillful;
+
+    /**
+     * 禁忌症和局限性
+     */
+    private String condLimit;
+
+    /**
+     * 适应症
+     */
+    private String interventional;
+
+    /**
+     * 危急标识(0:不危急,1:危急)
+     */
+    private Integer emergencySign;
+
+    /**
+     * 检查前准备
+     */
+    private String checkPrepare;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 94 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlSymptomDTO.java

@@ -0,0 +1,94 @@
+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-12
+ */
+@Data
+public class KlSymptomDTO 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<KlConceptSimDTO> deptList = Lists.newLinkedList();
+
+    // 部位列表
+    private List<KlConceptSimDTO> partList = Lists.newLinkedList();
+
+    // 常见伴随症状列表
+    private List<KlConceptSimDTO> conSymptomList = Lists.newLinkedList();
+
+    // 性质列表
+    private List<KlConceptSimDTO> natureList = Lists.newLinkedList();
+
+}

+ 50 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlVitalResultDTO.java

@@ -0,0 +1,50 @@
+package com.diagbot.dto;
+
+
+import com.google.common.collect.Lists;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+;
+
+/**
+ * <p>
+ * 手术表
+ * </p>
+ *
+ * @author kwz
+ * @since 2021-05-11
+ */
+@Data
+public class KlVitalResultDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 不适宜人群
+     */
+    private String suitablePopNo;
+
+    /**
+     * 操作方法
+     */
+    private String checkMethod;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    // 科室列表
+    private List<KlConceptSimDTO> deptList = Lists.newLinkedList();
+
+    // 部位列表
+    private List<KlConceptSimDTO> partList = Lists.newLinkedList();
+}

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

@@ -0,0 +1,20 @@
+package com.diagbot.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @Description:
+ * @Author: ztg
+ * @Date: 2018/12/14 14:15
+ */
+@Getter
+@Setter
+public class CommonParam {
+    private String person;     //操作人
+    private Date now;          //当前时间
+    private Long conceptId;    //conceptId
+    private int insertOrUpdate;//更新或新增标识
+}

+ 282 - 26
cdssman-service/src/main/java/com/diagbot/entity/KlDisease.java

@@ -11,8 +11,8 @@ import java.util.Date;
  * 疾病表
  * </p>
  *
- * @author wangfeng
- * @since 2021-03-01
+ * @author zhoutg
+ * @since 2021-05-11
  */
 public class KlDisease implements Serializable {
 
@@ -54,24 +54,120 @@ public class KlDisease implements Serializable {
      */
     private Long conceptId;
 
+    /**
+     * 科室概念id
+     */
     private Long deptId;
+
     /**
      * ICD10编号
      */
     private String icd10Code;
 
     /**
-     * 备注
+     * 病程
      */
-    private String remark;
+    private String course;
 
-    public Long getDeptId() {
-        return deptId;
-    }
+    /**
+     * 诱因
+     */
+    private String inducement;
 
-    public void setDeptId(Long deptId) {
-        this.deptId = deptId;
-    }
+    /**
+     * 饮食禁忌
+     */
+    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;
 
     public Long getId() {
         return id;
@@ -80,7 +176,6 @@ public class KlDisease implements Serializable {
     public void setId(Long id) {
         this.id = id;
     }
-
     public String getIsDeleted() {
         return isDeleted;
     }
@@ -88,7 +183,6 @@ public class KlDisease implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
-
     public Date getGmtCreate() {
         return gmtCreate;
     }
@@ -96,7 +190,6 @@ public class KlDisease implements Serializable {
     public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
-
     public Date getGmtModified() {
         return gmtModified;
     }
@@ -104,7 +197,6 @@ public class KlDisease implements Serializable {
     public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
-
     public String getCreator() {
         return creator;
     }
@@ -112,7 +204,6 @@ public class KlDisease implements Serializable {
     public void setCreator(String creator) {
         this.creator = creator;
     }
-
     public String getModifier() {
         return modifier;
     }
@@ -120,7 +211,6 @@ public class KlDisease implements Serializable {
     public void setModifier(String modifier) {
         this.modifier = modifier;
     }
-
     public Long getConceptId() {
         return conceptId;
     }
@@ -128,7 +218,13 @@ public class KlDisease implements Serializable {
     public void setConceptId(Long conceptId) {
         this.conceptId = conceptId;
     }
+    public Long getDeptId() {
+        return deptId;
+    }
 
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
     public String getIcd10Code() {
         return icd10Code;
     }
@@ -136,7 +232,146 @@ public class KlDisease implements Serializable {
     public void setIcd10Code(String icd10Code) {
         this.icd10Code = icd10Code;
     }
+    public String getCourse() {
+        return course;
+    }
+
+    public void setCourse(String course) {
+        this.course = course;
+    }
+    public String getInducement() {
+        return inducement;
+    }
+
+    public void setInducement(String inducement) {
+        this.inducement = inducement;
+    }
+    public String getFoodProhibition() {
+        return foodProhibition;
+    }
+
+    public void setFoodProhibition(String foodProhibition) {
+        this.foodProhibition = foodProhibition;
+    }
+    public String getHazard() {
+        return hazard;
+    }
+
+    public void setHazard(String hazard) {
+        this.hazard = hazard;
+    }
+    public String getHealing() {
+        return healing;
+    }
+
+    public void setHealing(String healing) {
+        this.healing = healing;
+    }
+    public String getPernicious() {
+        return pernicious;
+    }
 
+    public void setPernicious(String pernicious) {
+        this.pernicious = pernicious;
+    }
+    public String getClinicType() {
+        return clinicType;
+    }
+
+    public void setClinicType(String clinicType) {
+        this.clinicType = clinicType;
+    }
+    public String getVulArea() {
+        return vulArea;
+    }
+
+    public void setVulArea(String vulArea) {
+        this.vulArea = vulArea;
+    }
+    public String getVulCrowd() {
+        return vulCrowd;
+    }
+
+    public void setVulCrowd(String vulCrowd) {
+        this.vulCrowd = vulCrowd;
+    }
+    public Double getIncidence() {
+        return incidence;
+    }
+
+    public void setIncidence(Double incidence) {
+        this.incidence = incidence;
+    }
+    public Integer getIsInfect() {
+        return isInfect;
+    }
+
+    public void setIsInfect(Integer isInfect) {
+        this.isInfect = isInfect;
+    }
+    public String getComplication() {
+        return complication;
+    }
+
+    public void setComplication(String complication) {
+        this.complication = complication;
+    }
+    public String getPathogeny() {
+        return pathogeny;
+    }
+
+    public void setPathogeny(String pathogeny) {
+        this.pathogeny = pathogeny;
+    }
+    public String getDisType() {
+        return disType;
+    }
+
+    public void setDisType(String disType) {
+        this.disType = disType;
+    }
+    public Integer getChWestern() {
+        return chWestern;
+    }
+
+    public void setChWestern(Integer chWestern) {
+        this.chWestern = chWestern;
+    }
+    public Integer getIsCommonDis() {
+        return isCommonDis;
+    }
+
+    public void setIsCommonDis(Integer isCommonDis) {
+        this.isCommonDis = isCommonDis;
+    }
+    public Integer getIsHeredity() {
+        return isHeredity;
+    }
+
+    public void setIsHeredity(Integer isHeredity) {
+        this.isHeredity = isHeredity;
+    }
+    public String getNameSimple() {
+        return nameSimple;
+    }
+
+    public void setNameSimple(String nameSimple) {
+        this.nameSimple = nameSimple;
+    }
+    public String getEnNameSimple() {
+        return enNameSimple;
+    }
+
+    public void setEnNameSimple(String enNameSimple) {
+        this.enNameSimple = enNameSimple;
+    }
+    public String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
     public String getRemark() {
         return remark;
     }
@@ -148,15 +383,36 @@ public class KlDisease implements Serializable {
     @Override
     public String toString() {
         return "KlDisease{" +
-                "id=" + id +
-                ", isDeleted=" + isDeleted +
-                ", gmtCreate=" + gmtCreate +
-                ", gmtModified=" + gmtModified +
-                ", creator=" + creator +
-                ", modifier=" + modifier +
-                ", conceptId=" + conceptId +
-                ", icd10Code=" + icd10Code +
-                ", remark=" + remark +
-                "}";
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", conceptId=" + conceptId +
+            ", deptId=" + deptId +
+            ", icd10Code=" + icd10Code +
+            ", course=" + course +
+            ", inducement=" + inducement +
+            ", foodProhibition=" + foodProhibition +
+            ", hazard=" + hazard +
+            ", healing=" + healing +
+            ", pernicious=" + pernicious +
+            ", clinicType=" + clinicType +
+            ", vulArea=" + vulArea +
+            ", vulCrowd=" + vulCrowd +
+            ", incidence=" + incidence +
+            ", isInfect=" + isInfect +
+            ", complication=" + complication +
+            ", pathogeny=" + pathogeny +
+            ", disType=" + disType +
+            ", chWestern=" + chWestern +
+            ", isCommonDis=" + isCommonDis +
+            ", isHeredity=" + isHeredity +
+            ", nameSimple=" + nameSimple +
+            ", enNameSimple=" + enNameSimple +
+            ", enName=" + enName +
+            ", remark=" + remark +
+        "}";
     }
 }

+ 73 - 0
cdssman-service/src/main/java/com/diagbot/entity/KlDrugMapping.java

@@ -0,0 +1,73 @@
+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-11
+ */
+@Data
+public class KlDrugMapping 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;
+
+    /**
+     * 药品通用名conceptId
+     */
+    private Long drugConcept;
+
+    /**
+     * 药品注册名Id
+     */
+    private Long registerId;
+
+    /**
+     * 顺序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 301 - 0
cdssman-service/src/main/java/com/diagbot/entity/KlDrugRegister.java

@@ -0,0 +1,301 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 药品注册表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+public class KlDrugRegister 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;
+
+    /**
+     * 药品代码
+     */
+    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;
+
+    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 Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date 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 String getDrugCode() {
+        return drugCode;
+    }
+
+    public void setDrugCode(String drugCode) {
+        this.drugCode = drugCode;
+    }
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    public String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
+    public String getTradeName() {
+        return tradeName;
+    }
+
+    public void setTradeName(String tradeName) {
+        this.tradeName = tradeName;
+    }
+    public String getForm() {
+        return form;
+    }
+
+    public void setForm(String form) {
+        this.form = form;
+    }
+    public String getSpecification() {
+        return specification;
+    }
+
+    public void setSpecification(String specification) {
+        this.specification = specification;
+    }
+    public String getMinPackQuantity() {
+        return minPackQuantity;
+    }
+
+    public void setMinPackQuantity(String minPackQuantity) {
+        this.minPackQuantity = minPackQuantity;
+    }
+    public String getMinPackUnit() {
+        return minPackUnit;
+    }
+
+    public void setMinPackUnit(String minPackUnit) {
+        this.minPackUnit = minPackUnit;
+    }
+    public String getCompany() {
+        return company;
+    }
+
+    public void setCompany(String company) {
+        this.company = company;
+    }
+    public String getApproval() {
+        return approval;
+    }
+
+    public void setApproval(String approval) {
+        this.approval = approval;
+    }
+    public String getStandardCode() {
+        return standardCode;
+    }
+
+    public void setStandardCode(String standardCode) {
+        this.standardCode = standardCode;
+    }
+    public String getInsuranceType() {
+        return insuranceType;
+    }
+
+    public void setInsuranceType(String insuranceType) {
+        this.insuranceType = insuranceType;
+    }
+    public String getInsuranceRemrk() {
+        return insuranceRemrk;
+    }
+
+    public void setInsuranceRemrk(String insuranceRemrk) {
+        this.insuranceRemrk = insuranceRemrk;
+    }
+    public String getDrugType() {
+        return drugType;
+    }
+
+    public void setDrugType(String drugType) {
+        this.drugType = drugType;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "KlDrugRegister{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", drugCode=" + drugCode +
+            ", name=" + name +
+            ", enName=" + enName +
+            ", tradeName=" + tradeName +
+            ", form=" + form +
+            ", specification=" + specification +
+            ", minPackQuantity=" + minPackQuantity +
+            ", minPackUnit=" + minPackUnit +
+            ", company=" + company +
+            ", approval=" + approval +
+            ", standardCode=" + standardCode +
+            ", insuranceType=" + insuranceType +
+            ", insuranceRemrk=" + insuranceRemrk +
+            ", drugType=" + drugType +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 34 - 78
cdssman-service/src/main/java/com/diagbot/entity/KlLis.java

@@ -2,6 +2,8 @@ package com.diagbot.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -14,6 +16,8 @@ import java.util.Date;
  * @author wangfeng
  * @since 2021-03-01
  */
+@Setter
+@Getter
 public class KlLis implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -76,94 +80,46 @@ public class KlLis implements Serializable {
     private String unit;
 
     /**
-     * 备注
+     * 检查标本
      */
-    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 Date getGmtCreate() {
-        return gmtCreate;
-    }
+    private String checkSpecimen;
 
-    public void setGmtCreate(Date gmtCreate) {
-        this.gmtCreate = gmtCreate;
-    }
-    public Date getGmtModified() {
-        return gmtModified;
-    }
-
-    public void setGmtModified(Date gmtModified) {
-        this.gmtModified = gmtModified;
-    }
-    public String getCreator() {
-        return creator;
-    }
+    /**
+     * 检查方法
+     */
+    private String checkMethod;
 
-    public void setCreator(String creator) {
-        this.creator = creator;
-    }
-    public String getModifier() {
-        return modifier;
-    }
+    /**
+     * 影响因素
+     */
+    private String influenceFac;
 
-    public void setModifier(String modifier) {
-        this.modifier = modifier;
-    }
-    public Long getConceptId() {
-        return conceptId;
-    }
+    /**
+     * 临床意义
+     */
+    private String clinicalSig;
 
-    public void setConceptId(Long conceptId) {
-        this.conceptId = conceptId;
-    }
-    public Double getMinValue() {
-        return minValue;
-    }
+    /**
+     * 定性(阴、阳性)
+     */
+    private String qualitative;
 
-    public void setMinValue(Double minValue) {
-        this.minValue = minValue;
-    }
-    public Double getMaxValue() {
-        return maxValue;
-    }
+    /**
+     * 所属类别
+     */
+    private String category;
 
-    public void setMaxValue(Double maxValue) {
-        this.maxValue = maxValue;
-    }
-    public Integer getType() {
-        return type;
-    }
+    /**
+     * 英文名称
+     */
+    private String enName;
 
-    public void setType(Integer type) {
-        this.type = type;
-    }
-    public String getUnit() {
-        return unit;
-    }
+    /**
+     * 备注
+     */
+    private String remark;
 
-    public void setUnit(String unit) {
-        this.unit = unit;
-    }
-    public String getRemark() {
-        return remark;
-    }
 
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
 
     @Override
     public String toString() {

+ 75 - 0
cdssman-service/src/main/java/com/diagbot/entity/KlOperation.java

@@ -0,0 +1,75 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 手术扩展表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-12
+ */
+@Data
+public class KlOperation 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;
+
+    /**
+     * 手术级别(0,1,2,3,4)
+     */
+    private Integer operationLevel;
+
+    /**
+     * 手术操作码
+     */
+    private String operationCode;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 128 - 0
cdssman-service/src/main/java/com/diagbot/entity/KlPacs.java

@@ -0,0 +1,128 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 辅检扩展表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-12
+ */
+@Data
+public class KlPacs 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 checkMethod;
+
+    /**
+     * 项目定义
+     */
+    private String definition;
+
+    /**
+     * 检查目的
+     */
+    private String checkObjective;
+
+    /**
+     * 检查技术
+     */
+    private String checkSkillful;
+
+    /**
+     * 禁忌症和局限性
+     */
+    private String condLimit;
+
+    /**
+     * 适应症
+     */
+    private String interventional;
+
+    /**
+     * 危急标识(0:不危急,1:危急)
+     */
+    private Integer emergencySign;
+
+    /**
+     * 检查前准备
+     */
+    private String checkPrepare;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+
+    @Override
+    public String toString() {
+        return "KlPacs{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", conceptId=" + conceptId +
+            ", checkMethod=" + checkMethod +
+            ", definition=" + definition +
+            ", checkObjective=" + checkObjective +
+            ", checkSkillful=" + checkSkillful +
+            ", condLimit=" + condLimit +
+            ", interventional=" + interventional +
+            ", emergencySign=" + emergencySign +
+            ", checkPrepare=" + checkPrepare +
+            ", remark=" + remark +
+        "}";
+    }
+}

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

@@ -0,0 +1,118 @@
+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;
+
+    /**
+     * 阳性症状(0:否,1:是)
+     */
+    private Integer isPositive;
+
+    /**
+     * 英文名称
+     */
+    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;
+}

+ 75 - 0
cdssman-service/src/main/java/com/diagbot/entity/KlVitalResult.java

@@ -0,0 +1,75 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 体征结果扩展表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-12
+ */
+@Data
+public class KlVitalResult 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 suitablePopNo;
+
+    /**
+     * 操作方法
+     */
+    private String checkMethod;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 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

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

@@ -20,7 +20,12 @@ public enum RelationLibTypeEnum implements KeyedNamed {
     disOperator(507, "106"),
     disDifferentDis(508, "100"),
     disLiangbiao(509,"124"),
-    disNurse(510,"123");
+    disNurse(510,"123"),
+    relationDept(511,"115"),
+    relationPart(512,"122"),
+    relationSystem(513,"411"),
+    relationAccSymptom(514,"103"),
+    relationNature(515,"412");
 
 
     @Setter

+ 112 - 38
cdssman-service/src/main/java/com/diagbot/facade/KlConceptFacade.java

@@ -8,7 +8,9 @@ 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;
 import com.diagbot.entity.KlConceptCommon;
 import com.diagbot.entity.KlConceptStatic;
@@ -27,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;
@@ -41,13 +45,13 @@ 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;
 
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Random;
@@ -86,6 +90,17 @@ public class KlConceptFacade extends KlConceptServiceImpl {
     KlDiagnoseBaseFacade klDiagnoseBaseFacade;
     @Autowired
     KlDrugFacade klDrugFacade;
+    @Autowired
+    KlSymptomFacade klSymptomFacade;
+    @Autowired
+    KlPacsFacade klPacsFacade;
+    @Autowired
+    KlOperationFacade klOperationFacade;
+    @Autowired
+    KlVitalResFacade klVitalResFacade;
+    @Autowired
+    KlDrugMappingFacade klDrugMappingFacade;
+
 
     /**
      * @param klConceptInfoVO
@@ -146,21 +161,14 @@ public class KlConceptFacade extends KlConceptServiceImpl {
      * @return
      */
     public KlConceptAllDTO getConceptAlls(KlConceptAllVO klConceptAllVO) {
-        //获取科室;
-        QueryWrapper<KlConcept> klConceptQuer = new QueryWrapper<>();
-        klConceptQuer.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("lib_type", LexiconEnum.Dept.getKey());
-        List<KlConcept> klConceptsDept = list(klConceptQuer);
-        Map<Long, String> deptMap = klConceptsDept.stream().collect(HashMap::new,
-                (m, v) -> m.put(v.getId(), v.getLibName()), HashMap::putAll);
+        Long conceptId = klConceptAllVO.getConceptId();
         List<KlConceptAllDTO> conceptAll = getConceptAll(klConceptAllVO);
+
         KlConceptAllDTO klConceptAll = new KlConceptAllDTO();
         List<KlConceptAllSubDTO> klConceptSub = new ArrayList<>();
         if (ListUtil.isNotEmpty(conceptAll)) {
             for (KlConceptAllDTO data : conceptAll) {
                 if (data.getIsConcept().equals(1)) {
-                    if (null != data.getDeptId()) {
-                        data.setDeptName(deptMap.get(data.getDeptId()));
-                    }
                     BeanUtil.copyProperties(data, klConceptAll);
                 } else {
                     KlConceptAllSubDTO klConceptAllSubDTO = new KlConceptAllSubDTO();
@@ -170,6 +178,37 @@ public class KlConceptFacade extends KlConceptServiceImpl {
             }
         }
         klConceptAll.setKlConceptSub(klConceptSub);
+
+        LexiconEnum lexiconEnum = LexiconEnum.getEnum(klConceptAllVO.getLibType());
+        if (lexiconEnum != null) {
+            ConceptRelationVO conceptRelationVO = new ConceptRelationVO();
+            conceptRelationVO.setConceptId(conceptId);
+            switch (lexiconEnum) {
+                case Disease: // 疾病扩展 kl_disease, kl_relation,kl_relation_order
+                    klDiseaseFacade.getKlDisease(conceptId, klConceptAll);
+                    break;
+                case Symptom: // 症状扩展 kl_symptom, kl_relation,kl_relation_order
+                    klSymptomFacade.getKlSymptom(conceptId, klConceptAll);
+                    break;
+                case Medicine: // 药品扩展 kl_drug
+                    klDrugFacade.getKlDrug(conceptId, klConceptAll);
+                    break;
+                case LisName:
+                case LisSubName: // 化验扩展 kl_lis
+                    klLisFacade.getKlLis(conceptId, klConceptAll);
+                    break;
+                case PacsName:
+                case PacsSubName: // 辅检扩展 kl_pacs
+                    klPacsFacade.getKlPacs(conceptId, klConceptAll);
+                    break;
+                case Operation: // 手术扩展 kl_operation
+                    klOperationFacade.getKlOperation(conceptId, klConceptAll);
+                    break;
+                case VitalResult: //体征结果扩展 kl_vital_result, kl_relation,kl_relation_order
+                    klVitalResFacade.getKlVitalResult(conceptId, klConceptAll);
+                    break;
+            }
+        }
         return klConceptAll;
     }
 
@@ -179,6 +218,8 @@ public class KlConceptFacade extends KlConceptServiceImpl {
      */
     public Boolean saveConceptInfo(KlConceptSaveVO klConceptSaveVO) {
         Date now = DateUtil.now();
+
+        CommonParam commonParam = initCommonParam();
         boolean res = false;
         // 校验名称是否相同
         checkConcept(klConceptSaveVO);
@@ -191,6 +232,7 @@ public class KlConceptFacade extends KlConceptServiceImpl {
         klLibraryInfoFacade.checkLibraryInfoData(paesubVO);
         //先判断是新加的,还是修改
         if (null != klConceptSaveVO.getConceptId() && null != klConceptSaveVO.getLibId()) {
+            commonParam.setConceptId(klConceptSaveVO.getConceptId());
             //更新标准词
             res = updateAll(klConceptSaveVO);
             //更新同义词
@@ -237,11 +279,12 @@ public class KlConceptFacade extends KlConceptServiceImpl {
             klConceptPare.setGmtCreate(now);
             klConceptPare.setGmtModified(now);
             res = save(klConceptPare);
+            commonParam.setConceptId(klConceptPare.getId()); // 赋值conceptId
             if (res) {
                 //2.再把标准词d的conceptId保存到kl_library_info表 生成libId,
                 Long conceptId = klConceptPare.getId();
                 KlLibraryInfo klLibraryInfoSub = new KlLibraryInfo();
-                klLibraryInfoSub.setConceptId(conceptId);
+                klLibraryInfoSub.setConceptId(commonParam.getConceptId());
                 klLibraryInfoSub.setName(klConceptSaveVO.getLibName());
                 klLibraryInfoSub.setSpell(klConceptSaveVO.getSpell());
                 klLibraryInfoSub.setTypeId(klConceptSaveVO.getLibType());
@@ -274,32 +317,47 @@ public class KlConceptFacade extends KlConceptServiceImpl {
                 conceptCommon.setGmtModified(now);
                 klConceptCommonFacade.save(conceptCommon);
             }
-            //更新kl_disease
-            if (null != klConceptSaveVO.getIcdCode()) {
-                res = klDiseaseFacade.saveAll(klConceptPare, klConceptSaveVO);
-            }
-
-            //更新kl_lis
-            if (null != klConceptSaveVO.getScopeType()) {
-                res = klLisFacade.saveAll(klConceptPare, klConceptSaveVO);
-            }
-            if (null != klConceptSaveVO.getDrug()) {
-                res = klDrugFacade.saveAll(klConceptPare, klConceptSaveVO);
-            }
             //增加同义词
             List<KlConceptSaveSubVO> klConceptSub = klConceptSaveVO.getKlConceptSub();
             if (ListUtil.isNotEmpty(klConceptSub)) {
                 for (KlConceptSaveSubVO subVO : klConceptSub) {
                     if (subVO.getLibId() == null) {
-
                         klLibraryInfoFacade.checkLibraryInfoData(subVO);
-
                         res = klLibraryInfoFacade.savekLibraryInfoData(klConceptPare.getId(), subVO);
                     }
                 }
             }
+        }
 
-
+        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;
+                case Medicine: //  药品通用名扩展 kl_drug
+                    klDrugFacade.saveKlDrug(commonParam, klConceptSaveVO.getKlDrugVO());
+                    break;
+                case LisName:
+                case LisSubName:
+                    klLisFacade.saveAll(commonParam,klConceptSaveVO.getKlLisVO());
+                    break;
+                case PacsSubName:
+                case PacsName:
+                    klPacsFacade.saveAll(commonParam,klConceptSaveVO.getKlPacsVO());
+                    break;
+                case Operation:
+                    klOperationFacade.saveAll(commonParam,klConceptSaveVO.getKlOperationVO());
+                    break;
+                case VitalResult:
+                    klRelationFacade.saveKlVitalRes(commonParam, klConceptSaveVO.getKlVitalResultVO());
+                    break;
+            }
         }
         return res;
     }
@@ -330,18 +388,6 @@ public class KlConceptFacade extends KlConceptServiceImpl {
             //当是疾病的时候才保存性别和年龄大小的数据
             res = klConceptCommonFacade.saveOrUpdateAll(klConceptSaveVO);
         }
-        //更新kl_disease
-        if (null != klConceptSaveVO.getIcdCode()) {
-            //当icd10编码不为空
-            res = klDiseaseFacade.saveOrUpdateAll(klConceptSaveVO);
-        }
-        //更新kl_lis
-        if (null != klConceptSaveVO.getScopeType()) {
-            res = klLisFacade.saveOrUpdateAll(klConceptSaveVO);
-        }
-        if (null != klConceptSaveVO.getDrug()) {
-            klDrugFacade.saveOrUpdateAll(klConceptSaveVO);
-        }
         return res;
     }
 
@@ -526,4 +572,32 @@ public class KlConceptFacade extends KlConceptServiceImpl {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "医学标准术语名称已存在同义词");
         }
     }
+
+    /**
+     * 根据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;
+    }
+
+    /**
+     * 初始化参数
+     *
+     * @return
+     */
+    public CommonParam initCommonParam() {
+        CommonParam param = new CommonParam();
+        String person = UserUtils.getCurrentPrincipleID();
+        param.setNow(DateUtil.now());
+        param.setPerson(person);
+        return param;
+    }
 }

+ 64 - 57
cdssman-service/src/main/java/com/diagbot/facade/KlDiseaseFacade.java

@@ -1,7 +1,6 @@
 package com.diagbot.facade;
 
 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.UserServiceClient;
 import com.diagbot.dto.DiseaseAllDetailDTO;
@@ -9,37 +8,41 @@ 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;
 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.DateUtil;
+import com.diagbot.util.BeanUtil;
 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.DiseaseDeleteVO;
 import com.diagbot.vo.DiseasePageVO;
 import com.diagbot.vo.GetDiseaseDetailVO;
-import com.diagbot.vo.KlConceptSaveVO;
+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.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+
 /**
  * @author wangfeng
  * @Description:
@@ -172,58 +175,62 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
         return diseaseTreeDetailDTO;
     }
 
-
-    public boolean saveOrUpdateAll(KlConceptSaveVO klConceptSaveVO) {
-        Date now = DateUtil.now();
-        boolean res = false;
-        if (null != klConceptSaveVO.getConceptId()) {
-            //校验
-            int countLis = this.count(new QueryWrapper<KlDisease>()
-                    .eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .eq("concept_id", klConceptSaveVO.getConceptId()));
-            if (countLis > 0) {
-                UpdateWrapper<KlDisease> klDiseaseQuerySub = new UpdateWrapper<>();
-                klDiseaseQuerySub.eq("is_deleted", IsDeleteEnum.N.getKey())
-                        .eq("concept_id", klConceptSaveVO.getConceptId())
-                        .set("gmt_modified", now)
-                        .set("modifier", UserUtils.getCurrentPrincipleID())
-                        .set("dept_id", klConceptSaveVO.getDeptId())
-                        .set(StringUtil.isNotBlank(klConceptSaveVO.getIcdCode()), "icd10_code", klConceptSaveVO.getIcdCode());
-                res = this.update(new KlDisease(), klDiseaseQuerySub);
-            } else {
-                KlDisease kllDiseaseSub = new KlDisease();
-                kllDiseaseSub.setConceptId(klConceptSaveVO.getConceptId());
-                kllDiseaseSub.setGmtModified(now);
-                kllDiseaseSub.setDeptId(klConceptSaveVO.getDeptId());
-                kllDiseaseSub.setModifier(UserUtils.getCurrentPrincipleID());
-                kllDiseaseSub.setIcd10Code(klConceptSaveVO.getIcdCode());
-                res = this.save(kllDiseaseSub);
-            }
-
-        } else {
-            KlDisease kllDiseaseSub = new KlDisease();
-            kllDiseaseSub.setConceptId(klConceptSaveVO.getConceptId());
-            kllDiseaseSub.setGmtModified(now);
-            kllDiseaseSub.setDeptId(klConceptSaveVO.getDeptId());
-            kllDiseaseSub.setModifier(UserUtils.getCurrentPrincipleID());
-            kllDiseaseSub.setIcd10Code(klConceptSaveVO.getIcdCode());
-            res = this.save(kllDiseaseSub);
-        }
-        return res;
+    /**
+     * 保存疾病扩展表
+     *
+     * @param commonParam
+     * @param klDiseaseVO
+     * @return
+     */
+    public boolean saveAll(CommonParam commonParam, KlDiseaseVO klDiseaseVO) {
+        // 先删除疾病扩展表
+        this.remove(new QueryWrapper<KlDisease>().eq("concept_id", commonParam.getConceptId()));
+        // 重新插入扩展表
+        KlDisease klDisease = new KlDisease();
+        BeanUtil.copyProperties(klDiseaseVO, klDisease);
+        klDisease.setConceptId(commonParam.getConceptId());
+        klDisease.setGmtModified(commonParam.getNow());
+        klDisease.setGmtCreate(commonParam.getNow());
+        klDisease.setCreator(commonParam.getPerson());
+        klDisease.setModifier(commonParam.getPerson());
+        return this.save(klDisease);
     }
 
-    public boolean saveAll(KlConcept klConceptPare, KlConceptSaveVO klConceptSaveVO) {
-        Date now = DateUtil.now();
-        KlDisease kllDiseaseSub = new KlDisease();
-        kllDiseaseSub.setConceptId(klConceptPare.getId());
-        kllDiseaseSub.setGmtModified(now);
-        kllDiseaseSub.setDeptId(klConceptSaveVO.getDeptId());
-        kllDiseaseSub.setIcd10Code(klConceptSaveVO.getIcdCode());
-        kllDiseaseSub.setCreator(UserUtils.getCurrentPrincipleID());
-        kllDiseaseSub.setModifier(UserUtils.getCurrentPrincipleID());
-        kllDiseaseSub.setGmtCreate(now);
-        kllDiseaseSub.setGmtModified(now);
-        return this.save(kllDiseaseSub);
+    /**
+     * 疾病扩展获取
+     *
+     * @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);
     }
 }
 

+ 47 - 49
cdssman-service/src/main/java/com/diagbot/facade/KlDrugFacade.java

@@ -1,18 +1,16 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.diagbot.entity.KlConcept;
+import com.diagbot.dto.KlConceptAllDTO;
+import com.diagbot.dto.KlDrugDTO;
+import com.diagbot.entity.CommonParam;
 import com.diagbot.entity.KlDrug;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.KlDrugServiceImpl;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.UserUtils;
-import com.diagbot.vo.KlConceptSaveVO;
+import com.diagbot.vo.KlDrugVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.Date;
-
 /**
  * @author wangfeng
  * @Description:
@@ -21,55 +19,55 @@ import java.util.Date;
 @Component
 public class KlDrugFacade extends KlDrugServiceImpl {
 
+    @Autowired
+    KlDrugRegisterFacade klDrugRegisterFacade;
 
-    public boolean saveOrUpdateAll(KlConceptSaveVO klConceptSaveVO) {
+    /**
+     * 疾病扩展获取
+     *
+     * @param conceptId
+     * @param klConceptAllDTO
+     */
+    public void getKlDrug(Long conceptId, KlConceptAllDTO klConceptAllDTO) {
+        KlDrugDTO klDrugDTO = new KlDrugDTO();
 
-        Date now = DateUtil.now();
-        boolean res = false;
-        if (null != klConceptSaveVO.getConceptId()) {
-            //校验
-            int countLis = this.count(new QueryWrapper<KlDrug>()
-                    .eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .eq("concept_id", klConceptSaveVO.getConceptId()));
-            if (countLis > 0) {
-                UpdateWrapper<KlDrug> klDrugUpdate = new UpdateWrapper<>();
-                klDrugUpdate.eq("is_deleted", IsDeleteEnum.N.getKey())
-                        .eq("concept_id", klConceptSaveVO.getConceptId())
-                        .set("gmt_modified", now)
-                        .set("modifier", UserUtils.getCurrentPrincipleID())
-                        .set("drug", klConceptSaveVO.getDrug());
-                res = this.update(klDrugUpdate);
-            } else {
-                KlDrug klDrug = new KlDrug();
-                klDrug.setConceptId(klConceptSaveVO.getConceptId());
-                klDrug.setDrug(klConceptSaveVO.getDrug());
-                klDrug.setGmtModified(now);
-                klDrug.setModifier(UserUtils.getCurrentPrincipleID());
-                res = this.save(klDrug);
-            }
-        } else {
-            KlDrug klDrug = new KlDrug();
-            klDrug.setConceptId(klConceptSaveVO.getConceptId());
-            klDrug.setDrug(klConceptSaveVO.getDrug());
-            klDrug.setGmtModified(now);
-            klDrug.setModifier(UserUtils.getCurrentPrincipleID());
-            res = this.save(klDrug);
+        // 获取药品类别(0:西药,1:中成药)
+        KlDrug klDrug = this.getOne(new QueryWrapper<KlDrug>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("concept_id", conceptId), false);
+        if (klDrug != null) {
+            klDrugDTO.setDrug(klDrug.getDrug());
         }
 
-        return res;
+        // 获取关联注册药品信息(这里先不展示关联的注册药品)
+        // KlDrugMappingGetVO klDrugMappingGetVO = new KlDrugMappingGetVO();
+        // klDrugMappingGetVO.setDrugConcept(conceptId);
+        // List<KlDrugMappingDTO> klDrugMappingDTOList = klDrugRegisterFacade.getMappingRegister(klDrugMappingGetVO);
+        // klDrugDTO.setKlDrugMappingDTOList(klDrugMappingDTOList);
 
+        klConceptAllDTO.setKlDrugDTO(klDrugDTO);
     }
 
-    public boolean saveAll(KlConcept klConceptPare, KlConceptSaveVO klConceptSaveVO) {
-        Date now = DateUtil.now();
-        KlDrug klDrug = new KlDrug();
-        klDrug.setConceptId(klConceptPare.getId());
-        klDrug.setDrug(klConceptSaveVO.getDrug());
-        klDrug.setCreator(UserUtils.getCurrentPrincipleID());
-        klDrug.setModifier(UserUtils.getCurrentPrincipleID());
-        klDrug.setGmtCreate(now);
-        klDrug.setGmtModified(now);
-        return this.save(klDrug);
+    /**
+     *
+     * @param commonParam
+     * @param klDrugVO
+     */
+    public void saveKlDrug(CommonParam commonParam, KlDrugVO klDrugVO) {
+        // 先删除
+        this.remove(new QueryWrapper<KlDrug>().eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("concept_id", commonParam.getConceptId()));
+
+        if (klDrugVO != null) {
+            KlDrug klDrug = new KlDrug();
+            klDrug.setConceptId(commonParam.getConceptId());
+            klDrug.setDrug(klDrugVO.getDrug());
+            klDrug.setCreator(commonParam.getPerson());
+            klDrug.setModifier(commonParam.getPerson());
+            klDrug.setGmtCreate(commonParam.getNow());
+            klDrug.setGmtModified(commonParam.getNow());
+            this.save(klDrug);
+        }
     }
 
 }

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

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

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

@@ -0,0 +1,203 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.KlConceptSimDTO;
+import com.diagbot.dto.KlDrugRegisterDTO;
+import com.diagbot.entity.CommonParam;
+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.KlDrugRegisterService;
+import com.diagbot.service.impl.KlDrugRegisterServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ExcelUtils;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.KlDrugMappingGetVO;
+import com.diagbot.vo.KlDrugRegisterDelVO;
+import com.diagbot.vo.KlDrugRegisterGetVO;
+import com.diagbot.vo.KlDrugRegisterImportExVO;
+import com.diagbot.vo.KlDrugRegisterPageVO;
+import com.diagbot.vo.KlDrugRegisterSaveVO;
+import com.diagbot.vo.KlDrugSearchVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * @author zhoutg
+ * @Description:
+ * @date 2021-04-13 10:41
+ */
+@Component
+public class KlDrugRegisterFacade extends KlDrugRegisterServiceImpl {
+
+    @Autowired
+    KlDrugMappingFacade klDrugMappingFacade;
+    @Autowired
+    KlConceptFacade klConceptFacade;
+    @Autowired
+    @Qualifier("klDrugRegisterServiceImpl")
+    KlDrugRegisterService klDrugRegisterService;
+    @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);
+
+        // 保存药品通用名和注册名映射关系
+        klDrugMappingFacade.remove(new QueryWrapper<KlDrugMapping>()
+                .eq("register_id", klDrugRegister.getId()));
+
+        // 保存药品通用名和注册药品的关联
+        if (klDrugRegister.getId() != null) {
+            KlDrugMapping klDrugMapping = new KlDrugMapping();
+            klDrugMapping.setRegisterId(klDrugRegister.getId());
+            klDrugMapping.setDrugConcept(klDrugRegisterSaveVO.getDrugConceptId());
+            klDrugMapping.setCreator(param.getPerson());
+            klDrugMapping.setModifier(param.getPerson());
+            klDrugMapping.setGmtModified(param.getNow());
+            klDrugMapping.setGmtCreate(param.getNow());
+            klDrugMappingFacade.save(klDrugMapping);
+        }
+    }
+
+    /**
+     * 初始化参数
+     *
+     * @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);
+            //     }
+            // }
+            klDrugMappingFacade.remove(new QueryWrapper<KlDrugMapping>().in("register_id", klDrugRegisterDelVO.getId()));
+        }
+        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);
+        }
+
+        // 获取注册对应的药品通用名
+        KlDrugMappingGetVO klDrugMappingGetVO = new KlDrugMappingGetVO();
+        klDrugMappingGetVO.setRegisterId(klDrugRegister.getId());
+        List<KlConceptSimDTO> klConceptSimDTOList = this.getMappingDrug(klDrugMappingGetVO);
+        if (ListUtil.isNotEmpty(klConceptSimDTOList)) {
+            KlConceptSimDTO conceptSimDTO = klConceptSimDTOList.get(0);
+            klDrugRegisterDTO.setDrugName(conceptSimDTO.getLibName());
+            klDrugRegisterDTO.setDrugConceptId(conceptSimDTO.getId());
+        }
+        return klDrugRegisterDTO;
+    }
+
+    /**
+     * 药品注册名检索药品通用名
+     *
+     * @param klDrugSearchVO
+     * @return
+     */
+    public List<KlConceptSimDTO> searchDrugFac(KlDrugSearchVO klDrugSearchVO) {
+        return this.searchDrug(klDrugSearchVO);
+    }
+
+    /**
+     * 注册药品导入
+     *
+     * @param file
+     */
+    public void importRegister(MultipartFile file) {
+        List<KlDrugRegisterImportExVO> data = ExcelUtils.importExcel(file, 0, 1, KlDrugRegisterImportExVO.class);
+        List<KlDrugRegister> drugRegisterList = BeanUtil.listCopyTo(data, KlDrugRegister.class);
+        // TODO 校验通用名,删除原注册名称、映射关系
+        klDrugRegisterService.saveBatch(drugRegisterList);
+    }
+}

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

@@ -2,13 +2,20 @@ package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.dto.KlConceptAllDTO;
+import com.diagbot.dto.KlLisDTO;
+import com.diagbot.entity.CommonParam;
 import com.diagbot.entity.KlConcept;
+import com.diagbot.entity.KlDisease;
 import com.diagbot.entity.KlLis;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.KlLisServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.KlConceptSaveVO;
+import com.diagbot.vo.KlDiseaseVO;
+import com.diagbot.vo.KlLisVO;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -21,7 +28,7 @@ import java.util.Date;
 @Component
 public class KlLisFacade extends KlLisServiceImpl {
 
-    public boolean saveOrUpdateAll(KlConceptSaveVO klConceptSaveVO) {
+    /*public boolean saveOrUpdateAll(KlConceptSaveVO klConceptSaveVO) {
         Date now = DateUtil.now();
         boolean res = false;
         if (null != klConceptSaveVO.getConceptId()) {
@@ -79,5 +86,41 @@ public class KlLisFacade extends KlLisServiceImpl {
         klLisSub.setGmtCreate(now);
         klLisSub.setGmtModified(now);
         return this.save(klLisSub);
+    }*/
+
+    /**
+     * 保存化验扩展表
+     *
+     * @param commonParam
+     * @param klLisVO
+     * @return
+     */
+    public boolean saveAll(CommonParam commonParam, KlLisVO klLisVO) {
+        if(klLisVO == null){
+            return false;
+        }
+        // 先删除疾病扩展表
+        this.remove(new QueryWrapper<KlLis>().eq("concept_id", commonParam.getConceptId()));
+        // 重新插入扩展表
+        KlLis klLis = new KlLis();
+        BeanUtil.copyProperties(klLisVO, klLis);
+        klLis.setConceptId(commonParam.getConceptId());
+        klLis.setGmtModified(commonParam.getNow());
+        klLis.setGmtCreate(commonParam.getNow());
+        klLis.setCreator(commonParam.getPerson());
+        klLis.setModifier(commonParam.getPerson());
+        return this.save(klLis);
+    }
+
+    public void getKlLis(Long conceptId, KlConceptAllDTO klConceptAll) {
+        KlLis klLis = this.getOne(new QueryWrapper<KlLis>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("concept_id", conceptId), false);
+        if (klLis == null) {
+            return;
+        }
+        KlLisDTO klLisDTO = new KlLisDTO();
+        BeanUtil.copyProperties(klLis,klLisDTO);
+        klConceptAll.setKlLisDTO(klLisDTO);
     }
 }

+ 62 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlOperationFacade.java

@@ -0,0 +1,62 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.KlConceptAllDTO;
+import com.diagbot.dto.KlOperationDTO;
+import com.diagbot.entity.CommonParam;
+import com.diagbot.entity.KlOperation;
+import com.diagbot.entity.KlPacs;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.KlOperationServiceImpl;
+import com.diagbot.service.impl.KlPacsServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.vo.KlOperationVO;
+import com.diagbot.vo.KlPacsVO;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author kwz
+ * @Description:
+ * @date 2021-03-18 16:38
+ */
+@Component
+public class KlOperationFacade extends KlOperationServiceImpl {
+
+
+
+    /**
+     * 保存手术扩展表
+     *
+     * @param commonParam
+     * @param klOperationVO
+     * @return
+     */
+    public boolean saveAll(CommonParam commonParam, KlOperationVO klOperationVO) {
+        if(klOperationVO == null){
+            return false;
+        }
+        // 先删除手术扩展表
+        this.remove(new QueryWrapper<KlOperation>().eq("concept_id", commonParam.getConceptId()));
+        // 重新插入扩展表
+        KlOperation klOperation = new KlOperation();
+        BeanUtil.copyProperties(klOperationVO, klOperation);
+        klOperation.setConceptId(commonParam.getConceptId());
+        klOperation.setGmtModified(commonParam.getNow());
+        klOperation.setGmtCreate(commonParam.getNow());
+        klOperation.setCreator(commonParam.getPerson());
+        klOperation.setModifier(commonParam.getPerson());
+        return this.save(klOperation);
+    }
+
+    public void getKlOperation(Long conceptId, KlConceptAllDTO klConceptAll) {
+        KlOperation klOperation = this.getOne(new QueryWrapper<KlOperation>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("concept_id", conceptId), false);
+        if(klOperation == null){
+            return;
+        }
+        KlOperationDTO klOperationDTO = new KlOperationDTO();
+        BeanUtil.copyProperties(klOperation,klOperationDTO);
+        klConceptAll.setKlOperationDTO(klOperationDTO);
+    }
+}

+ 70 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlPacsFacade.java

@@ -0,0 +1,70 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.dto.KlConceptAllDTO;
+import com.diagbot.dto.KlPacsDTO;
+import com.diagbot.entity.CommonParam;
+import com.diagbot.entity.KlConcept;
+import com.diagbot.entity.KlLis;
+import com.diagbot.entity.KlPacs;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.KlLisServiceImpl;
+import com.diagbot.service.impl.KlPacsServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.KlConceptSaveVO;
+import com.diagbot.vo.KlLisVO;
+import com.diagbot.vo.KlPacsVO;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ * @author kwz
+ * @Description:
+ * @date 2021-03-18 16:38
+ */
+@Component
+public class KlPacsFacade extends KlPacsServiceImpl {
+
+
+
+    /**
+     * 保存辅检扩展表
+     *
+     * @param commonParam
+     * @param klPacsVO
+     * @return
+     */
+    public boolean saveAll(CommonParam commonParam, KlPacsVO klPacsVO) {
+        if(klPacsVO == null){
+            return false;
+        }
+        // 先删除辅检扩展表
+        this.remove(new QueryWrapper<KlPacs>().eq("concept_id", commonParam.getConceptId()));
+        // 重新插入扩展表
+        KlPacs klPacs = new KlPacs();
+        BeanUtil.copyProperties(klPacsVO, klPacs);
+        klPacs.setConceptId(commonParam.getConceptId());
+        klPacs.setGmtModified(commonParam.getNow());
+        klPacs.setGmtCreate(commonParam.getNow());
+        klPacs.setCreator(commonParam.getPerson());
+        klPacs.setModifier(commonParam.getPerson());
+        return this.save(klPacs);
+    }
+
+    public void getKlPacs(Long conceptId, KlConceptAllDTO klConceptAll) {
+        KlPacs klPacs = this.getOne(new QueryWrapper<KlPacs>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("concept_id", conceptId), false);
+        if(klPacs == null){
+            return;
+        }
+        KlPacsDTO klPacsDTO = new KlPacsDTO();
+        BeanUtil.copyProperties(klPacs,klPacsDTO);
+        klConceptAll.setKlPacsDTO(klPacsDTO);
+
+    }
+}

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

@@ -1,18 +1,35 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.RelationDTO;
 import com.diagbot.dto.TreeAllDTO;
 import com.diagbot.dto.TreeDTO;
+import com.diagbot.entity.CommonParam;
+import com.diagbot.entity.KlRelation;
+import com.diagbot.entity.KlRelationOrder;
+import com.diagbot.entity.KlVitalResult;
+import com.diagbot.enums.RelationLibTypeEnum;
+import com.diagbot.service.KlRelationOrderService;
+import com.diagbot.service.KlRelationService;
+import com.diagbot.service.KlVitalResultService;
 import com.diagbot.service.impl.KlRelationServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
+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;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -21,6 +38,22 @@ import java.util.Map;
  */
 @Component
 public class KlRelationFacade extends KlRelationServiceImpl {
+
+    @Autowired
+    @Qualifier("klRelationOrderServiceImpl")
+    KlRelationOrderService klRelationOrderService;
+
+    @Autowired
+    @Qualifier("klRelationServiceImpl")
+    KlRelationService klRelationService;
+
+    @Autowired
+    KlConceptFacade klConceptFacade;
+
+    @Qualifier("klVitalResultServiceImpl")
+    @Autowired
+    KlVitalResultService klVitalResultService;
+;
     public TreeAllDTO getTree(TreeVO treeVO) {
         List<Long[]> pList = new ArrayList<>();
         pList.add(new Long[] { 402L, 600L, 301L, 600L, 101L });//药品化学物质类别
@@ -78,4 +111,156 @@ public class KlRelationFacade extends KlRelationServiceImpl {
         }
         return treeAllDTO;
     }
+
+    /**
+     * 疾病扩展
+     *
+     * @param commonParam
+     * @param klDiseaseVO
+     */
+    public void saveKlDisease(CommonParam commonParam, KlDiseaseVO klDiseaseVO) {
+        // 疾病关联科室,部位,关联系统统一处理。先查找全部数据,删除关联排序表,再删除关联表
+        List<Integer> relationIdList = Lists.newArrayList(
+                RelationLibTypeEnum.relationDept.getKey(),
+                RelationLibTypeEnum.relationPart.getKey(),
+                RelationLibTypeEnum.relationSystem.getKey()
+        );
+        klRelationRemove(commonParam, relationIdList);
+
+        if (klDiseaseVO != null) {
+            // 【科室关联】
+            klRelationSave(commonParam, klDiseaseVO.getDeptList(), RelationLibTypeEnum.relationDept.getKey());
+            // 【部位关联】
+            klRelationSave(commonParam, klDiseaseVO.getPartList(), RelationLibTypeEnum.relationPart.getKey());
+            // 【疾病系统分类关联】
+            klRelationSave(commonParam, klDiseaseVO.getSystemTypeList(), RelationLibTypeEnum.relationSystem.getKey());
+        }
+    }
+
+    /**
+     * 症状扩展
+     *
+     * @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());
+        }
+    }
+
+    /**
+     * 体征结果扩展
+     * @param commonParam
+     * @param klVitalResultVO
+     */
+    public void saveKlVitalRes(CommonParam commonParam, KlVitalResultVO klVitalResultVO) {
+        if(klVitalResultVO == null){
+            return;
+        }
+        // 先删除体征结果扩展表
+        klVitalResultService.remove(new QueryWrapper<KlVitalResult>().eq("concept_id", commonParam.getConceptId()));
+        // 重新插入扩展表
+        KlVitalResult klVitalResult = new KlVitalResult();
+        BeanUtil.copyProperties(klVitalResultVO, klVitalResult);
+        klVitalResult.setConceptId(commonParam.getConceptId());
+        klVitalResult.setGmtModified(commonParam.getNow());
+        klVitalResult.setGmtCreate(commonParam.getNow());
+        klVitalResult.setCreator(commonParam.getPerson());
+        klVitalResult.setModifier(commonParam.getPerson());
+        klVitalResultService.save(klVitalResult);
+
+        // 体征结果关联科室,部位统一处理。先查找全部数据,删除关联排序表,再删除关联表
+        List<Integer> relationIdList = Lists.newArrayList(
+                RelationLibTypeEnum.relationDept.getKey(),
+                RelationLibTypeEnum.relationPart.getKey()
+        );
+        klRelationRemove(commonParam, relationIdList);
+
+        if (klVitalResultVO != null) {
+            // 【科室关联】
+            klRelationSave(commonParam, klVitalResultVO.getDeptList(), RelationLibTypeEnum.relationDept.getKey());
+            // 【部位关联】
+            klRelationSave(commonParam, klVitalResultVO.getPartList(), RelationLibTypeEnum.relationPart.getKey());
+        }
+    }
+
+    /**
+     * 删除关联表和关联排序表
+     *
+     * @param commonParam 通用参数
+     * @param relationList 关联类型列表
+     */
+    public void klRelationRemove(CommonParam commonParam, List<Integer> relationList) {
+        List<KlRelation> klRelationList = this.list(new QueryWrapper<KlRelation>()
+                .eq("start_id", commonParam.getConceptId())
+                .in("relation_id", relationList)
+        );
+        if (ListUtil.isNotEmpty(klRelationList)) {
+            List<Long> idList = klRelationList.stream().map(r -> r.getId()).collect(Collectors.toList());
+            // 删除关联排序表
+            klRelationOrderService.remove(new QueryWrapper<KlRelationOrder>().in("t_relation_id", idList));
+            // 删除关联表
+            this.remove(new QueryWrapper<KlRelation>().in("id", idList));
+        }
+    }
+
+    /**
+     * 保存关联表和关联排序表
+     *
+     * @param commonParam
+     * @param idList
+     * @param relationId
+     */
+    public void klRelationSave(CommonParam commonParam, List<Long> idList, Integer relationId) {
+        if (ListUtil.isEmpty(idList)) {
+            return;
+        }
+        List<KlRelation> relationSaveList = Lists.newArrayList();
+        for (Long endId : idList) {
+            KlRelation klRelation = new KlRelation();
+            klRelation.setStartId(commonParam.getConceptId());
+            klRelation.setRelationId(relationId);
+            klRelation.setEndId(endId);
+            klRelation.setGmtModified(commonParam.getNow());
+            klRelation.setGmtCreate(commonParam.getNow());
+            klRelation.setCreator(commonParam.getPerson());
+            klRelation.setModifier(commonParam.getPerson());
+            relationSaveList.add(klRelation);
+        }
+        klRelationService.saveBatch(relationSaveList);
+
+        // 【科室关联排序】
+        List<KlRelationOrder> OrderSaveList = Lists.newArrayList();
+        int i = 1;
+        for (KlRelation klRelation : relationSaveList) {
+            KlRelationOrder klRelationOrder = new KlRelationOrder();
+            klRelationOrder.settRelationId(klRelation.getId());
+            klRelationOrder.setOrderNo(i++);
+            klRelation.setGmtModified(commonParam.getNow());
+            klRelation.setGmtCreate(commonParam.getNow());
+            klRelation.setCreator(commonParam.getPerson());
+            klRelation.setModifier(commonParam.getPerson());
+            OrderSaveList.add(klRelationOrder);
+        }
+        klRelationOrderService.saveBatch(OrderSaveList);
+    }
+
+
 }

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

@@ -0,0 +1,95 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.KlConceptAllDTO;
+import com.diagbot.dto.KlConceptSimDTO;
+import com.diagbot.dto.KlSymptomDTO;
+import com.diagbot.entity.CommonParam;
+import com.diagbot.entity.KlSymptom;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.LexiconEnum;
+import com.diagbot.enums.RelationLibTypeEnum;
+import com.diagbot.service.impl.KlSymptomServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.vo.ConceptRelationVO;
+import com.diagbot.vo.KlSymptomVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhoutg
+ * @Description:
+ * @date 2021-04-13 10:41
+ */
+@Component
+public class KlSymptomFacade extends KlSymptomServiceImpl {
+
+    @Autowired
+    KlConceptFacade klConceptFacade;
+
+    /**
+     * 保存症状扩展表
+     *
+     * @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);
+    }
+
+    /**
+     * 疾病扩展获取
+     *
+     * @param conceptId
+     * @param klConceptAllDTO
+     */
+    public void getKlSymptom(Long conceptId, KlConceptAllDTO klConceptAllDTO) {
+        KlSymptom klSymptom = this.getOne(new QueryWrapper<KlSymptom>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("concept_id", conceptId), false);
+        if (klSymptom == null) {
+            return;
+        }
+        KlSymptomDTO klSymptomDTO = new KlSymptomDTO();
+        BeanUtil.copyProperties(klSymptom, klSymptomDTO);
+
+        List<Integer> relationIdList = Lists.newArrayList(
+                RelationLibTypeEnum.relationDept.getKey(),
+                RelationLibTypeEnum.relationPart.getKey(),
+                RelationLibTypeEnum.relationAccSymptom.getKey(),
+                RelationLibTypeEnum.relationNature.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) { // 关联部位
+            klSymptomDTO.setPartList(map.get(LexiconEnum.Part.getKey()));
+        }
+        if (map.get(LexiconEnum.Dept.getKey()) != null) { // 关联科室
+            klSymptomDTO.setDeptList(map.get(LexiconEnum.Dept.getKey()));
+        }
+        if (map.get(LexiconEnum.Symptom.getKey()) != null) { // 关联伴随症状
+            klSymptomDTO.setConSymptomList(map.get(LexiconEnum.Symptom.getKey()));
+        }
+        if (map.get(LexiconEnum.Nature.getKey()) != null) { // 关联性质
+            klSymptomDTO.setNatureList(map.get(LexiconEnum.Nature.getKey()));
+        }
+        klConceptAllDTO.setKlSymptomDTO(klSymptomDTO);
+    }
+}

+ 63 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlVitalResFacade.java

@@ -0,0 +1,63 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.KlConceptAllDTO;
+import com.diagbot.dto.KlConceptSimDTO;
+import com.diagbot.dto.KlVitalResultDTO;
+import com.diagbot.entity.CommonParam;
+import com.diagbot.entity.KlOperation;
+import com.diagbot.entity.KlVitalResult;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.LexiconEnum;
+import com.diagbot.enums.RelationLibTypeEnum;
+import com.diagbot.service.impl.KlOperationServiceImpl;
+import com.diagbot.service.impl.KlVitalResultServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.vo.ConceptRelationVO;
+import com.diagbot.vo.KlOperationVO;
+import com.diagbot.vo.KlVitalResultVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author kwz
+ * @Description:
+ * @date 2021-03-18 16:38
+ */
+@Component
+public class KlVitalResFacade extends KlVitalResultServiceImpl {
+
+    @Autowired
+    KlConceptFacade klConceptFacade;
+
+
+    public void getKlVitalResult(Long conceptId, KlConceptAllDTO klConceptAll) {
+        KlVitalResult klVitalResult = this.getOne(new QueryWrapper<KlVitalResult>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("concept_id", conceptId), false);
+        if(klVitalResult == null){
+            return;
+        }
+        KlVitalResultDTO klVitalResultDTO = new KlVitalResultDTO();
+        BeanUtil.copyProperties(klVitalResult,klVitalResultDTO);
+        List<Integer> relationIdList = Lists.newArrayList(
+                RelationLibTypeEnum.relationDept.getKey(),
+                RelationLibTypeEnum.relationPart.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) {
+            klVitalResultDTO.setPartList(map.get(LexiconEnum.Part.getKey()));
+        }
+        if (map.get(LexiconEnum.Dept.getKey()) != null) {
+            klVitalResultDTO.setDeptList(map.get(LexiconEnum.Dept.getKey()));
+        }
+        klConceptAll.setKlVitalResultDTO(klVitalResultDTO);
+    }
+}

+ 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);
 }

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

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.KlDrugMapping;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 药品通用名和注册名映射表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+public interface KlDrugMappingMapper extends BaseMapper<KlDrugMapping> {
+
+}

+ 32 - 0
cdssman-service/src/main/java/com/diagbot/mapper/KlDrugRegisterMapper.java

@@ -0,0 +1,32 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.KlConceptSimDTO;
+import com.diagbot.dto.KlDrugMappingDTO;
+import com.diagbot.dto.KlDrugRegisterDTO;
+import com.diagbot.entity.KlDrugRegister;
+import com.diagbot.vo.KlDrugMappingGetVO;
+import com.diagbot.vo.KlDrugRegisterPageVO;
+import com.diagbot.vo.KlDrugSearchVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 药品注册表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+public interface KlDrugRegisterMapper extends BaseMapper<KlDrugRegister> {
+
+    IPage<KlDrugRegisterDTO> getPage(KlDrugRegisterPageVO klDrugRegisterPageVO);
+
+    List<KlDrugMappingDTO> getMappingRegister(KlDrugMappingGetVO klDrugMappingGetVO);
+
+    List<KlConceptSimDTO> getMappingDrug(KlDrugMappingGetVO klDrugMappingGetVO);
+
+    List<KlConceptSimDTO> searchDrug(KlDrugSearchVO klDrugSearchVO);
+}

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

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

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

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

+ 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/mapper/KlVitalResultMapper.java

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

+ 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);
 }

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.KlDrugMapping;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 药品通用名和注册名映射表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+public interface KlDrugMappingService extends IService<KlDrugMapping> {
+
+}

+ 32 - 0
cdssman-service/src/main/java/com/diagbot/service/KlDrugRegisterService.java

@@ -0,0 +1,32 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.KlConceptSimDTO;
+import com.diagbot.dto.KlDrugMappingDTO;
+import com.diagbot.dto.KlDrugRegisterDTO;
+import com.diagbot.entity.KlDrugRegister;
+import com.diagbot.vo.KlDrugMappingGetVO;
+import com.diagbot.vo.KlDrugRegisterPageVO;
+import com.diagbot.vo.KlDrugSearchVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 药品注册表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+public interface KlDrugRegisterService extends IService<KlDrugRegister> {
+
+    IPage<KlDrugRegisterDTO> getPage(KlDrugRegisterPageVO klDrugRegisterPageVO);
+
+    List<KlDrugMappingDTO> getMappingRegister(KlDrugMappingGetVO klDrugMappingGetVO);
+
+    List<KlConceptSimDTO> getMappingDrug(KlDrugMappingGetVO klDrugMappingGetVO);
+
+    List<KlConceptSimDTO> searchDrug(KlDrugSearchVO klDrugSearchVO);
+}

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

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

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

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

+ 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> {
+
+}

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

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

+ 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);
+    }
 }

+ 22 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/KlDrugMappingServiceImpl.java

@@ -0,0 +1,22 @@
+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 org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 药品通用名和注册名映射表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Service
+@DS("med")
+public class KlDrugMappingServiceImpl extends ServiceImpl<KlDrugMappingMapper, KlDrugMapping> implements KlDrugMappingService {
+
+}

+ 50 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/KlDrugRegisterServiceImpl.java

@@ -0,0 +1,50 @@
+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.KlConceptSimDTO;
+import com.diagbot.dto.KlDrugMappingDTO;
+import com.diagbot.dto.KlDrugRegisterDTO;
+import com.diagbot.entity.KlDrugRegister;
+import com.diagbot.mapper.KlDrugRegisterMapper;
+import com.diagbot.service.KlDrugRegisterService;
+import com.diagbot.vo.KlDrugMappingGetVO;
+import com.diagbot.vo.KlDrugRegisterPageVO;
+import com.diagbot.vo.KlDrugSearchVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 药品注册表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @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);
+    }
+
+    @Override
+    public List<KlDrugMappingDTO> getMappingRegister(KlDrugMappingGetVO klDrugMappingGetVO) {
+        return baseMapper.getMappingRegister(klDrugMappingGetVO);
+    }
+
+    @Override
+    public List<KlConceptSimDTO> getMappingDrug(KlDrugMappingGetVO klDrugMappingGetVO) {
+        return baseMapper.getMappingDrug(klDrugMappingGetVO);
+    }
+
+    @Override
+    public List<KlConceptSimDTO> searchDrug(KlDrugSearchVO klDrugSearchVO) {
+        return baseMapper.searchDrug(klDrugSearchVO);
+    }
+}

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

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

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

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

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

@@ -0,0 +1,22 @@
+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 org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 症状扩展表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-12
+ */
+@Service
+@DS("med")
+public class KlSymptomServiceImpl extends ServiceImpl<KlSymptomMapper, KlSymptom> implements KlSymptomService {
+
+}

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

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.KlVitalResult;
+import com.diagbot.mapper.KlVitalResultMapper;
+import com.diagbot.service.KlVitalResultService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 体征结果扩展表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-12
+ */
+@Service
+public class KlVitalResultServiceImpl extends ServiceImpl<KlVitalResultMapper, KlVitalResult> implements KlVitalResultService {
+
+}

+ 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;
 }

+ 32 - 7
cdssman-service/src/main/java/com/diagbot/vo/KlConceptSaveVO.java

@@ -15,31 +15,56 @@ import java.util.List;
 @Setter
 @Getter
 public class KlConceptSaveVO {
+    // 术语Id
     private Long conceptId;
+    // libId
     private Long libId;
     @NotBlank(message = "请输入医学标准术语名称")
     private String libName;
+    // 拼音
     private String spell;
     @NotNull(message = "请输入医学标准术语词性type")
     private Integer libType;
+    // 同义词名称
     private String synonymName;
     @NotNull(message = "请输入状态")
     private Integer status;
     //是否标准词,1:是,0:否
     private Integer isConcept = 0;
+    // 性别
     private Integer sexType;
     //是否有通用扩展(0:否;1:是)
     @NotNull(message = "请输入是否有通用扩展")
     private Integer isHasCommon;
+    // 最小年龄
     private Double minAge;
+    // 最大年龄
     private Double maxAge;
-    private Double minVal;
-    private Double maxVal;
-    private String unit;
-    private Integer scopeType;
-    private String icdCode;
+    // 备注
     private String remark;
-    private Integer drug;
-    private Long deptId;
+
+    // 同义词列表
     private List<KlConceptSaveSubVO> klConceptSub;
+
+    // 疾病扩展信息
+    private KlDiseaseVO klDiseaseVO;
+
+    // 药品通用名扩展
+    private KlDrugVO klDrugVO;
+
+    // 症状扩展信息
+    private KlSymptomVO klSymptomVO;
+
+    // 化验扩展信息
+    private KlLisVO klLisVO;
+
+    // 辅检扩展信息
+    private KlPacsVO klPacsVO;
+
+    // 手术扩展信息
+    private KlOperationVO klOperationVO;
+
+    // 体征结果扩展信息
+    private KlVitalResultVO klVitalResultVO;
+
 }

+ 142 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlDiseaseVO.java

@@ -0,0 +1,142 @@
+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 KlDiseaseVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 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<Long> deptList = Lists.newLinkedList();
+
+    // 部位列表
+    private List<Long> partList = Lists.newLinkedList();
+
+    // 疾病系统分类列表
+    private List<Long> systemTypeList = Lists.newLinkedList();
+
+}

+ 29 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlDrugMappingGetVO.java

@@ -0,0 +1,29 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 药品通用名和注册药品关联表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlDrugMappingGetVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 药品通用名conceptId
+     */
+    private Long drugConcept;
+
+    /**
+     * 注册药品Id
+     */
+    private Long registerId;
+}

+ 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;
+}

+ 66 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlDrugRegisterImportExVO.java

@@ -0,0 +1,66 @@
+package com.diagbot.vo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 药品注册表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlDrugRegisterImportExVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Excel(name="药品代码")
+    private String drugCode;
+
+    @Excel(name="注册名称")
+    private String name;
+
+    @Excel(name="英文名称")
+    private String enName;
+
+    @Excel(name="商品名称")
+    private String tradeName;
+
+    @Excel(name="注册剂型")
+    private String form;
+
+    @Excel(name="注册规格")
+    private String specification;
+
+    @Excel(name="最小包装数量")
+    private String minPackQuantity;
+
+    @Excel(name="最小包装单位")
+    private String minPackUnit;
+
+    @Excel(name="药品企业")
+    private String company;
+
+    @Excel(name="批准文号")
+    private String approval;
+
+    @Excel(name="药品本位码")
+    private String standardCode;
+
+    @Excel(name="甲乙类")
+    private String insuranceType;
+
+    @Excel(name="医保备注")
+    private String insuranceRemrk;
+
+    @Excel(name="药品类别")
+    private String drugType;
+
+    @Excel(name="药品通用名")
+    private String drugName;
+
+}

+ 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 commonName;
+
+}

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

@@ -0,0 +1,104 @@
+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;
+
+    /**
+     * 药品通用名Id
+     */
+    private Long drugConceptId;
+}

+ 24 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlDrugSearchVO.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 KlDrugSearchVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 搜索名
+     */
+    private String name;
+}

+ 26 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlDrugVO.java

@@ -0,0 +1,26 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 药品通用名和注册名映射表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlDrugVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    // 药品类别(0:西药,1:中成药)
+    private Integer drug;
+
+    // // 药品注册名Id列表
+    // private List<Long> registerIdList = Lists.newLinkedList();
+
+}

+ 88 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlLisVO.java

@@ -0,0 +1,88 @@
+package com.diagbot.vo;
+
+
+import lombok.Data;
+
+import java.io.Serializable;
+;
+
+/**
+ * <p>
+ * 化验表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2021-05-11
+ */
+@Data
+public class KlLisVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 最小值
+     */
+    private Double minValue;
+
+    /**
+     * 最大值
+     */
+    private Double maxValue;
+
+    /**
+     * 类型(0:范围内;1:范围外)
+     */
+    private Integer type;
+
+    /**
+     * 单位概念id
+     */
+
+    private String unit;
+
+    /**
+     * 检查标本
+     */
+    private String checkSpecimen;
+
+    /**
+     * 检查方法
+     */
+    private String checkMethod;
+
+    /**
+     * 影响因素
+     */
+    private String influenceFac;
+
+    /**
+     * 临床意义
+     */
+    private String clinicalSig;
+
+    /**
+     * 定性(阴、阳性)
+     */
+    private String qualitative;
+
+    /**
+     * 所属类别
+     */
+    private String category;
+
+    /**
+     * 英文名称
+     */
+    private String enName;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 43 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlOperationVO.java

@@ -0,0 +1,43 @@
+package com.diagbot.vo;
+
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+;
+
+/**
+ * <p>
+ * 手术表
+ * </p>
+ *
+ * @author kwz
+ * @since 2021-05-11
+ */
+@Data
+public class KlOperationVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 手术级别(0,1,2,3,4)
+     */
+    private Integer operationLevel;
+
+    /**
+     * 手术操作码
+     */
+    private String operationCode;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 73 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlPacsVO.java

@@ -0,0 +1,73 @@
+package com.diagbot.vo;
+
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+;
+
+/**
+ * <p>
+ * 辅检表
+ * </p>
+ *
+ * @author kwz
+ * @since 2021-05-11
+ */
+@Data
+public class KlPacsVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 检查方法
+     */
+    private String checkMethod;
+
+    /**
+     * 项目定义
+     */
+    private String definition;
+
+    /**
+     * 检查目的
+     */
+    private String checkObjective;
+
+    /**
+     * 检查技术
+     */
+    private String checkSkillful;
+
+    /**
+     * 禁忌症和局限性
+     */
+    private String condLimit;
+
+    /**
+     * 适应症
+     */
+    private String interventional;
+
+    /**
+     * 危急标识(0:不危急,1:危急)
+     */
+    private Integer emergencySign;
+
+    /**
+     * 检查前准备
+     */
+    private String checkPrepare;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 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;
+
+    /**
+     * 阳性症状(0:否,1:是)
+     */
+    private Integer isPositive;
+
+    /**
+     * 英文名称
+     */
+    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();
+}

+ 50 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlVitalResultVO.java

@@ -0,0 +1,50 @@
+package com.diagbot.vo;
+
+
+import com.google.common.collect.Lists;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+;
+
+/**
+ * <p>
+ * 手术表
+ * </p>
+ *
+ * @author kwz
+ * @since 2021-05-11
+ */
+@Data
+public class KlVitalResultVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 不适宜人群
+     */
+    private String suitablePopNo;
+
+    /**
+     * 操作方法
+     */
+    private String checkMethod;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    // 科室列表
+    private List<Long> deptList = Lists.newLinkedList();
+
+    // 发病部位
+    private List<Long> partList = Lists.newLinkedList();
+}

+ 107 - 6
cdssman-service/src/main/java/com/diagbot/web/KlConceptController.java

@@ -4,30 +4,25 @@ 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.GetAllForRelationDTO;
 import com.diagbot.dto.KlConceptAllDTO;
 import com.diagbot.dto.KlConceptInfoDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.enums.StatusEnum;
 import com.diagbot.facade.KlConceptFacade;
-import com.diagbot.vo.GetAllForRelationVO;
 import com.diagbot.vo.KlConceptAllVO;
 import com.diagbot.vo.KlConceptClearVO;
 import com.diagbot.vo.KlConceptInfoVO;
 import com.diagbot.vo.KlConceptSatarOrdisaVO;
 import com.diagbot.vo.KlConceptSaveVO;
-import com.diagbot.vo.KlRuleSatartOrdisaVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
 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;
 
 import javax.validation.Valid;
-import java.util.List;
 
 /**
  * <p>
@@ -58,7 +53,113 @@ public class KlConceptController {
     public RespDTO<KlConceptAllDTO> getConceptInfoAll(@RequestBody @Valid KlConceptAllVO klConceptAllVO) {
         return RespDTO.onSuc(klConceptFacade.getConceptAlls(klConceptAllVO));
     }
-    @ApiOperation(value = "新增和修改基础术语详情[by:wangfeng]")
+    @ApiOperation(value = "新增和修改基础术语详情[by:wangfeng]",
+            notes = "conceptId:术语Id\n" +
+                    "libId:libId\n" +
+                    "spell:拼音\n" +
+                    "synonymName:同义词名称\n" +
+                    "isConcept:是否标准词,1:是,0:否\n" +
+                    "sexType:性别\n" +
+                    "minAge:最小年龄\n" +
+                    "maxAge:最大年龄\n" +
+                    "remark:备注\n" +
+                    "klConceptSub:同义词列表\n" +
+
+                    "<br>" +
+                    "【klDiseaseVO:疾病扩展信息】\n" +
+                    "icd10Code:ICD10编号\n" +
+                    "course:病程\n" +
+                    "inducement:诱因\n" +
+                    "foodProhibition:饮食禁忌\n" +
+                    "hazard:危险因素\n" +
+                    "healing:治愈性\n" +
+                    "pernicious:危害性\n" +
+                    "clinicType:临床分类\n" +
+                    "vulArea:好发地区\n" +
+                    "vulCrowd:好发人群\n" +
+                    "incidence:发病率\n" +
+                    "isInfect:是否传染(0:否,1:是)\n" +
+                    "complication:并发症\n" +
+                    "pathogeny:病因\n" +
+                    "disType:疾病分型\n" +
+                    "chWestern:中西医疾病(0:通用,1:西,2:中)\n" +
+                    "isCommonDis:是否常见病(0:否,1:是)\n" +
+                    "isHeredity:是否遗传(0:否,1:是)\n" +
+                    "nameSimple:简称\n" +
+                    "enNameSimple:英文简称\n" +
+                    "enName:英文名称\n" +
+                    "remark:备注\n" +
+                    "deptList:科室列表\n" +
+                    "partList:部位列表\n" +
+                    "systemTypeList:疾病系统分类列表\n" +
+
+                    "<br>" +
+                    "【klDrugVO:药品通用名扩展】\n" +
+                    "drug:药品类别(0:西药,1:中成药)\n" +
+
+                    "<br>" +
+                    "【klSymptomVO:症状扩展信息】\n" +
+                    "enName:英文名称\n" +
+                    "definition:定义\n" +
+                    "chWestern:中西医症状(0:通用,1:西,2:中)\n" +
+                    "mitigatingFac:缓解因素\n" +
+                    "aggravateFac:加重因素\n" +
+                    "cause:症状起因\n" +
+                    "commonDis:常见疾病\n" +
+                    "preMeasures:预防措施\n" +
+                    "foodProhibition:饮食禁忌\n" +
+                    "commonExplain:通俗解释\n" +
+                    "remark:备注\n" +
+                    "deptList:科室列表\n" +
+                    "partList:发病部位\n" +
+                    "conSymptomList:常见伴随症状\n" +
+                    "natureList:性质\n" +
+
+                    "<br>" +
+                    "【klLisVO:化验扩展信息】\n" +
+                    "conceptId:术语概念id\n" +
+                    "minValue:最小值\n" +
+                    "maxValue:最大值\n" +
+                    "type:最大值\n" +
+                    "unit:单位概念id\n" +
+                    "checkSpecimen:检查标本\n" +
+                    "checkMethod:检查方法\n" +
+                    "influenceFac:影响因素\n" +
+                    "clinicalSig:临床意义\n" +
+                    "qualitative:定性(阴、阳性)\n" +
+                    "category:所属类别\n" +
+                    "enName:英文名称\n" +
+                    "remark:备注\n" +
+
+                    "<br>" +
+                    "【klPacsVO:辅检扩展信息】\n" +
+                    "conceptId:术语概念id\n" +
+                    "checkMethod:检查方法\n" +
+                    "definition:项目定义\n" +
+                    "checkObjective:检查目的\n" +
+                    "checkSkillful:检查技术\n" +
+                    "condLimit:禁忌症和局限性\n" +
+                    "interventional:适应症\n" +
+                    "emergencySign:危急标识(0:不危急,1:危急)\n" +
+                    "checkPrepare:检查前准备\n" +
+                    "remark:备注\n" +
+
+                    "<br>" +
+                    "【klOperationVO:手术扩展信息】\n" +
+                    "conceptId:术语概念id\n" +
+                    "operationLevel:手术级别(0,1,2,3,4)\n" +
+                    "operationCode:手术操作码\n" +
+                    "remark:备注\n" +
+
+                    "<br>" +
+                    "【klVitalResultVO:体征结果扩展信息】\n"
+                    +"conceptId:术语概念id\n" +
+                    "suitablePopNo:不适宜人群\n" +
+                    "checkMethod:操作方法\n" +
+                    "remark:备注\n" +
+                    "deptList:科室列表\n" +
+                    "partList:发病部位"
+                     )
     @PostMapping("/saveConceptInfo")
     @SysLogger("saveConceptInfo")
     @DSTransactional

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

@@ -0,0 +1,117 @@
+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.KlConceptSimDTO;
+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 com.diagbot.vo.KlDrugSearchVO;
+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.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * <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 = "id:主键\n" +
+                    "drugCode:药品代码\n" +
+                    "name:注册名称\n" +
+                    "enName:英文名称\n" +
+                    "tradeName:商品名称\n" +
+                    "form:药品剂型\n" +
+                    "specification:注册规格\n" +
+                    "minPackQuantity:最小包装数量\n" +
+                    "minPackUnit:最小包装单位\n" +
+                    "company:药品企业\n" +
+                    "approval:批准文号\n" +
+                    "standardCode:药品本位码\n" +
+                    "insuranceType:医保类型\n" +
+                    "insuranceRemrk:医保备注\n" +
+                    "drugType:药品类别\n" +
+                    "remark:备注\n" +
+                    "drugConceptId:药品通用名Id")
+    @PostMapping("/saveOrUpdate")
+    @SysLogger("saveOrUpdate")
+    @DSTransactional
+    public RespDTO<Boolean> saveOrUpdate(@RequestBody KlDrugRegisterSaveVO klDrugRegisterSaveVO) {
+        klDrugRegisterFacade.saveOrUpdate(klDrugRegisterSaveVO);
+        return RespDTO.onSuc(true);
+    }
+
+    @ApiOperation(value = "分页[by:zhoutg]",
+            notes = "name:注册名称| 商品名称\n" +
+                    "form:药品剂型\n" +
+                    "company:药品企业\n" +
+                    "insuranceType:医保类型\n" +
+                    "commonName:药品通用名")
+    @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 = "id:主键")
+    @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);
+    }
+
+    @ApiOperation(value = "药品注册名检索药品通用名,已经关联的需要过滤[by:zhoutg]",
+            notes = "name: 检索名")
+    @PostMapping("/searchDrug")
+    public RespDTO<List<KlConceptSimDTO>> searchDrug(@RequestBody KlDrugSearchVO klDrugSearchVO) {
+        List<KlConceptSimDTO> data = klDrugRegisterFacade.searchDrugFac(klDrugSearchVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "注册药品导入[by:zhoutg]",
+            notes = "")
+    @PostMapping("/importRegister")
+    public RespDTO<Boolean> importRegister(@RequestParam("file") MultipartFile file) {
+        klDrugRegisterFacade.importRegister(file);
+        return RespDTO.onSuc(true);
+    }
+}

+ 32 - 12
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,
@@ -70,26 +72,14 @@
         f.sex_type AS sexType,
         f.min_age AS minAge,
         f.max_age AS maxAge,
-        g.min_value AS minVal,
-        g.max_value AS maxVal,
-        g.unit AS unit,
-        g.type AS scopeType,
-        h.dept_id AS deptId,
-        h.icd10_code AS icdCode,
-        dr.drug ,
         a.remark
         FROM
         kl_library_info a
         INNER JOIN kl_concept b
         ON b.id = a.concept_id
-        INNER JOIN kl_concept c
-        ON c.id = a.concept_id
         INNER JOIN kl_lexicon d
         ON b.lib_type = d.code
         LEFT JOIN kl_concept_common f ON f.concept_id = a.concept_id
-        LEFT JOIN kl_lis g ON g.concept_id = a.concept_id
-        LEFT JOIN kl_disease h ON h.concept_id = a.concept_id
-        LEFT JOIN kl_drug  dr ON dr.concept_id = a.concept_id
         WHERE a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND d.is_deleted = 'N'
@@ -130,4 +120,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>

+ 31 - 10
cdssman-service/src/main/resources/mapper/KlDiseaseMapper.xml

@@ -4,17 +4,38 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.diagbot.entity.KlDisease">
-        <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="dept_id" property="deptId"/>
-        <result column="icd10_code" property="icd10Code"/>
-        <result column="remark" property="remark"/>
+        <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="dept_id" property="deptId" />
+        <result column="icd10_code" property="icd10Code" />
+        <result column="course" property="course" />
+        <result column="inducement" property="inducement" />
+        <result column="food_prohibition" property="foodProhibition" />
+        <result column="hazard" property="hazard" />
+        <result column="healing" property="healing" />
+        <result column="pernicious" property="pernicious" />
+        <result column="clinic_type" property="clinicType" />
+        <result column="vul_area" property="vulArea" />
+        <result column="vul_crowd" property="vulCrowd" />
+        <result column="incidence" property="incidence" />
+        <result column="is_infect" property="isInfect" />
+        <result column="complication" property="complication" />
+        <result column="pathogeny" property="pathogeny" />
+        <result column="dis_type" property="disType" />
+        <result column="ch_western" property="chWestern" />
+        <result column="is_common_dis" property="isCommonDis" />
+        <result column="is_heredity" property="isHeredity" />
+        <result column="name_simple" property="nameSimple" />
+        <result column="en_name_simple" property="enNameSimple" />
+        <result column="en_name" property="enName" />
+        <result column="remark" property="remark" />
     </resultMap>
+
     <select id="getDiseasePage" resultType="com.diagbot.dto.DiseasePageDTO">
         SELECT
         a.id,

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

@@ -0,0 +1,19 @@
+<?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.KlDrugMappingMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.KlDrugMapping">
+        <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="drug_concept" property="drugConcept" />
+        <result column="register_id" property="registerId" />
+        <result column="oder_no" property="orderNo" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

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

@@ -0,0 +1,111 @@
+<?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.KlDrugRegisterMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.KlDrugRegister">
+        <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="drug_code" property="drugCode" />
+        <result column="name" property="name" />
+        <result column="en_name" property="enName" />
+        <result column="trade_name" property="tradeName" />
+        <result column="form" property="form" />
+        <result column="specification" property="specification" />
+        <result column="min_pack_quantity" property="minPackQuantity" />
+        <result column="min_pack_unit" property="minPackUnit" />
+        <result column="company" property="company" />
+        <result column="approval" property="approval" />
+        <result column="standard_code" property="standardCode" />
+        <result column="insurance_type" property="insuranceType" />
+        <result column="insurance_remrk" property="insuranceRemrk" />
+        <result column="drug_type" property="drugType" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <select id="getPage" resultType="com.diagbot.dto.KlDrugRegisterDTO">
+        SELECT a.*, c.lib_name commonName FROM `kl_drug_register` a
+        left join kl_drug_mapping b on b.register_id = a.id
+        left join kl_concept c on c.id = b.drug_concept and c.status = 1
+        WHERE a.is_deleted = 'N'
+        <if test="commonName != null and commonName != ''">
+            AND c.lib_name like concat ('%', #{commonName}, '%')
+        </if>
+        <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>
+
+    <select id="getMappingRegister" resultType="com.diagbot.dto.KlDrugMappingDTO" parameterType="com.diagbot.vo.KlDrugMappingGetVO">
+        SELECT
+            b.*
+        FROM
+            `kl_drug_mapping` a,
+            kl_drug_register b
+        WHERE
+            a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        and a.register_id = b.id
+        and a.drug_concept = #{drugConcept}
+        order by a.order_no
+    </select>
+
+    <select id="getMappingDrug" resultType="com.diagbot.dto.KlConceptSimDTO" parameterType="com.diagbot.vo.KlDrugMappingGetVO">
+        SELECT
+            b.*
+        FROM
+            `kl_drug_mapping` a,
+            kl_concept b
+        WHERE
+            a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        and a.drug_concept = b.id
+        and a.register_id = #{registerId}
+        order by a.order_no
+    </select>
+
+    <select id="searchDrug" resultType="com.diagbot.dto.KlConceptSimDTO" parameterType="com.diagbot.vo.KlDrugSearchVO">
+        SELECT
+            a.*
+        FROM
+            kl_concept a
+        WHERE
+            a.is_deleted = 'N'
+        AND a.lib_type = 101
+        AND a.lib_name LIKE concat('%',#{name}, '%')
+        and a.id not in (
+            SELECT b.drug_concept FROM `kl_drug_mapping` b where a.is_deleted = 'N'
+        )
+    </select>
+</mapper>

+ 7 - 0
cdssman-service/src/main/resources/mapper/KlLisMapper.xml

@@ -15,6 +15,13 @@
         <result column="max_value" property="maxValue" />
         <result column="type" property="type" />
         <result column="unit" property="unit" />
+        <result column="check_specimen" property="checkSpecimen" />
+        <result column="check_method" property="checkMethod" />
+        <result column="influence_fac" property="influenceFac" />
+        <result column="clinical_sig" property="clinicalSig" />
+        <result column="qualitative" property="qualitative" />
+        <result column="category" property="category" />
+        <result column="en_name" property="enName" />
         <result column="remark" property="remark" />
     </resultMap>
 

+ 19 - 0
cdssman-service/src/main/resources/mapper/KlOperationMapper.xml

@@ -0,0 +1,19 @@
+<?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.KlOperationMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.KlOperation">
+        <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="operation_level" property="operationLevel" />
+        <result column="operation_code" property="operationCode" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 25 - 0
cdssman-service/src/main/resources/mapper/KlPacsMapper.xml

@@ -0,0 +1,25 @@
+<?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.KlPacsMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.KlPacs">
+        <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="check_method" property="checkMethod" />
+        <result column="definition" property="definition" />
+        <result column="check_objective" property="checkObjective" />
+        <result column="check_skillful" property="checkSkillful" />
+        <result column="cond_limit" property="condLimit" />
+        <result column="interventional" property="interventional" />
+        <result column="emergency_sign" property="emergencySign" />
+        <result column="check_prepare" property="checkPrepare" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

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

@@ -0,0 +1,28 @@
+<?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="is_positive" property="isPositive" />
+        <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>

+ 19 - 0
cdssman-service/src/main/resources/mapper/KlVitalResultMapper.xml

@@ -0,0 +1,19 @@
+<?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.KlVitalResultMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.KlVitalResult">
+        <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="suitable_pop_no" property="suitablePopNo" />
+        <result column="check_method" property="checkMethod" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

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

@@ -33,7 +33,7 @@ public class CodeGeneration {
         gc.setEnableCache(false);// XML 二级缓存
         gc.setBaseResultMap(true);// XML ResultMap
         gc.setBaseColumnList(false);// XML columList
-        gc.setAuthor("wangfeng");// 作者
+        gc.setAuthor("zhoutg");// 作者
 
         // 自定义文件命名,注意 %s 会自动填充表实体属性!
         gc.setControllerName("%sController");
@@ -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_dictionary_info","kl_disease","kl_disease_corresponding","kl_lexicon","kl_lexicon_relationship" ,"kl_library_info","kl_lis","kl_relation","kl_relation_order"}); // 需要生成的表
+        strategy.setInclude(new String[] { "kl_lis","kl_operation","kl_pacs","kl_vital_result"}); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);

+ 91 - 0
cdssman-service/src/test/java/com/diagbot/PrintUtil.java

@@ -0,0 +1,91 @@
+package com.diagbot;
+
+import com.diagbot.util.StringUtil;
+import com.google.common.collect.Lists;
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @description: 打印类的属性名和注释
+ * @author: zhoutg
+ * @time: 2021/5/18 14:48
+ */
+public class PrintUtil {
+
+    /**
+     * 输入字段名和注释
+     *
+     * @param path
+     */
+    public static void print(String path) {
+        List<String> list = Lists.newArrayList();
+        StringBuffer sb = new StringBuffer();
+        try {
+            BufferedReader br = new BufferedReader(
+                    new InputStreamReader(
+                            new FileInputStream(path), "UTF-8"));
+            String line = "";
+            while ((line = br.readLine()) != null) {
+                list.add(line);
+                sb.append(line.trim());
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        String text = sb.toString();
+        // 截取有效内容
+        if (sb.indexOf("serialVersionUID = 1L;") >= 0) {
+            text = sb.substring(sb.indexOf("serialVersionUID = 1L;") + 22);
+        } else {
+            text = sb.substring(sb.indexOf("{") + 1);
+        }
+        List<String> stringList = Lists.newArrayList(text.split(";"));
+        Map<String, String> map = new LinkedHashMap<>();
+        String key = "";
+        String value = "";
+        for (String s : stringList) {
+            try {
+                if (s.indexOf("/*** ") >= 0) {
+                    value = s.substring(s.indexOf("/***") + 4, s.indexOf("*/")).trim();
+                } else if (s.indexOf("//") >= 0) {
+                    value = s.substring(s.indexOf("//") + 2, s.indexOf("private")).trim();
+                }
+                int index = s.indexOf("=");
+                if (index >= 0) { // 包含“=”,例如:// 科室列表private List<Long> deptList = Lists.newLinkedList()
+                    StringBuffer keySb = new StringBuffer();
+                    boolean insertflag = false; // 是否有效字符插入
+                    for (int i = index - 1; i >= 0; i--) {
+                        char ch = s.charAt(i);
+                        if (insertflag && StringUtil.isBlank(String.valueOf(ch))) {
+                            break;
+                        }
+                        if (StringUtil.isNotBlank(String.valueOf(ch))) {
+                            keySb.append(ch);
+                            insertflag = true;
+                        }
+                    }
+                    keySb.reverse();// 反转
+                    key = keySb.toString();
+                } else {    // 不包含“=”,例如: /*** 英文名称*/private String enName;
+                    key = s.substring(s.lastIndexOf(" ")).trim();
+                }
+                map.put(key, value);
+            } catch (Exception e) {
+                // 捕获异常不处理
+            }
+        }
+        for (String property : map.keySet()) {
+            System.out.println(property + ":" + map.get(property) + "");
+        }
+    }
+
+    public static void main(String[] args) {
+        String path = "D:\\diagbot\\diagbotcloud\\cdssman-service\\src\\main\\java\\com\\diagbot\\vo\\klSymptomVO.java";
+        print(path);
+    }
+}

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

@@ -0,0 +1,187 @@
+INSERT INTO `cdss`.`sys_dictionary_info` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('128', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '50', '否', '0', '1', '1', '是否选项');
+INSERT INTO `cdss`.`sys_dictionary_info` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('129', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '50', '是', '1', '1', '2', '是否选项');
+
+
+use `med_2021`;
+
+INSERT INTO `kl_lexicon` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `is_has_common`, `only_one`, `can_change`, `remark`) VALUES ('45', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '疾病系统分类', '411', '0', '0', '0', '');
+INSERT INTO `kl_lexicon` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `is_has_common`, `only_one`, `can_change`, `remark`) VALUES ('46', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '性质', '412', '0', '0', '0', '');
+
+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', '');
+INSERT INTO `kl_lexicon_relationship` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `remark`) VALUES ('16', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '关联性质', '515', '');
+
+
+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`;
+ALTER TABLE `kl_disease` add COLUMN `name_simple` varchar(255) not null DEFAULT '' COMMENT '简称' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `is_heredity` TINYINT(4) not null DEFAULT '0' COMMENT '是否遗传(0:否,1:是)' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `is_common_dis` TINYINT(4) not null DEFAULT '1' COMMENT '是否常见病(0:否,1:是)' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `ch_western` TINYINT(4) not null DEFAULT '0' COMMENT '中西医疾病(0:通用,1:西,2:中)' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `dis_type` varchar(1024) not null DEFAULT '' COMMENT '疾病分型' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `pathogeny` varchar(1024) not null DEFAULT '' COMMENT '病因' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `complication` varchar(1024) not null DEFAULT '' COMMENT '并发症' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `is_infect` TINYINT(4) not null DEFAULT '0' COMMENT '是否传染(0:否,1:是)' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `incidence` double(11,5) DEFAULT NULL COMMENT '发病率' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `vul_crowd` varchar(255) not null DEFAULT '' COMMENT '好发人群' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `vul_area` varchar(255) not null DEFAULT '' COMMENT '好发地区' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `clinic_type` varchar(1024) not null DEFAULT '' COMMENT '临床分类' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `pernicious` varchar(255) not null DEFAULT '' COMMENT '危害性' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `healing` varchar(255) not null DEFAULT '' COMMENT '治愈性' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `hazard` varchar(1024) not null DEFAULT '' COMMENT '危险因素' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `food_prohibition` varchar(1024) not null DEFAULT '' COMMENT '饮食禁忌' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `inducement` varchar(255) not null DEFAULT '' COMMENT '诱因' AFTER `icd10_code`;
+ALTER TABLE `kl_disease` add COLUMN `course` varchar(255) not null DEFAULT '' COMMENT '病程' AFTER `icd10_code`;
+
+-- ----------------------------
+-- Alter Table structure for kl_lis
+-- ----------------------------
+ALTER TABLE `kl_lis` add COLUMN `en_name` varchar(255) not null DEFAULT '' COMMENT '英文名称' AFTER `unit`;
+ALTER TABLE `kl_lis` add COLUMN `category` varchar(255) not null DEFAULT '' COMMENT '所属类别' AFTER `unit`;
+ALTER TABLE `kl_lis` add COLUMN `qualitative` varchar(255) not null DEFAULT '' COMMENT '定性(阴、阳性)' AFTER `unit`;
+ALTER TABLE `kl_lis` add COLUMN `clinical_sig` varchar(1024) not null DEFAULT '' COMMENT '临床意义' AFTER `unit`;
+ALTER TABLE `kl_lis` add COLUMN `influence_fac` varchar(1024) not null DEFAULT '' COMMENT '影响因素' AFTER `unit`;
+ALTER TABLE `kl_lis` add COLUMN `check_method` varchar(1024) not null DEFAULT '' COMMENT '检查方法' AFTER `unit`;
+ALTER TABLE `kl_lis` add COLUMN `check_specimen` varchar(255) not null DEFAULT '' COMMENT '检查标本' AFTER `unit`;
+
+-- ----------------------------
+-- Table structure for kl_drug_register
+-- ----------------------------
+DROP TABLE IF EXISTS `kl_drug_register`;
+CREATE TABLE `kl_drug_register` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `drug_code` varchar(255) NOT NULL DEFAULT '' COMMENT '药品代码',
+  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '注册名称',
+  `en_name` varchar(255) NOT NULL DEFAULT '' COMMENT '英文名称',
+  `trade_name` varchar(255) NOT NULL DEFAULT '' COMMENT '商品名称',
+  `form` varchar(255) NOT NULL DEFAULT '' COMMENT '药品剂型',
+  `specification` varchar(255) NOT NULL DEFAULT '' COMMENT '注册规格',
+  `min_pack_quantity` varchar(255) NOT NULL DEFAULT '' COMMENT '最小包装数量',
+  `min_pack_unit` varchar(255) NOT NULL DEFAULT '' COMMENT '最小包装单位',
+  `company` varchar(255) NOT NULL DEFAULT '' COMMENT '药品企业',
+  `approval` varchar(255) NOT NULL DEFAULT '' COMMENT '批准文号',
+  `standard_code` varchar(255) NOT NULL DEFAULT '' COMMENT '药品本位码',
+  `insurance_type` varchar(255) NOT NULL DEFAULT '' COMMENT '医保类型',
+  `insurance_remrk` varchar(255) NOT NULL DEFAULT '' COMMENT '医保备注',
+  `drug_type` varchar(255) NOT NULL DEFAULT '' COMMENT '药品类别',
+  `remark` varchar(300) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='药品注册表';
+
+-- ----------------------------
+-- Table structure for kl_drug_mapping
+-- ----------------------------
+DROP TABLE IF EXISTS `kl_drug_mapping`;
+CREATE TABLE `kl_drug_mapping` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `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,
+  KEY `register_id` (`register_id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='药品通用名和注册名映射表';
+
+-- ----------------------------
+-- Table structure for kl_symptom
+-- ----------------------------
+DROP TABLE IF EXISTS `kl_symptom`;
+CREATE TABLE `kl_symptom` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `concept_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '术语概念id',
+  `is_positive` TINYINT(4) NOT NULL DEFAULT '1' COMMENT '阳性症状(0:否,1:是)',
+  `en_name` varchar(255) NOT NULL DEFAULT '' COMMENT '英文名称',
+  `definition` varchar(1024) NOT NULL DEFAULT '' COMMENT '定义',
+  `ch_western` TINYINT(4) not null DEFAULT '0' COMMENT '中西医症状(0:通用,1:西,2:中)',
+  `mitigating_fac` varchar(255) NOT NULL DEFAULT '' COMMENT '缓解因素',
+  `aggravate_fac` varchar(255) NOT NULL DEFAULT '' COMMENT '加重因素',
+  `cause` varchar(255) NOT NULL DEFAULT '' COMMENT '症状起因',
+  `common_dis` varchar(255) NOT NULL DEFAULT '' COMMENT '常见疾病',
+  `pre_measures` varchar(255) NOT NULL DEFAULT '' COMMENT '预防措施',
+  `food_prohibition` varchar(1024) not null DEFAULT '' COMMENT '饮食禁忌',
+  `common_explain` varchar(255) NOT NULL DEFAULT '' COMMENT '通俗解释',
+  `remark` varchar(300) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `idx_concept_id` (`concept_id`) USING BTREE COMMENT '概念id全表唯一'
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='症状扩展表';
+
+-- ----------------------------
+-- Table structure for kl_pacs
+-- ----------------------------
+DROP TABLE IF EXISTS `kl_pacs`;
+CREATE TABLE `kl_pacs` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `concept_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '术语概念id',
+  `check_method` varchar(255) NOT NULL DEFAULT '' COMMENT '检查方法',
+  `definition` varchar(1024) NOT NULL DEFAULT '' COMMENT '项目定义',
+  `check_objective` varchar(1024) NOT NULL DEFAULT '' COMMENT '检查目的',
+  `check_skillful` varchar(255) NOT NULL DEFAULT '' COMMENT '检查技术',
+  `cond_limit` varchar(1024) NOT NULL DEFAULT '' COMMENT '禁忌症和局限性',
+  `interventional` varchar(1024) NOT NULL DEFAULT '' COMMENT '适应症',
+  `emergency_sign` TINYINT(4) not null DEFAULT '0' COMMENT '危急标识(0:不危急,1:危急)',
+  `check_prepare` varchar(1024) not null DEFAULT '' COMMENT '检查前准备',
+  `remark` varchar(300) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `idx_concept_id` (`concept_id`) USING BTREE COMMENT '概念id全表唯一'
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='辅检扩展表';
+
+-- ----------------------------
+-- Table structure for operation
+-- ----------------------------
+DROP TABLE IF EXISTS `kl_operation`;
+CREATE TABLE `kl_operation` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `concept_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '术语概念id',
+  `operation_level` TINYINT(4) not null DEFAULT '0' COMMENT '手术级别(0,1,2,3,4)',
+  `operation_code` varchar(255) not null DEFAULT '' COMMENT '手术操作码',
+  `remark` varchar(300) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `idx_concept_id` (`concept_id`) USING BTREE COMMENT '概念id全表唯一'
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='手术扩展表';
+
+-- ----------------------------
+-- Table structure for vital result
+-- ----------------------------
+DROP TABLE IF EXISTS `kl_vital_result`;
+CREATE TABLE `kl_vital_result` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `concept_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '术语概念id',
+  `suitable_pop_no` varchar(255) not null DEFAULT '' COMMENT '不适宜人群',
+  `check_method` varchar(1024) not null DEFAULT '' COMMENT '操作方法',
+  `remark` varchar(300) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `idx_concept_id` (`concept_id`) USING BTREE COMMENT '概念id全表唯一'
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='体征结果扩展表';

+ 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', '朗通-知识库扩展维护-注册药品维护');