瀏覽代碼

Merge branch 'dev/20220228_v3.0.1通用版_渠道管理第一期' into test

rengb 3 年之前
父節點
當前提交
2f4989d9a3
共有 100 個文件被更改,包括 8576 次插入895 次删除
  1. 19 0
      config-center/src/main/resources/shared/mdsp-service-debug.yml
  2. 19 0
      config-center/src/main/resources/shared/mdsp-service-inner.yml
  3. 19 0
      config-center/src/main/resources/shared/mdsp-service-local.yml
  4. 19 0
      config-center/src/main/resources/shared/mdsp-service-outer.yml
  5. 19 0
      config-center/src/main/resources/shared/mdsp-service-test.yml
  6. 4 12
      daqe-center/pom.xml
  7. 3 0
      daqe-center/src/main/java/com/lantone/daqe/dto/GetColumnResultPageDTO.java
  8. 4 0
      daqe-center/src/main/java/com/lantone/daqe/dto/GetColumnVerifyPageDTO.java
  9. 4 0
      daqe-center/src/main/java/com/lantone/daqe/dto/GetRegular.java
  10. 4 0
      daqe-center/src/main/java/com/lantone/daqe/dto/GetStandardvalueInfoDTO.java
  11. 4 0
      daqe-center/src/main/java/com/lantone/daqe/dto/GetTableColumnInfoDTO.java
  12. 6 0
      daqe-center/src/main/java/com/lantone/daqe/entity/ColumnResult.java
  13. 6 0
      daqe-center/src/main/java/com/lantone/daqe/entity/NonnullResult.java
  14. 6 0
      daqe-center/src/main/java/com/lantone/daqe/entity/RegularResult.java
  15. 6 0
      daqe-center/src/main/java/com/lantone/daqe/entity/StandardvalueResult.java
  16. 4 1
      daqe-center/src/main/java/com/lantone/daqe/enums/ModeEnum.java
  17. 48 33
      daqe-center/src/main/java/com/lantone/daqe/facade/BlockLossManagementFacade.java
  18. 495 778
      daqe-center/src/main/java/com/lantone/daqe/facade/ColumnResultManagementFacade.java
  19. 43 12
      daqe-center/src/main/java/com/lantone/daqe/facade/ColumnVerifyManagementFacade.java
  20. 7 1
      daqe-center/src/main/java/com/lantone/daqe/mapper/ColumnInfoMapper.java
  21. 2 1
      daqe-center/src/main/java/com/lantone/daqe/mapper/ColumnResultMapper.java
  22. 4 0
      daqe-center/src/main/java/com/lantone/daqe/task/BlockLossDataCompareTask.java
  23. 3 0
      daqe-center/src/main/java/com/lantone/daqe/task/ColumnResultDataCompareTask.java
  24. 53 0
      daqe-center/src/main/java/com/lantone/daqe/task/UpColumnResultDataCompareTask.java
  25. 3 0
      daqe-center/src/main/java/com/lantone/daqe/vo/GetColumnNameVO.java
  26. 2 2
      daqe-center/src/main/java/com/lantone/daqe/vo/GetColumnResultNumberVO.java
  27. 4 4
      daqe-center/src/main/java/com/lantone/daqe/vo/GetColumnResultPageVO.java
  28. 2 1
      daqe-center/src/main/java/com/lantone/daqe/vo/GetTableColumnInfoVO.java
  29. 34 0
      daqe-center/src/main/java/com/lantone/daqe/vo/GetTableColumnNameVO.java
  30. 9 0
      daqe-center/src/main/java/com/lantone/daqe/web/ColumnResultManagmentController.java
  31. 3 2
      daqe-center/src/main/java/com/lantone/daqe/web/ColumnVerifyManagementController.java
  32. 11 3
      daqe-center/src/main/resources/bootstrap.yml
  33. 35 0
      daqe-center/src/main/resources/mapper/ColumnInfoMapper.xml
  34. 50 43
      daqe-center/src/main/resources/mapper/ColumnResultMapper.xml
  35. 3 1
      daqe-center/src/main/resources/mapper/ColumnVerifyMapper.xml
  36. 1 0
      daqe-center/src/main/resources/mapper/RegularMappingMapper.xml
  37. 1 0
      daqe-center/src/main/resources/mapper/StandardvalueInfoMapper.xml
  38. 103 0
      daqe-center/src/main/resources/upgrade/V3__daqe_init_addtable.sql
  39. 8 1
      gateway-service/src/main/resources/bootstrap.yml
  40. 33 0
      mdsp-service/.gitignore
  41. 79 0
      mdsp-service/pom.xml
  42. 19 0
      mdsp-service/src/main/java/com/lantone/MdspServiceApplication.java
  43. 57 0
      mdsp-service/src/main/java/com/lantone/client/CdssCoreClient.java
  44. 83 0
      mdsp-service/src/main/java/com/lantone/client/hystrix/CdssCoreHystrix.java
  45. 31 0
      mdsp-service/src/main/java/com/lantone/config/DruidConfig.java
  46. 14 0
      mdsp-service/src/main/java/com/lantone/config/JasyptConfig.java
  47. 13 0
      mdsp-service/src/main/java/com/lantone/config/RedisConfig.java
  48. 16 0
      mdsp-service/src/main/java/com/lantone/config/SwaggerConfig.java
  49. 48 0
      mdsp-service/src/main/java/com/lantone/dto/cdss/DictionaryInfoDTO.java
  50. 32 0
      mdsp-service/src/main/java/com/lantone/dto/cdss/IndexBatchDTO.java
  51. 38 0
      mdsp-service/src/main/java/com/lantone/dto/cdss/KllisDetailDTO.java
  52. 51 0
      mdsp-service/src/main/java/com/lantone/dto/cdss/LisDetailDTO.java
  53. 32 0
      mdsp-service/src/main/java/com/lantone/dto/med/IndexBatchDTO.java
  54. 38 0
      mdsp-service/src/main/java/com/lantone/dto/med/KllisDetailDTO.java
  55. 45 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/AdministrationRouteConfig.java
  56. 47 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/AnesthesiaConfig.java
  57. 143 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/DeptConfig.java
  58. 88 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/DictionaryInfo.java
  59. 137 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/DiseaseConfig.java
  60. 93 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/DrugConfig.java
  61. 147 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/LisConfig.java
  62. 302 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/MappingConfig.java
  63. 134 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/NurseConfig.java
  64. 136 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/OperationConfig.java
  65. 137 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/PacsConfig.java
  66. 135 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/ScaleConfig.java
  67. 135 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/TcmdiseaseConfig.java
  68. 135 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/TcmsyndromeConfig.java
  69. 135 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/TransfusionConfig.java
  70. 23 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/AdministrationRouteConfigWrapper.java
  71. 23 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/AnesthesiaConfigWrapper.java
  72. 24 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/DeptConfigWrapper.java
  73. 23 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/DiseaseConfigWrapper.java
  74. 28 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/DrugConfigWrapper.java
  75. 23 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/LisConfigWrapper.java
  76. 58 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/MappingConfigWrapper.java
  77. 23 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/NurseConfigWrapper.java
  78. 23 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/OperationConfigWrapper.java
  79. 23 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/PacsConfigWrapper.java
  80. 23 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/ScaleConfigWrapper.java
  81. 23 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/TcmdiseaseConfigWrapper.java
  82. 23 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/TcmsyndromeConfigWrapper.java
  83. 23 0
      mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/TransfusionConfigWrapper.java
  84. 167 0
      mdsp-service/src/main/java/com/lantone/entity/med/KlConcept.java
  85. 198 0
      mdsp-service/src/main/java/com/lantone/entity/med/KlDisease.java
  86. 184 0
      mdsp-service/src/main/java/com/lantone/entity/med/KlLibraryInfo.java
  87. 158 0
      mdsp-service/src/main/java/com/lantone/entity/med/KlOperation.java
  88. 147 0
      mdsp-service/src/main/java/com/lantone/entity/med/TcmDisease.java
  89. 147 0
      mdsp-service/src/main/java/com/lantone/entity/med/TcmSyndrome.java
  90. 79 0
      mdsp-service/src/main/java/com/lantone/enums/cdss/ConceptTypeEnum.java
  91. 67 0
      mdsp-service/src/main/java/com/lantone/enums/cdss/MatchSourceEnum.java
  92. 50 0
      mdsp-service/src/main/java/com/lantone/enums/cdss/StatusEnum.java
  93. 79 0
      mdsp-service/src/main/java/com/lantone/enums/med/ConceptTypeEnum.java
  94. 132 0
      mdsp-service/src/main/java/com/lantone/enums/med/LexiconEnum.java
  95. 66 0
      mdsp-service/src/main/java/com/lantone/enums/med/MatchSourceEnum.java
  96. 50 0
      mdsp-service/src/main/java/com/lantone/enums/med/StatusEnum.java
  97. 68 0
      mdsp-service/src/main/java/com/lantone/facade/cdss/DictionaryFacade.java
  98. 2544 0
      mdsp-service/src/main/java/com/lantone/facade/cdss/MappingConfigFacade.java
  99. 474 0
      mdsp-service/src/main/java/com/lantone/facade/med/KlConceptFacade.java
  100. 0 0
      mdsp-service/src/main/java/com/lantone/facade/med/KlDiseaseFacade.java

+ 19 - 0
config-center/src/main/resources/shared/mdsp-service-debug.yml

@@ -0,0 +1,19 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.237 # Redis服务器地址
+    port: 6351 # Redis服务器连接端口
+    password: ENC(Pfc4r7aTbxCpd0XAVZEpsoOTfvKlR+h3lK2RDwFntoeKt7RNo98hT8G2vznKCdg6) # Redis服务器连接密码(默认为空)
+  datasource:
+    dynamic:
+      datasource:
+        med:
+          url: jdbc:mysql://192.168.2.236:3306/med_2021?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+          username: root
+          password: lantone
+        cdss:
+          url: jdbc:mysql://192.168.2.236:3306/cdss?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+          username: root
+          password: lantone
+
+swagger.show: true

+ 19 - 0
config-center/src/main/resources/shared/mdsp-service-inner.yml

@@ -0,0 +1,19 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.125 # Redis服务器地址
+    port: 6351 # Redis服务器连接端口
+    password: ENC(YBV01kMHu6ufwSegbHcfaoQ20bbW1ho67SHAnKMsJX6K9O0ZXaF+/wHYlLOQjxqN) # Redis服务器连接密码(默认为空)
+  datasource:
+    dynamic:
+      datasource:
+        med:
+          url: jdbc:mysql://192.168.2.121:3306/med_2021?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+          username: teamback
+          password: goTulmLeon
+        cdss:
+          url: jdbc:mysql://192.168.2.121:3306/cdss?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+          username: teamback
+          password: goTulmLeon
+
+swagger.show: true

+ 19 - 0
config-center/src/main/resources/shared/mdsp-service-local.yml

@@ -0,0 +1,19 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.237 # Redis服务器地址
+    port: 6351 # Redis服务器连接端口
+    password: ENC(j/i26SYVLx6wfhf3GQZHVSXezzyyl41W7wChMG+FIgzZzlk+BYi1yDXe36zwoVLZ) # Redis服务器连接密码(默认为空)
+  datasource:
+    dynamic:
+      datasource:
+        med:
+          url: jdbc:mysql://192.168.2.236:3306/med_2021?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+          username: root
+          password: lantone
+        cdss:
+          url: jdbc:mysql://192.168.2.236:3306/cdss?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+          username: root
+          password: lantone
+
+swagger.show: true

+ 19 - 0
config-center/src/main/resources/shared/mdsp-service-outer.yml

@@ -0,0 +1,19 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.129 # Redis服务器地址
+    port: 6351 # Redis服务器连接端口
+    password: ENC(mesC4twLS8qQ9BiZBnXO8+IniAF+ljJQBJHCI63Tb8ZJgrwJxZc4VTm6x4ed91hh) # Redis服务器连接密码(默认为空)
+  datasource:
+    dynamic:
+      datasource:
+        med:
+          url: jdbc:mysql://192.168.2.122:3306/med_2021?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+          username: root
+          password: lantone
+        cdss:
+          url: jdbc:mysql://192.168.2.122:3306/cdss?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+          username: root
+          password: lantone
+
+swagger.show: false

+ 19 - 0
config-center/src/main/resources/shared/mdsp-service-test.yml

@@ -0,0 +1,19 @@
+spring:
+  redis:
+    database: 12
+    host: 192.168.2.126 # Redis服务器地址
+    port: 6351 # Redis服务器连接端口
+    password: ENC(4ueOtw8DSAJ5BcYg0kVIMwuhRhklV+vFjWFX3iLD9XDSVqw1ysb8w2ari1ch5Ro7) # Redis服务器连接密码(默认为空)
+  datasource:
+    dynamic:
+      datasource:
+        med:
+          url: jdbc:mysql://192.168.2.241:3306/med_2021?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+          username: root
+          password: lantone
+        cdss:
+          url: jdbc:mysql://192.168.2.241:3306/cdss?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+          username: root
+          password: lantone
+
+swagger.show: true

+ 4 - 12
daqe-center/pom.xml

@@ -9,10 +9,6 @@
         <version>0.0.1-SNAPSHOT</version>
     </parent>
 
-    <properties>
-        <easypoi.version>4.2.0</easypoi.version>
-    </properties>
-
     <artifactId>daqe-center</artifactId>
     <name>daqe-center</name>
     <packaging>jar</packaging>
@@ -23,14 +19,6 @@
             <groupId>com.lantone</groupId>
             <artifactId>dblayer-mbg</artifactId>
         </dependency>
-
-        <!-- easypoi -->
-        <dependency>
-            <groupId>cn.afterturn</groupId>
-            <artifactId>easypoi-spring-boot-starter</artifactId>
-            <version>${easypoi.version}</version>
-        </dependency>
-
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
@@ -47,6 +35,10 @@
             <groupId>io.github.openfeign</groupId>
             <artifactId>feign-okhttp</artifactId>
         </dependency>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-spring-boot-starter</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

+ 3 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetColumnResultPageDTO.java

@@ -60,6 +60,9 @@ public class GetColumnResultPageDTO implements Serializable {
     @ApiModelProperty(value = "字段问题类型,1-数据缺失,2-非标准值,3-正则校验失败")
     private String type;
 
+    @ApiModelProperty(value = "入院日期")
+    private Date behospitalDate;
+
     @ApiModelProperty(value = "最近一次机器比对时间")
     private Date solveTime;
 

+ 4 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetColumnVerifyPageDTO.java

@@ -6,6 +6,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * @Description: 获取字段校验规则维护数据-接口出参
@@ -45,4 +46,7 @@ public class GetColumnVerifyPageDTO implements Serializable {
 
     @ApiModelProperty(value = "说明")
     private String description;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date gmtCreate;
 }

+ 4 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetRegular.java

@@ -6,6 +6,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * @Description: 获取正则信息
@@ -32,4 +33,7 @@ public class GetRegular implements Serializable {
 
     @ApiModelProperty(value = "正则式描述")
     private String des;
+
+    @ApiModelProperty(value = "修改时间")
+    private Date gmtModified;
 }

+ 4 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetStandardvalueInfoDTO.java

@@ -6,6 +6,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * @Description: 列信息标准值信息
@@ -23,4 +24,7 @@ public class GetStandardvalueInfoDTO implements Serializable {
 
     @ApiModelProperty(value = "标准值")
     private String standardvalue;
+
+    @ApiModelProperty(value = "修改时间")
+    private Date gmtModified;
 }

+ 4 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetTableColumnInfoDTO.java

@@ -6,6 +6,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * @Description:
@@ -33,6 +34,9 @@ public class GetTableColumnInfoDTO implements Serializable {
     @ApiModelProperty(value = "住院序号")
     private String behospitalCode;
 
+    @ApiModelProperty(value = "入院日期")
+    private Date behospitalDate;
+
     @ApiModelProperty(value = "值")
     private String val;
 

+ 6 - 0
daqe-center/src/main/java/com/lantone/daqe/entity/ColumnResult.java

@@ -152,6 +152,12 @@ public class ColumnResult implements Serializable {
     @TableField("description")
     private String description;
 
+    /**
+     * 入院日期
+     */
+    @TableField("behospital_date")
+    private Date behospitalDate;
+
     /**
      * 是否删除,N:未删除,Y:删除
      */

+ 6 - 0
daqe-center/src/main/java/com/lantone/daqe/entity/NonnullResult.java

@@ -134,6 +134,12 @@ public class NonnullResult implements Serializable {
     @TableField("audit_time")
     private Date auditTime;
 
+    /**
+     * 入院日期
+     */
+    @TableField("behospital_date")
+    private Date behospitalDate;
+
     /**
      * 描述
      */

+ 6 - 0
daqe-center/src/main/java/com/lantone/daqe/entity/RegularResult.java

@@ -158,6 +158,12 @@ public class RegularResult implements Serializable {
     @TableField("audit_time")
     private Date auditTime;
 
+    /**
+     * 入院日期
+     */
+    @TableField("behospital_date")
+    private Date behospitalDate;
+
     /**
      * 描述
      */

+ 6 - 0
daqe-center/src/main/java/com/lantone/daqe/entity/StandardvalueResult.java

@@ -140,6 +140,12 @@ public class StandardvalueResult implements Serializable {
     @TableField("audit_time")
     private Date auditTime;
 
+    /**
+     * 入院日期
+     */
+    @TableField("behospital_date")
+    private Date behospitalDate;
+
     /**
      * 描述
      */

+ 4 - 1
daqe-center/src/main/java/com/lantone/daqe/enums/ModeEnum.java

@@ -9,7 +9,10 @@ import lombok.Setter;
  * @time: 2022/3/11 16:03
  */
 public enum ModeEnum {
-    med_home_page("6", "病案首页");
+    med_home_page("6", "病案首页"),
+    med_behospital_info("0", "住院病历信息"),
+    str_admission_note("1", "入院记录"),
+    str_leave_hospital("5", "出院小结");
 
 
     @Getter

+ 48 - 33
daqe-center/src/main/java/com/lantone/daqe/facade/BlockLossManagementFacade.java

@@ -104,17 +104,26 @@ public class BlockLossManagementFacade {
      */
     public Boolean dataCompare(DataCompareVO dataCompareVO) {
         Boolean flag = false;
+        Long hospitalId = null;
+        Long principleId = null;
+        //定时任务SysUserUtils取不到医院,操作人
+        if (dataCompareVO.getHospitalId() == null) {
+            hospitalId = SysUserUtils.getCurrentHospitalId();
+            principleId = SysUserUtils.getCurrentPrincipleId();
+        }
+
+
         //====1.获取已丢失状态记录,去数据库中对比判断是否补录
         List<BlocklossResult> lossResults = blocklossResultFacade.list(new QueryWrapper<BlocklossResult>()
                 .select("id,behospital_code,rec_id,loss_type,loss_way")
-                .eq(SysUserUtils.getCurrentHospitalId() != null, "hospital_id", SysUserUtils.getCurrentHospitalId())
+                .eq(hospitalId != null, "hospital_id", hospitalId)
                 .eq("status", LossStatusEnum.IS_LOSS.getKey())
                 .eq("is_deleted", IsDeleteEnum.N.getKey()));
         Map<String, List<BlocklossResult>> lossResultMap = null;
         if (ListUtil.isNotEmpty(lossResults)) {
             lossResultMap = EntityUtil.makeEntityListMap(lossResults, "lossType");
             //更新以缺失数据的状态
-            flag = upBlockLossStatus(lossResultMap);
+            flag = upBlockLossStatus(lossResultMap, hospitalId, principleId);
         }
 
         //====2.某时间的数据对比
@@ -155,7 +164,7 @@ public class BlockLossManagementFacade {
                 .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getStartDate())
                 .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getEndDate())
                 .eq(StringUtil.isNotBlank(dataCompareVO.getBehospitalCode()), "behospital_code", dataCompareVO.getBehospitalCode())
-                .eq(SysUserUtils.getCurrentHospitalId() != null, "hospital_id", SysUserUtils.getCurrentHospitalId())
+                .eq(hospitalId != null, "hospital_id", hospitalId)
                 .eq("is_deleted", IsDeleteEnum.N.getKey()))
                 .stream().map(BehospitalInfo::getBehospitalCode).collect(Collectors.toList());
         //病案首页数据
@@ -166,13 +175,13 @@ public class BlockLossManagementFacade {
             dataBaseHomePageIds = homePageFacade.list(new QueryWrapper<HomePage>()
                     .select("home_page_id")
                     .in("behospital_code", dataBaseBehospitalCodes)
-                    .eq(SysUserUtils.getCurrentHospitalId() != null, "hospital_id", SysUserUtils.getCurrentHospitalId())
+                    .eq(hospitalId != null, "hospital_id", hospitalId)
                     .eq("is_deleted", IsDeleteEnum.N.getKey()))
                     .stream().map(HomePage::getHomePageId).collect(Collectors.toList());
             dataBaseRecIds = medicalRecordFacade.list(new QueryWrapper<MedicalRecord>()
                     .select("rec_id")
                     .in("behospital_code", dataBaseBehospitalCodes)
-                    .eq(SysUserUtils.getCurrentHospitalId() != null, "hospital_id", SysUserUtils.getCurrentHospitalId())
+                    .eq(hospitalId != null, "hospital_id", hospitalId)
                     .eq("is_deleted", IsDeleteEnum.N.getKey()))
                     .stream().map(MedicalRecord::getRecId).collect(Collectors.toList());
         }
@@ -238,11 +247,11 @@ public class BlockLossManagementFacade {
             //外部丢失数据集合
             List<BlocklossResult> outInserts = new ArrayList<>();
             //文书数据对比
-            compareHisWithLog(recs, recLogs, LossTypeEnum.REC_LOSS.getKey(), outInserts, outLossRecs, hisMedicalRecordMap);
+            compareHisWithLog(recs, recLogs, LossTypeEnum.REC_LOSS.getKey(), outInserts, outLossRecs, hisMedicalRecordMap, hospitalId, principleId);
             //病案首页数据对比
-            compareHisWithLog(medicalRecords, homePageLogs, LossTypeEnum.HOMEPAGE_LOSS.getKey(), outInserts, outLossHomepages, hisMedicalRecordMap);
+            compareHisWithLog(medicalRecords, homePageLogs, LossTypeEnum.HOMEPAGE_LOSS.getKey(), outInserts, outLossHomepages, hisMedicalRecordMap, hospitalId, principleId);
             //病历数据对比
-            compareHisWithLog(medicalRecords, behospitalCodeLogs, LossTypeEnum.CODE_LOSS.getKey(), outInserts, outLossCodes, hisMedicalRecordMap);
+            compareHisWithLog(medicalRecords, behospitalCodeLogs, LossTypeEnum.CODE_LOSS.getKey(), outInserts, outLossCodes, hisMedicalRecordMap, hospitalId, principleId);
 
             flag = blocklossResultServiceImpl.saveBatch(outInserts);
         }
@@ -251,13 +260,13 @@ public class BlockLossManagementFacade {
         //内部丢失数据集合
         List<BlocklossResult> inInserts = new ArrayList<>();
         if (ListUtil.isNotEmpty(recLogs)) {
-            compareLogWithLocal(recLogs, dataBaseRecIds, LossTypeEnum.REC_LOSS.getKey(), inInserts, inLossRecs, hisMedicalRecordMap);
+            compareLogWithLocal(recLogs, dataBaseRecIds, LossTypeEnum.REC_LOSS.getKey(), inInserts, inLossRecs, hisMedicalRecordMap, hospitalId, principleId);
         }
         if (ListUtil.isNotEmpty(homePageLogs)) {
-            compareLogWithLocal(homePageLogs, dataBaseHomePageIds, LossTypeEnum.HOMEPAGE_LOSS.getKey(), inInserts, inLossHomepages, hisMedicalRecordMap);
+            compareLogWithLocal(homePageLogs, dataBaseHomePageIds, LossTypeEnum.HOMEPAGE_LOSS.getKey(), inInserts, inLossHomepages, hisMedicalRecordMap, hospitalId, principleId);
         }
         if (ListUtil.isNotEmpty(behospitalCodeLogs)) {
-            compareLogWithLocal(behospitalCodeLogs, dataBaseBehospitalCodes, LossTypeEnum.CODE_LOSS.getKey(), inInserts, inLossCodes, hisMedicalRecordMap);
+            compareLogWithLocal(behospitalCodeLogs, dataBaseBehospitalCodes, LossTypeEnum.CODE_LOSS.getKey(), inInserts, inLossCodes, hisMedicalRecordMap, hospitalId, principleId);
         }
         if (ListUtil.isNotEmpty(inInserts)) {
             flag = blocklossResultServiceImpl.saveBatch(inInserts);
@@ -290,11 +299,13 @@ public class BlockLossManagementFacade {
      * @param inInserts           内部丢失插入集合
      * @param havingLossIds       已经插入的id集合
      * @param hisMedicalRecordMap his病历数据map(key-住院序号:value-人的his数据)
+     * @param hospitalId          医院id
+     * @param principleId         操作人id
      * @Return void
      */
     private void compareLogWithLocal(List<GetOperationLogDTO> logs, List<String> dataBases, String type,
                                      List<BlocklossResult> inInserts, List<String> havingLossIds,
-                                     Map<String, HisMedicalRecordDTO> hisMedicalRecordMap) {
+                                     Map<String, HisMedicalRecordDTO> hisMedicalRecordMap, Long hospitalId, Long principleId) {
         switch (type) {
             case "0":
                 //文书丢失
@@ -312,7 +323,7 @@ public class BlockLossManagementFacade {
                                 blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(rec.getBehospitalCode()).getBehospitalDate());
                             }
                             //拼装病历数据块丢失明细其他信息
-                            assembleOtherBlocklossResult(blocklossResult);
+                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
                             inInserts.add(blocklossResult);
                         }
                     }
@@ -342,7 +353,7 @@ public class BlockLossManagementFacade {
                                 blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(recMap.get(recId).getBehospitalCode()).getBehospitalDate());
                             }
                             //拼装病历数据块丢失明细其他信息
-                            assembleOtherBlocklossResult(blocklossResult);
+                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
                             inInserts.add(blocklossResult);
                         }
                     });
@@ -365,7 +376,7 @@ public class BlockLossManagementFacade {
                                 blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(homePages.getBehospitalCode()).getBehospitalDate());
                             }
                             //拼装病历数据块丢失明细其他信息
-                            assembleOtherBlocklossResult(blocklossResult);
+                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
                             inInserts.add(blocklossResult);
                         }
                     }
@@ -385,7 +396,7 @@ public class BlockLossManagementFacade {
                                 blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()).getBehospitalDate());
                             }
                             //拼装病历数据块丢失明细其他信息
-                            assembleOtherBlocklossResult(blocklossResult);
+                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
                             inInserts.add(blocklossResult);
                         }
                     }
@@ -403,7 +414,7 @@ public class BlockLossManagementFacade {
      * @param lossResultMap
      * @Return void
      */
-    private Boolean upBlockLossStatus(Map<String, List<BlocklossResult>> lossResultMap) {
+    private Boolean upBlockLossStatus(Map<String, List<BlocklossResult>> lossResultMap, Long hospitalId, Long principleId) {
         AtomicReference<Boolean> flag = new AtomicReference<>(false);
         lossResultMap.keySet().stream().forEach(lossType -> {
             //0:文书丢失 1:病案首页丢失 2:患者信息丢失
@@ -411,7 +422,7 @@ public class BlockLossManagementFacade {
                 case "0":
                     //文书丢失
                     List<String> redIds = medicalRecordFacade.list(new QueryWrapper<MedicalRecord>()
-                            .eq("hospital_id", SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
+                            .eq("hospital_id", hospitalId != null ? hospitalId : 0)
                             .in("rec_id", lossResultMap.get(lossType).stream().map(BlocklossResult::getRecId).collect(Collectors.toList()))
                             .in("behospital_code", lossResultMap.get(lossType).stream().map(BlocklossResult::getBehospitalCode).collect(Collectors.toList()))
                             .eq("is_deleted", IsDeleteEnum.N.getKey()))
@@ -422,18 +433,18 @@ public class BlockLossManagementFacade {
                                 .set("solve_time", DateUtil.now())
                                 .set("gmt_modified", DateUtil.now())
                                 .set("status", LossStatusEnum.NOT_LOSS.getKey())
-                                .set("modifier", SysUserUtils.getCurrentPrincipleId() != null ? SysUserUtils.getCurrentPrincipleId() + "" : "0")
+                                .set("modifier", principleId != null ? principleId + "" : "0")
                                 .eq("status", LossStatusEnum.IS_LOSS.getKey())
                                 .eq("loss_type", lossType)
                                 .eq("is_deleted", IsDeleteEnum.N.getKey())
-                                .eq("hospital_id", SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
+                                .eq("hospital_id", hospitalId != null ? hospitalId : 0)
                                 .in("rec_id", redIds)));
                     }
                     break;
                 case "1":
                     //病案首页丢失
                     List<String> homePages = homePageFacade.list(new QueryWrapper<HomePage>()
-                            .eq("hospital_id", SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
+                            .eq("hospital_id", hospitalId != null ? hospitalId : 0)
                             .in("home_page_id", lossResultMap.get(lossType).stream().map(BlocklossResult::getRecId).collect(Collectors.toList()))
                             .in("behospital_code", lossResultMap.get(lossType).stream().map(BlocklossResult::getBehospitalCode).collect(Collectors.toList()))
                             .eq("is_deleted", IsDeleteEnum.N.getKey()))
@@ -445,10 +456,10 @@ public class BlockLossManagementFacade {
                                 .set("solve_time", DateUtil.now())
                                 .set("gmt_modified", DateUtil.now())
                                 .set("status", LossStatusEnum.NOT_LOSS.getKey())
-                                .set("modifier", SysUserUtils.getCurrentPrincipleId() != null ? SysUserUtils.getCurrentPrincipleId() + "" : "0")
+                                .set("modifier", principleId != null ? principleId + "" : "0")
                                 .eq("status", LossStatusEnum.IS_LOSS.getKey())
                                 .eq("loss_type", lossType)
-                                .eq("hospital_id", SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
+                                .eq("hospital_id", hospitalId != null ? hospitalId : 0)
                                 .in("rec_id", homePages)
                                 .eq("is_deleted", IsDeleteEnum.N.getKey())));
                     }
@@ -456,7 +467,7 @@ public class BlockLossManagementFacade {
                 case "2":
                     //患者信息丢失
                     List<String> behospitalCodes = behospitalInfoFacade.list(new QueryWrapper<BehospitalInfo>()
-                            .eq("hospital_id", SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
+                            .eq("hospital_id", hospitalId != null ? hospitalId : 0)
                             .in("behospital_code", lossResultMap.get(lossType).stream().map(BlocklossResult::getBehospitalCode).collect(Collectors.toList()))
                             .eq("is_deleted", IsDeleteEnum.N.getKey()))
                             .stream().map(BehospitalInfo::getBehospitalCode).collect(Collectors.toList());
@@ -466,11 +477,11 @@ public class BlockLossManagementFacade {
                                 .set("solve_time", DateUtil.now())
                                 .set("gmt_modified", DateUtil.now())
                                 .set("status", LossStatusEnum.NOT_LOSS.getKey())
-                                .set("modifier", SysUserUtils.getCurrentPrincipleId() != null ? SysUserUtils.getCurrentPrincipleId() + "" : "0")
+                                .set("modifier", principleId != null ? principleId + "" : "0")
                                 .eq("status", LossStatusEnum.IS_LOSS.getKey())
                                 .eq("loss_type", lossType)
                                 .eq("is_deleted", IsDeleteEnum.N.getKey())
-                                .eq("hospital_id", SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0)
+                                .eq("hospital_id", hospitalId != null ? hospitalId : 0)
                                 .in("behospital_code", behospitalCodes)));
                     }
                     break;
@@ -488,11 +499,13 @@ public class BlockLossManagementFacade {
      * @param outInserts          外部丢失插入集合
      * @param havingLossIds       已经插入的id集合
      * @param hisMedicalRecordMap his病历数据map(key-住院序号:value-人的his数据)
+     * @param hospitalId          医院id
+     * @param principleId         操作人id
      * @Return void
      */
     private void compareHisWithLog(List<GetOperationLogDTO> medicalRecords, List<GetOperationLogDTO> logs,
                                    String type, List<BlocklossResult> outInserts, List<String> havingLossIds,
-                                   Map<String, HisMedicalRecordDTO> hisMedicalRecordMap) {
+                                   Map<String, HisMedicalRecordDTO> hisMedicalRecordMap, Long hospitalId, Long principleId) {
         //his数据为空直接返回
         if (ListUtil.isEmpty(medicalRecords)) {
             return;
@@ -514,7 +527,7 @@ public class BlockLossManagementFacade {
                                 blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
                                 blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
                                 //拼装病历数据块丢失明细其他信息
-                                assembleOtherBlocklossResult(blocklossResult);
+                                assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
                                 outInserts.add(blocklossResult);
                             }
                         }
@@ -535,7 +548,7 @@ public class BlockLossManagementFacade {
                             blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
                             blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
                             //拼装病历数据块丢失明细其他信息
-                            assembleOtherBlocklossResult(blocklossResult);
+                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
                             outInserts.add(blocklossResult);
                         }
                     }
@@ -553,7 +566,7 @@ public class BlockLossManagementFacade {
                             blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
                             blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
                             //拼装病历数据块丢失明细其他信息
-                            assembleOtherBlocklossResult(blocklossResult);
+                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
                             outInserts.add(blocklossResult);
                         }
                     }
@@ -568,13 +581,15 @@ public class BlockLossManagementFacade {
      * 拼装病历数据块丢失明细其他信息
      *
      * @param blocklossResult
+     * @param hospitalId
+     * @param principleId
      * @Return void
      */
-    private void assembleOtherBlocklossResult(BlocklossResult blocklossResult) {
+    private void assembleOtherBlocklossResult(BlocklossResult blocklossResult, Long hospitalId, Long principleId) {
         blocklossResult.setStatus(LossStatusEnum.IS_LOSS.getKey());
-        blocklossResult.setHospitalId(SysUserUtils.getCurrentHospitalId() != null ? SysUserUtils.getCurrentHospitalId() : 0);
+        blocklossResult.setHospitalId(hospitalId != null ? hospitalId : 0);
         blocklossResult.setGmtCreate(DateUtil.now());
-        blocklossResult.setCreator(SysUserUtils.getCurrentPrincipleId() != null ? SysUserUtils.getCurrentPrincipleId() + "" : "0");
+        blocklossResult.setCreator(principleId != null ? principleId + "" : "0");
         blocklossResult.setGmtModified(DateUtil.now());
     }
 

File diff suppressed because it is too large
+ 495 - 778
daqe-center/src/main/java/com/lantone/daqe/facade/ColumnResultManagementFacade.java


+ 43 - 12
daqe-center/src/main/java/com/lantone/daqe/facade/ColumnVerifyManagementFacade.java

@@ -38,6 +38,7 @@ import com.lantone.daqe.vo.GetByIdColumnVerifyVO;
 import com.lantone.daqe.vo.GetColumnNameVO;
 import com.lantone.daqe.vo.GetColumnVerifyPageVO;
 import com.lantone.daqe.vo.GetRegularVO;
+import com.lantone.daqe.vo.GetTableColumnNameVO;
 import com.lantone.daqe.vo.GetTableNameVO;
 import com.lantone.daqe.vo.UpdateColumnVerifyVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -112,14 +113,7 @@ public class ColumnVerifyManagementFacade {
      * @return: 数据库表中列数据表名称信息
      */
     public List<GetTableNameDTO> getTableName(GetTableNameVO getTableNameVO) {
-        List<ColumnInfo> columnInfoList = columnInfoFacade.getBaseMapper().selectList(new QueryWrapper<ColumnInfo>()
-                .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .like(StringUtil.isNotBlank(getTableNameVO.getTableCname()), "table_cname", getTableNameVO.getTableCname())
-                .like(StringUtil.isNotBlank(getTableNameVO.getTableEname()), "table_ename", getTableNameVO.getTableEname())
-                .groupBy("table_cname", "table_ename")
-        );
-        List<GetTableNameDTO> getColumnDTOList = BeanUtil.listCopyTo(columnInfoList, GetTableNameDTO.class);
-        return getColumnDTOList;
+        return columnInfoFacade.getBaseMapper().getVerifyTableName(getTableNameVO);
     }
 
     /**
@@ -131,6 +125,7 @@ public class ColumnVerifyManagementFacade {
     public List<GetColumnNameDTO> getColumnName(GetColumnNameVO getColumnNameVO) {
         List<ColumnInfo> columnInfoList = columnInfoFacade.getBaseMapper().selectList(new QueryWrapper<ColumnInfo>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("table_ename",getColumnNameVO.getTableEname())
                 .like(StringUtil.isNotBlank(getColumnNameVO.getColumnCname()), "column_cname", getColumnNameVO.getColumnCname())
                 .like(StringUtil.isNotBlank(getColumnNameVO.getColumnEname()), "column_ename", getColumnNameVO.getColumnEname())
                 .groupBy("column_cname", "column_ename")
@@ -145,8 +140,8 @@ public class ColumnVerifyManagementFacade {
      * @param
      * @return: 数据库表中列数据字段名称信息
      */
-    public List<GetTableColumnNameDTO> getTableColumnName() {
-        List<GetColumnInfoDTO> columnInfoList = columnInfoFacade.getBaseMapper().getNoVerifyColumnName();
+    public List<GetTableColumnNameDTO> getTableColumnName(GetTableColumnNameVO getTableColumnNameVO) {
+        List<GetColumnInfoDTO> columnInfoList = columnInfoFacade.getBaseMapper().getNoVerifyColumnName(getTableColumnNameVO);
         List<String> columnString = new ArrayList<>();
         List<GetTableColumnNameDTO> getTableColumnNameDTOS = new ArrayList<>();
         for (GetColumnInfoDTO columnInfo : columnInfoList) {
@@ -198,8 +193,14 @@ public class ColumnVerifyManagementFacade {
      */
     public Boolean addColumnVerify(AddColumnVerifyVO addColumnVerifyVO) {
         Long currentHospitalId = SysUserUtils.getCurrentHospitalId();
+        Long principleId = SysUserUtils.getCurrentPrincipleId();
         addColumnVerifyVO.setHospitalId(currentHospitalId);
         List<ColumnInfoVO> columnList = addColumnVerifyVO.getColumnList();
+        //判断是否有重复
+        long distinctNum = columnList.stream().map(ColumnInfoVO::getId).distinct().count();
+        if (distinctNum < columnList.size()) {
+            Asserts.fail("表字段信息不能重复 !");
+        }
         //查出表列信息ID
         for (ColumnInfoVO columnInfoVO : columnList) {
             Long columnId = columnInfoVO.getId();
@@ -225,6 +226,8 @@ public class ColumnVerifyManagementFacade {
                 RegularMapping regularMapping = new RegularMapping();
                 regularMapping.setColumnId(columnId);
                 regularMapping.setGmtCreate(new Date());
+                regularMapping.setGmtModified(new Date());
+                regularMapping.setCreator(principleId.toString());
                 regularMapping.setRegularId(addColumnVerifyVO.getRegularId());
                 try {
                     regularMappingFacade.getBaseMapper().insert(regularMapping);
@@ -238,6 +241,8 @@ public class ColumnVerifyManagementFacade {
                 columnVerify.setVerifyVal(addColumnVerifyVO.getRegularName());
                 columnVerify.setDescription(addColumnVerifyVO.getDescription());
                 columnVerify.setGmtCreate(new Date());
+                columnVerify.setGmtModified(new Date());
+                columnVerify.setCreator(principleId.toString());
                 try {
                     columnVerifyFacade.getBaseMapper().insert(columnVerify);
                 } catch (Exception e) {
@@ -257,6 +262,8 @@ public class ColumnVerifyManagementFacade {
                 NonnullInfo nonnullInfo = new NonnullInfo();
                 nonnullInfo.setColumnId(columnId);
                 nonnullInfo.setGmtCreate(new Date());
+                nonnullInfo.setGmtModified(new Date());
+                nonnullInfo.setCreator(principleId.toString());
                 nonnullInfo.setIsRequired(addColumnVerifyVO.getIsRequired());
                 try {
                     nonnullInfoFacade.getBaseMapper().insert(nonnullInfo);
@@ -270,6 +277,8 @@ public class ColumnVerifyManagementFacade {
                 columnVerify.setVerifyVal(addColumnVerifyVO.getIsRequired());
                 columnVerify.setDescription(addColumnVerifyVO.getDescription());
                 columnVerify.setGmtCreate(new Date());
+                columnVerify.setGmtModified(new Date());
+                columnVerify.setCreator(principleId.toString());
                 try {
                     columnVerifyFacade.getBaseMapper().insert(columnVerify);
                 } catch (Exception e) {
@@ -283,6 +292,8 @@ public class ColumnVerifyManagementFacade {
                     StandardvalueInfo standardvalueInfo = new StandardvalueInfo();
                     standardvalueInfo.setColumnId(columnId);
                     standardvalueInfo.setGmtCreate(new Date());
+                    standardvalueInfo.setGmtModified(new Date());
+                    standardvalueInfo.setCreator(principleId.toString());
                     standardvalueInfo.setVal(standardValue);
                     try {
                         standardvalueInfoFacade.getBaseMapper().insert(standardvalueInfo);
@@ -296,6 +307,8 @@ public class ColumnVerifyManagementFacade {
                     columnVerify.setVerifyVal(standardValue);
                     columnVerify.setDescription(addColumnVerifyVO.getDescription());
                     columnVerify.setGmtCreate(new Date());
+                    columnVerify.setGmtModified(new Date());
+                    columnVerify.setCreator(principleId.toString());
                     try {
                         columnVerifyFacade.getBaseMapper().insert(columnVerify);
                     } catch (Exception e) {
@@ -388,8 +401,14 @@ public class ColumnVerifyManagementFacade {
      */
     public Boolean updateColumnVerify(UpdateColumnVerifyVO updateColumnVerifyVO) {
         Long currentHospitalId = SysUserUtils.getCurrentHospitalId();
+        Long principleId = SysUserUtils.getCurrentPrincipleId();
         updateColumnVerifyVO.setHospitalId(currentHospitalId);
         List<ColumnInfoVO> columnList = updateColumnVerifyVO.getColumnList();
+        //判断是否有重复--去重
+        long distinctNum = columnList.stream().map(ColumnInfoVO::getId).distinct().count();
+        if (distinctNum < columnList.size()) {
+            Asserts.fail("表字段信息不能重复 !");
+        }
         AddColumnVerifyVO addColumnVerifyVO = new AddColumnVerifyVO();
         List<ColumnInfoVO> columnInfoAdd = new ArrayList<>();
         List<ColumnInfoVO> columnInfoUpdate = new ArrayList<>();
@@ -444,6 +463,7 @@ public class ColumnVerifyManagementFacade {
                                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                                 .set("regular_id", updateColumnVerifyVO.getRegularId())
                                 .set("gmt_modified", new Date())
+                                .set("modifier",principleId)
                         );
                         Long mappingId = selectOneMapping.getId();
                         //修改总表
@@ -454,12 +474,14 @@ public class ColumnVerifyManagementFacade {
                                 .set("verify_val", updateColumnVerifyVO.getRegularName())
                                 .set("description", updateColumnVerifyVO.getDescription())
                                 .set("gmt_modified", new Date())
+                                .set("modifier",principleId)
                         );
                     } else {
                         //未关联正则走新增
                         RegularMapping regularMapping = new RegularMapping();
                         regularMapping.setColumnId(columnId);
                         regularMapping.setGmtCreate(new Date());
+                        regularMapping.setCreator(principleId.toString());
                         regularMapping.setRegularId(updateColumnVerifyVO.getRegularId());
                         try {
                             regularMappingFacade.getBaseMapper().insert(regularMapping);
@@ -473,6 +495,7 @@ public class ColumnVerifyManagementFacade {
                         columnVerify.setVerifyVal(updateColumnVerifyVO.getRegularName());
                         columnVerify.setDescription(updateColumnVerifyVO.getDescription());
                         columnVerify.setGmtCreate(new Date());
+                        columnVerify.setCreator(principleId.toString());
                         try {
                             columnVerifyFacade.getBaseMapper().insert(columnVerify);
                         } catch (Exception e) {
@@ -494,6 +517,7 @@ public class ColumnVerifyManagementFacade {
                                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                                 .set("is_required", updateColumnVerifyVO.getIsRequired())
                                 .set("gmt_modified", new Date())
+                                .set("modifier",principleId)
                         );
                         Long mappingId = selectOneInfo.getId();
                         //修改总表
@@ -504,11 +528,13 @@ public class ColumnVerifyManagementFacade {
                                 .set("verify_val", updateColumnVerifyVO.getIsRequired())
                                 .set("description", updateColumnVerifyVO.getDescription())
                                 .set("gmt_modified", new Date())
+                                .set("modifier",principleId)
                         );
                     } else {
                         NonnullInfo nonnullInfo = new NonnullInfo();
                         nonnullInfo.setColumnId(columnId);
                         nonnullInfo.setGmtCreate(new Date());
+                        nonnullInfo.setCreator(principleId.toString());
                         nonnullInfo.setIsRequired(updateColumnVerifyVO.getIsRequired());
                         try {
                             nonnullInfoFacade.getBaseMapper().insert(nonnullInfo);
@@ -522,6 +548,7 @@ public class ColumnVerifyManagementFacade {
                         columnVerify.setVerifyVal(updateColumnVerifyVO.getIsRequired());
                         columnVerify.setDescription(updateColumnVerifyVO.getDescription());
                         columnVerify.setGmtCreate(new Date());
+                        columnVerify.setCreator(principleId.toString());
                         try {
                             columnVerifyFacade.getBaseMapper().insert(columnVerify);
                         } catch (Exception e) {
@@ -533,10 +560,10 @@ public class ColumnVerifyManagementFacade {
                     //插入关键字信息维护表
                     List<String> standardValueList = updateColumnVerifyVO.getStandardValueList();
                     //先删除之前的关联然后直接插入
-                    standardvalueInfoFacade.remove(new QueryWrapper<StandardvalueInfo>()
+                    standardvalueInfoFacade.remove(new UpdateWrapper<StandardvalueInfo>()
                             .eq("column_id", columnId)
                     );
-                    columnVerifyFacade.remove(new QueryWrapper<ColumnVerify>()
+                    columnVerifyFacade.remove(new UpdateWrapper<ColumnVerify>()
                             .eq("column_id", columnId)
                             .eq("type", ColumnVerifyTypeEnum.STANDARD_TYPE.getKey())
                     );
@@ -544,7 +571,9 @@ public class ColumnVerifyManagementFacade {
                         StandardvalueInfo standardvalueInfo = new StandardvalueInfo();
                         standardvalueInfo.setColumnId(columnId);
                         standardvalueInfo.setGmtCreate(new Date());
+                        standardvalueInfo.setGmtModified(new Date());
                         standardvalueInfo.setVal(standardValue);
+                        standardvalueInfo.setCreator(principleId.toString());
                         try {
                             standardvalueInfoFacade.getBaseMapper().insert(standardvalueInfo);
                         } catch (Exception e) {
@@ -557,6 +586,8 @@ public class ColumnVerifyManagementFacade {
                         columnVerify.setVerifyVal(standardValue);
                         columnVerify.setDescription(updateColumnVerifyVO.getDescription());
                         columnVerify.setGmtCreate(new Date());
+                        columnVerify.setGmtModified(new Date());
+                        columnVerify.setCreator(principleId.toString());
                         try {
                             columnVerifyFacade.getBaseMapper().insert(columnVerify);
                         } catch (Exception e) {

+ 7 - 1
daqe-center/src/main/java/com/lantone/daqe/mapper/ColumnInfoMapper.java

@@ -2,7 +2,11 @@ package com.lantone.daqe.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.lantone.daqe.dto.GetColumnInfoDTO;
+import com.lantone.daqe.dto.GetTableNameDTO;
 import com.lantone.daqe.entity.ColumnInfo;
+import com.lantone.daqe.vo.GetTableColumnNameVO;
+import com.lantone.daqe.vo.GetTableNameVO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -12,5 +16,7 @@ import java.util.List;
  * </p>
  */
 public interface ColumnInfoMapper extends BaseMapper<ColumnInfo> {
-    List<GetColumnInfoDTO> getNoVerifyColumnName();
+
+    List<GetColumnInfoDTO> getNoVerifyColumnName(@Param("getTableColumnNameVO") GetTableColumnNameVO getTableColumnNameVO);
+    List<GetTableNameDTO> getVerifyTableName(@Param("getTableNameVO") GetTableNameVO getTableNameVO);
 }

+ 2 - 1
daqe-center/src/main/java/com/lantone/daqe/mapper/ColumnResultMapper.java

@@ -18,5 +18,6 @@ import java.util.List;
 public interface ColumnResultMapper extends BaseMapper<ColumnResult> {
     GetColumnResultNumberDTO getColumnResultNumber(@Param("getColumnResultNumberVO") GetColumnResultNumberVO getColumnResultNumberVO);
 
-    List<GetTableColumnInfoDTO> getTableColumnVal(@Param("getTableColumnInfoVO") GetTableColumnInfoVO getTableColumnInfoVO);
+
+    List<GetTableColumnInfoDTO> getSpecialTableColumnVal(@Param("getTableColumnInfoVO") GetTableColumnInfoVO getTableColumnInfoVO);
 }

+ 4 - 0
daqe-center/src/main/java/com/lantone/daqe/task/BlockLossDataCompareTask.java

@@ -28,6 +28,9 @@ public class BlockLossDataCompareTask implements SchedulingConfigurer {
     @Value("${blockloss.compare.use}")
     private String isUsed = "false";
 
+    @Value("${blockloss.compare.hospitalId}")
+    private String hospitalId = "0";
+
     /**
      * 执行定时任务.
      */
@@ -40,6 +43,7 @@ public class BlockLossDataCompareTask implements SchedulingConfigurer {
                     DataCompareVO dataCompareVO = new DataCompareVO();
                     dataCompareVO.setStartDate(DateUtil.addDate(DateUtil.now(),-1));
                     dataCompareVO.setEndDate(DateUtil.now());
+                    dataCompareVO.setHospitalId(Long.parseLong(hospitalId));
                     blockLossManagementFacade.dataCompare(dataCompareVO);
                 }
             }

+ 3 - 0
daqe-center/src/main/java/com/lantone/daqe/task/ColumnResultDataCompareTask.java

@@ -27,6 +27,8 @@ public class ColumnResultDataCompareTask implements SchedulingConfigurer {
     private String cron = "0 0 1 * * ?";
     @Value("${columnResult.compare.use}")
     private String isUsed = "false";
+    @Value("${columnResult.compare.hospitalId}")
+    private String hospitalId = "0";
 
     /**
      * 执行定时任务.
@@ -40,6 +42,7 @@ public class ColumnResultDataCompareTask implements SchedulingConfigurer {
                     DataCheckVO dataCheckVO = new DataCheckVO();
                     dataCheckVO.setDateStart(DateUtil.addDate(DateUtil.now(),-1));
                     dataCheckVO.setDateEnd(DateUtil.now());
+                    dataCheckVO.setHospitalId(Long.valueOf(hospitalId));
                     columnResultManagementFacade.dataCheck(dataCheckVO);
                 }
             }

+ 53 - 0
daqe-center/src/main/java/com/lantone/daqe/task/UpColumnResultDataCompareTask.java

@@ -0,0 +1,53 @@
+package com.lantone.daqe.task;
+
+import com.lantone.common.util.DateUtil;
+import com.lantone.daqe.facade.ColumnResultManagementFacade;
+import com.lantone.daqe.vo.DataCheckVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.Trigger;
+import org.springframework.scheduling.TriggerContext;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.SchedulingConfigurer;
+import org.springframework.scheduling.config.ScheduledTaskRegistrar;
+import org.springframework.scheduling.support.CronTrigger;
+
+import java.util.Date;
+
+@Configuration      //1.主要用于标记配置类,兼备Component的效果。
+@EnableScheduling   // 2.开启定时任务
+@Slf4j
+public class UpColumnResultDataCompareTask implements SchedulingConfigurer {
+
+    @Autowired
+    private ColumnResultManagementFacade columnResultManagementFacade;
+    @Value("${upColumnResult.compare.cron}")
+    private String cron = "0 0 0 * * ?";
+    @Value("${upColumnResult.compare.use}")
+    private String isUsed = "false";
+    @Value("${upColumnResult.compare.hospitalId}")
+    private String hospitalId = "0";
+    /**
+     * 执行定时任务.
+     */
+    @Override
+    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+        taskRegistrar.addTriggerTask(new Runnable() {
+            @Override
+            public void run() {
+                if(Boolean.parseBoolean(isUsed)){
+
+                    columnResultManagementFacade.taskCheckTableColumnVal(Long.valueOf(hospitalId));
+                }
+            }
+        }, new Trigger() {
+            @Override
+            public Date nextExecutionTime(TriggerContext triggerContext) {
+                CronTrigger trigger = new CronTrigger(cron);
+                return trigger.nextExecutionTime(triggerContext);
+            }
+        });
+    }
+}

+ 3 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/GetColumnNameVO.java

@@ -19,6 +19,9 @@ public class GetColumnNameVO implements Serializable {
 
     private static final long serialVersionUID = 5838762135714290423L;
 
+    @ApiModelProperty(value = "表名称(英文)", required = true)
+    private String tableEname;
+
     @ApiModelProperty(value = "字段名称(中文)")
     private String columnCname;
 

+ 2 - 2
daqe-center/src/main/java/com/lantone/daqe/vo/GetColumnResultNumberVO.java

@@ -26,10 +26,10 @@ public class GetColumnResultNumberVO implements Serializable {
 
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "开始时间", required = true)
-    private Date solveTimeStart;
+    private Date behospitalStartDate;
 
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "结束时间", required = true)
-    private Date solveTimeEnd;
+    private Date behospitalEndDate;
 
 }

+ 4 - 4
daqe-center/src/main/java/com/lantone/daqe/vo/GetColumnResultPageVO.java

@@ -22,12 +22,12 @@ public class GetColumnResultPageVO extends Page {
     private static final long serialVersionUID = -9174449428110548322L;
 
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty(value = "开始时间", required = true)
-    private Date solveTimeStart;
+    @ApiModelProperty(value = "入院开始时间", required = true)
+    private Date behospitalStartDate;
 
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty(value = "结束时间", required = true)
-    private Date solveTimeEnd;
+    @ApiModelProperty(value = "入院结束时间", required = true)
+    private Date behospitalEndDate;
 
     @ApiModelProperty(value = "组织ID", required = true,hidden = true)
     private Long hospitalId;

+ 2 - 1
daqe-center/src/main/java/com/lantone/daqe/vo/GetTableColumnInfoVO.java

@@ -6,6 +6,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @Description: 表字段名称表名称信息
@@ -42,7 +43,7 @@ public class GetTableColumnInfoVO implements Serializable {
     private String columnEname;
 
     @ApiModelProperty(value = "住院序号")
-    private String behospitalCode;
+    private List<String> behospitalCodeList;
 
     @ApiModelProperty(value = "是否为运行质控,0-运行质控,1-终末质控",required = true)
     private String isPlacefile;

+ 34 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/GetTableColumnNameVO.java

@@ -0,0 +1,34 @@
+package com.lantone.daqe.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 根据类型获取表字段信息
+ * @author: zhanghang
+ * @time: 2022/3/23 10:45
+ */
+@ApiModel(value = "根据类型获取表字段信息")
+@Getter
+@Setter
+public class GetTableColumnNameVO implements Serializable {
+    private static final long serialVersionUID = -3298890194696044902L;
+
+    @ApiModelProperty(value = "表名称(中文)")
+    private String tableCname;
+
+    @ApiModelProperty(value = "表名称(英文)")
+    private String tableEname;
+
+    @ApiModelProperty(value = "字段名称(中文)")
+    private String columnCname;
+
+    @ApiModelProperty(value = "字段名称(英文)")
+    private String columnEname;
+
+
+}

+ 9 - 0
daqe-center/src/main/java/com/lantone/daqe/web/ColumnResultManagmentController.java

@@ -21,6 +21,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * @Description: 字段校验问题明细API
  * @author: zhanghang
@@ -66,4 +68,11 @@ public class ColumnResultManagmentController {
     public CommonResult<Boolean> dataCheck(@RequestBody DataCheckVO dataCheckVO) {
         return CommonResult.success(columnResultManagementFacade.dataCheck(dataCheckVO));
     }
+
+    @ApiOperation(value = "获取质控模块名称 [by:zhanghang]")
+    @PostMapping("/getModeName")
+    @Transactional
+    public CommonResult<List<String>> getModeName() {
+        return CommonResult.success(columnResultManagementFacade.getModeName());
+    }
 }

+ 3 - 2
daqe-center/src/main/java/com/lantone/daqe/web/ColumnVerifyManagementController.java

@@ -16,6 +16,7 @@ import com.lantone.daqe.vo.GetByIdColumnVerifyVO;
 import com.lantone.daqe.vo.GetColumnNameVO;
 import com.lantone.daqe.vo.GetColumnVerifyPageVO;
 import com.lantone.daqe.vo.GetRegularVO;
+import com.lantone.daqe.vo.GetTableColumnNameVO;
 import com.lantone.daqe.vo.GetTableNameVO;
 import com.lantone.daqe.vo.UpdateColumnVerifyVO;
 import io.swagger.annotations.Api;
@@ -70,8 +71,8 @@ public class ColumnVerifyManagementController {
 
     @ApiOperation(value = "新增修改下拉框获取数据库表中列数据字段名称信息 [by:zhanghang]")
     @PostMapping("/getAddUpColumnName")
-    public CommonResult<List<GetTableColumnNameDTO>> getTableColumnName() {
-        return CommonResult.success(columnVerifyManagementFacade.getTableColumnName());
+    public CommonResult<List<GetTableColumnNameDTO>> getTableColumnName(@RequestBody GetTableColumnNameVO getTableColumnNameVO) {
+        return CommonResult.success(columnVerifyManagementFacade.getTableColumnName(getTableColumnNameVO ));
     }
 
     @ApiOperation(value = "下拉框获取正则式名称 [by:zhanghang]")

+ 11 - 3
daqe-center/src/main/resources/bootstrap.yml

@@ -59,10 +59,18 @@ swagger.version: 0.0.1-SNAPSHOT
 #数据比对定时器
 blockloss:
   compare:
-    cron: 0 0 1 * * ?
+    cron: 0 0/1 * * * ?
     use: true
+    hospitalId: 4
 #数据校验定时器
 columnResult:
   compare:
-    cron: 0 0 1 * * ?
-    use: true
+    cron: 0 0/1 * * ?
+    use: true
+    hospitalId: 4
+#修改规则数据校验定时器
+upColumnResult:
+  compare:
+    cron: 0 0/0 * * ?
+    use: true
+    hospitalId: 4

+ 35 - 0
daqe-center/src/main/resources/mapper/ColumnInfoMapper.xml

@@ -21,6 +21,18 @@
                             dc_column_info a
                         WHERE
                             a.is_deleted = 'N'
+                        <if test="getTableColumnNameVO.tableCname != null and getTableColumnNameVO.tableCname != ''">
+                            AND a.table_cname LIKE CONCAT('%',#{getTableColumnNameVO.tableCname},'%')
+                        </if>
+                        <if test="getTableColumnNameVO.tableEname != null and getTableColumnNameVO.tableEname != ''">
+                            AND a.table_ename LIKE CONCAT('%',#{getTableColumnNameVO.tableEname},'%')
+                        </if>
+                        <if test="getTableColumnNameVO.columnCname != null and getTableColumnNameVO.columnCname != ''">
+                            AND a.column_cname LIKE CONCAT('%',#{getTableColumnNameVO.columnCname},'%')
+                        </if>
+                        <if test="getTableColumnNameVO.columnEname != null and getTableColumnNameVO.columnEname != ''">
+                            AND a.column_ename LIKE CONCAT('%',#{getTableColumnNameVO.columnEname},'%')
+                        </if>
                     ) a
                 LEFT JOIN dc_column_verify b ON a.id = b.column_id
                 GROUP BY
@@ -29,4 +41,27 @@
         WHERE
             a.column_id IS NULL
     </select>
+
+
+    <select id="getVerifyTableName" resultType="com.lantone.daqe.dto.GetTableNameDTO">
+        SELECT
+            a.table_ename,
+            a.table_cname
+        FROM
+            dc_column_info a,
+            dc_column_verify b
+        WHERE
+            b.column_id=a.id
+            and a.is_deleted='N'
+            and b.is_deleted='N'
+            <if test="getTableNameVO.tableCname != null and getTableNameVO.tableCname != ''">
+                AND a.table_cname LIKE CONCAT('%',#{getTableNameVO.tableCname},'%')
+            </if>
+            <if test="getTableNameVO.tableEname != null and getTableNameVO.tableEname != ''">
+                AND a.table_ename LIKE CONCAT('%',#{getTableNameVO.tableEname},'%')
+            </if>
+            GROUP BY
+            table_cname,
+            table_ename
+    </select>
 </mapper>

+ 50 - 43
daqe-center/src/main/resources/mapper/ColumnResultMapper.xml

@@ -3,52 +3,59 @@
 <mapper namespace="com.lantone.daqe.mapper.ColumnResultMapper">
 
     <select id="getColumnResultNumber" resultType="com.lantone.daqe.dto.GetColumnResultNumberDTO">
-		SELECT
-		sum(CASE dcr.is_solved WHEN 1 THEN 1 ELSE 0 END) resolved,
-		sum(CASE dcr.is_solved WHEN 0 THEN 1 ELSE 0 END) notSolved,
-		sum(CASE dcr.is_solved WHEN 1 THEN (CASE dcr.type WHEN 1 THEN 1 ELSE 0 END) ELSE 0 END) resolvedNonnull,
-		sum(CASE dcr.is_solved WHEN 1 THEN (CASE dcr.type WHEN 2 THEN 1 ELSE 0 END) ELSE 0 END) resolvedStandardvalue,
-		sum(CASE dcr.is_solved WHEN 1 THEN (CASE dcr.type WHEN 3 THEN 1 ELSE 0 END) ELSE 0 END) resolvedRegular,
-		sum(CASE dcr.is_solved WHEN 0 THEN (CASE dcr.type WHEN 1 THEN 1 ELSE 0 END) ELSE 0 END) notSolvedNonnull,
-		sum(CASE dcr.is_solved WHEN 0 THEN (CASE dcr.type WHEN 2 THEN 1 ELSE 0 END) ELSE 0 END) notSolvedStandardvalue,
-		sum(CASE dcr.is_solved WHEN 0 THEN (CASE dcr.type WHEN 3 THEN 1 ELSE 0 END) ELSE 0 END) notSolvedRegular
-		FROM
-			dc_column_result dcr
-		WHERE
-			dcr.is_deleted = 'N'
-		and hospital_id=#{getColumnResultNumberVO.hospitalId}
-		<if test="getColumnResultNumberVO.solveTimeStart != null ">
-			<![CDATA[ AND solve_time >= #{getColumnResultNumberVO.solveTimeStart}]]>
-		</if>
-		<if test="getColumnResultNumberVO.solveTimeEnd != null ">
-			<![CDATA[ AND solve_time <= #{getColumnResultNumberVO.solveTimeEnd}]]>
-		</if>
+        SELECT
+        sum(CASE dcr.is_solved WHEN 1 THEN 1 ELSE 0 END) resolved,
+        sum(CASE dcr.is_solved WHEN 0 THEN 1 ELSE 0 END) notSolved,
+        sum(CASE dcr.is_solved WHEN 1 THEN (CASE dcr.type WHEN 1 THEN 1 ELSE 0 END) ELSE 0 END) resolvedNonnull,
+        sum(CASE dcr.is_solved WHEN 1 THEN (CASE dcr.type WHEN 2 THEN 1 ELSE 0 END) ELSE 0 END) resolvedStandardvalue,
+        sum(CASE dcr.is_solved WHEN 1 THEN (CASE dcr.type WHEN 3 THEN 1 ELSE 0 END) ELSE 0 END) resolvedRegular,
+        sum(CASE dcr.is_solved WHEN 0 THEN (CASE dcr.type WHEN 1 THEN 1 ELSE 0 END) ELSE 0 END) notSolvedNonnull,
+        sum(CASE dcr.is_solved WHEN 0 THEN (CASE dcr.type WHEN 2 THEN 1 ELSE 0 END) ELSE 0 END) notSolvedStandardvalue,
+        sum(CASE dcr.is_solved WHEN 0 THEN (CASE dcr.type WHEN 3 THEN 1 ELSE 0 END) ELSE 0 END) notSolvedRegular
+        FROM
+        dc_column_result dcr
+        WHERE
+        dcr.is_deleted = 'N'
+        and hospital_id=#{getColumnResultNumberVO.hospitalId}
+        <if test="getColumnResultNumberVO.behospitalStartDate != null ">
+            <![CDATA[ AND behospital_date >= #{getColumnResultNumberVO.behospitalStartDate}]]>
+        </if>
+        <if test="getColumnResultNumberVO.behospitalEndDate != null ">
+            <![CDATA[ AND behospital_date <= #{getColumnResultNumberVO.behospitalEndDate}]]>
+        </if>
 
     </select>
 
 
-    <select id="getTableColumnVal" resultType="com.lantone.daqe.dto.GetTableColumnInfoDTO">
-		SELECT
-			a.behospital_code,
-			a.hospital_id,
-			sdd.id tableId,
-			sdd.${getTableColumnInfoVO.columnEname} val,
-			sdd.${getTableColumnInfoVO.numberColumnCname} numberId
-		FROM
-			(
-				SELECT
-					behospital_code,
-					hospital_id
-				FROM
-					med_behospital_info
-				WHERE
-					behospital_code = #{getTableColumnInfoVO.behospitalCode}
-				AND is_deleted = 'N'
-				AND hospital_id = #{getTableColumnInfoVO.hospitalId}
-				AND is_placefile = #{getTableColumnInfoVO.isPlacefile}
-			) a
-		LEFT JOIN ${getTableColumnInfoVO.tableEname} sdd ON sdd.behospital_code = a.behospital_code
-		AND sdd.is_deleted = 'N'
-		AND a.hospital_id = sdd.hospital_id
+    <select id="getSpecialTableColumnVal" resultType="com.lantone.daqe.dto.GetTableColumnInfoDTO">
+        SELECT
+        a.behospital_code,
+        a.hospital_id,
+        sdd.id tableId,
+        a.behospital_date,
+        sdd.${getTableColumnInfoVO.columnEname} val,
+        sdd.${getTableColumnInfoVO.numberColumnCname} numberId
+        FROM
+        (
+        SELECT
+        behospital_code,
+        hospital_id,
+        behospital_date
+        FROM
+        med_behospital_info
+        WHERE
+        is_deleted = 'N'
+        <if test="getTableColumnInfoVO.hospitalId != null and getTableColumnInfoVO.hospitalId != ''">
+        AND hospital_id = #{getTableColumnInfoVO.hospitalId}
+        </if>
+        AND behospital_code in
+        <foreach collection="getTableColumnInfoVO.behospitalCodeList" item="behospitalCode" open="(" separator=","
+                 close=")">
+            #{behospitalCode}
+        </foreach>
+        ) a
+        LEFT JOIN ${getTableColumnInfoVO.tableEname} sdd ON sdd.behospital_code = a.behospital_code
+        AND sdd.is_deleted = 'N'
+        AND a.hospital_id = sdd.hospital_id
     </select>
 </mapper>

+ 3 - 1
daqe-center/src/main/resources/mapper/ColumnVerifyMapper.xml

@@ -13,7 +13,8 @@
         GROUP_CONCAT(a.isRequired SEPARATOR ';') isRequired,
         GROUP_CONCAT(a.standardvalue SEPARATOR ';') standardvalue,
         GROUP_CONCAT(a.regular SEPARATOR ';') regular,
-        a.description
+        a.description,
+        a.gmt_create
         FROM
         (
         SELECT
@@ -24,6 +25,7 @@
         dcv.column_ename,
         dcv.type,
         dcv.description,
+        dcv.gmt_create,
         CASE dcv.type WHEN 1 THEN dcv.verify_val ELSE NULL END isRequired,
         CASE dcv.type WHEN 2 THEN dcv.verify_val ELSE NULL END standardvalue,
         CASE dcv.type WHEN 3 THEN dcv.verify_val ELSE NULL END regular

+ 1 - 0
daqe-center/src/main/resources/mapper/RegularMappingMapper.xml

@@ -7,6 +7,7 @@
         SELECT
         a.column_id,
         a.regular_id id,
+        a.gmt_modified,
         b.`name`,
         b.val,
         b.description des

+ 1 - 0
daqe-center/src/main/resources/mapper/StandardvalueInfoMapper.xml

@@ -5,6 +5,7 @@
     <select id="getStandardvalueInfo" resultType="com.lantone.daqe.dto.GetStandardvalueInfoDTO">
         SELECT
             a.column_id,
+            a.gmt_modified,
             GROUP_CONCAT(a.val SEPARATOR ';') standardvalue
         FROM
             dc_standardvalue_info a

+ 103 - 0
daqe-center/src/main/resources/upgrade/V3__daqe_init_addtable.sql

@@ -0,0 +1,103 @@
+-- ----------------------------
+-- 1.新增入院记录结构化表
+-- ----------------------------
+DROP TABLE IF EXISTS `str_admission_note`;
+CREATE TABLE `str_admission_note` (
+  `rec_id` varchar(100) NOT NULL COMMENT '记录编号',
+  `hospital_id` bigint(20) NOT NULL COMMENT '医院ID',
+  `behospital_code` varchar(50) NOT NULL COMMENT '病历号',
+  `name` varchar(32) DEFAULT NULL COMMENT '姓名',
+  `sex` varchar(2) DEFAULT NULL COMMENT '性别',
+  `age` varchar(32) DEFAULT NULL COMMENT '年龄',
+  `bed_no` varchar(50) DEFAULT NULL COMMENT '床号',
+  `dept_name` varchar(50) DEFAULT NULL COMMENT '科别',
+  `record_date` datetime DEFAULT NULL COMMENT '病历日期',
+  `birthday` datetime DEFAULT NULL COMMENT '出生日期',
+  `marriage` varchar(16) DEFAULT NULL COMMENT '婚姻状况',
+  `job_type` varchar(32) DEFAULT NULL COMMENT '职业',
+  `nation` varchar(32) DEFAULT NULL COMMENT '民族',
+  `phone` varchar(32) DEFAULT NULL COMMENT '联系电话',
+  `workplace` varchar(256) DEFAULT NULL COMMENT '工作单位',
+  `register_address` varchar(256) DEFAULT NULL COMMENT '户口地址',
+  `born_address` varchar(256) DEFAULT NULL COMMENT '出生地',
+  `expect_date` varchar(100) DEFAULT NULL COMMENT '预产期',
+  `last_menstrual` varchar(100) DEFAULT NULL COMMENT '末次月经',
+  `pregnant_num` varchar(100) DEFAULT NULL COMMENT '孕/产次',
+  `behospital_date` datetime DEFAULT NULL COMMENT '入院日期',
+  `history_teller` varchar(64) DEFAULT NULL COMMENT '病史陈述者',
+  `chief` varchar(2500) DEFAULT NULL COMMENT '主诉',
+  `present` text COMMENT '现病史',
+  `past_history` text COMMENT '既往史',
+  `personal_history` text COMMENT '个人史',
+  `marital_history` text COMMENT '婚育史',
+  `menstrual_history` text COMMENT '月经史',
+  `family_history` text COMMENT '家族史',
+  `feeding_history` text COMMENT '喂养史',
+  `operation_history` text COMMENT '手术外伤史',
+  `blood_history` text COMMENT '输血史',
+  `infection_history` text COMMENT '传染病史',
+  `special_vital` text COMMENT '专科检查',
+  `assistant_exam` text COMMENT '辅助检查',
+  `lis_exam` text COMMENT '实验室检查',
+  `pacs_exam` text COMMENT '影像学检查',
+  `tentative_diagnosis` varchar(1000) DEFAULT NULL COMMENT '初步诊断',
+  `supply_diagnosis` varchar(1000) DEFAULT NULL COMMENT '补充诊断',
+  `revised_diagnosis` varchar(1000) DEFAULT NULL COMMENT '修正诊断',
+  `rec_doctor` varchar(32) DEFAULT NULL COMMENT '记录医生',
+  `rec_date` datetime DEFAULT NULL COMMENT '记录时间',
+  `audit_doctor` varchar(32) DEFAULT NULL COMMENT '审核医生',
+  `audit_date` datetime DEFAULT NULL COMMENT '审核时间',
+  `temperature` varchar(100) DEFAULT NULL COMMENT '体温',
+  `pulse` varchar(100) DEFAULT NULL COMMENT '脉搏',
+  `breathe` varchar(100) DEFAULT NULL COMMENT '呼吸',
+  `blood_pressure` varchar(100) DEFAULT NULL COMMENT '血压',
+  `pain` varchar(255) DEFAULT NULL COMMENT '疼痛',
+  `weight` varchar(100) DEFAULT NULL COMMENT '体重',
+  `height` varchar(100) DEFAULT NULL COMMENT '身高',
+  `bmi` varchar(100) DEFAULT NULL COMMENT 'BMI',
+  `whole_data` longtext COMMENT '结构化数据',
+  `remark` varchar(1024) DEFAULT NULL COMMENT '备注',
+  `is_deleted` varchar(3) DEFAULT 'N' COMMENT '是否删除',
+  `gmt_create` datetime DEFAULT NULL COMMENT '记录创建时间',
+  `gmt_modified` datetime DEFAULT NULL COMMENT '记录修改时间',
+  `creator` varchar(60) DEFAULT NULL COMMENT '创建人',
+  `modifier` varchar(60) DEFAULT NULL COMMENT '修改人',
+  PRIMARY KEY (`rec_id`,`hospital_id`,`behospital_code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='入院记录';
+-- ----------------------------
+-- 1.新增出院小结结构化表
+-- ----------------------------
+DROP TABLE IF EXISTS `str_leave_hospital`;
+CREATE TABLE `str_leave_hospital` (
+  `rec_id` varchar(32) NOT NULL COMMENT '记录编号',
+  `hospital_id` bigint(20) NOT NULL COMMENT '医院ID',
+  `behospital_code` varchar(50) DEFAULT NULL COMMENT '病历号',
+  `name` varchar(100) DEFAULT NULL COMMENT '姓名',
+  `sex` varchar(2) DEFAULT NULL COMMENT '性别',
+  `age` varchar(32) DEFAULT NULL COMMENT '年龄',
+  `bed_no` varchar(32) DEFAULT NULL COMMENT '床号',
+  `dept_name` varchar(32) DEFAULT NULL COMMENT '科别',
+  `record_date` datetime DEFAULT NULL COMMENT '病历日期',
+  `behospital_date` datetime DEFAULT NULL COMMENT '入院日期',
+  `leave_hospital_date` datetime DEFAULT NULL COMMENT '出院日期',
+  `tentative_diagnosis` varchar(1000) DEFAULT NULL COMMENT '入院诊断',
+  `leave_diagnosis` varchar(1500) DEFAULT NULL COMMENT '出院诊断',
+  `behospital_day_num` varchar(8) DEFAULT NULL COMMENT '住院天数',
+  `behospital_reason` text COMMENT '入院原因',
+  `behospital_situation` text COMMENT '入院情况',
+  `treatment_process` text COMMENT '诊治经过',
+  `leave_hospital_situation` text COMMENT '出院情况',
+  `leave_hospital_doctoradvice` text COMMENT '出院医嘱',
+  `rec_doctor` varchar(100) DEFAULT NULL COMMENT '记录医生',
+  `rec_date` datetime DEFAULT NULL COMMENT '记录时间',
+  `audit_doctor` varchar(32) DEFAULT NULL COMMENT '审核医生',
+  `audit_date` datetime DEFAULT NULL COMMENT '审核时间',
+  `whole_data` longtext COMMENT '结构化数据',
+  `remark` varchar(1024) DEFAULT NULL COMMENT '备注',
+  `is_deleted` varchar(3) DEFAULT 'N' COMMENT '是否删除',
+  `gmt_create` datetime DEFAULT NULL COMMENT '记录创建时间',
+  `gmt_modified` datetime DEFAULT NULL COMMENT '记录修改时间',
+  `creator` varchar(60) DEFAULT NULL COMMENT '创建人',
+  `modifier` varchar(60) DEFAULT NULL COMMENT '修改人',
+  PRIMARY KEY (`rec_id`,`hospital_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='出院小结';

+ 8 - 1
gateway-service/src/main/resources/bootstrap.yml

@@ -51,6 +51,12 @@ spring:
             - Path=/daqe-center/**
           filters:
             - StripPrefix=1
+        - id: mdsp-service
+          uri: lb://mdsp-service
+          predicates:
+            - Path=/mdsp-service/**
+          filters:
+            - StripPrefix=1
     config:
       discovery:
         enabled: true
@@ -123,4 +129,5 @@ secure:
       - "/report-service/medAppealInfoManage/getAppealMode"
       - "/daqe-center/**"
       - "/security-center/logManage/getOperationLogs"
-      - "/security-center/logManage/getOperationLogNum"
+      - "/security-center/logManage/getOperationLogNum"
+      - "/mdsp-service/**"

+ 33 - 0
mdsp-service/.gitignore

@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/

+ 79 - 0
mdsp-service/pom.xml

@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>com.lantone</groupId>
+        <artifactId>emrais</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>mdsp-service</artifactId>
+    <name>mdsp-service</name>
+    <packaging>jar</packaging>
+    <description>公司内部质控业务外其他数据源简易交互集中处理服务</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.diagbot</groupId>
+            <artifactId>common</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.lantone</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <version>${dynamic-datasource-spring-boot-starter.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.github.openfeign</groupId>
+            <artifactId>feign-okhttp</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-spring-boot-starter</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 19 - 0
mdsp-service/src/main/java/com/lantone/MdspServiceApplication.java

@@ -0,0 +1,19 @@
+package com.lantone;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+@EnableEurekaClient
+@EnableFeignClients
+@SpringBootApplication
+@MapperScan(basePackages = "com.lantone.mapper")
+public class MdspServiceApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(MdspServiceApplication.class, args);
+    }
+
+}

+ 57 - 0
mdsp-service/src/main/java/com/lantone/client/CdssCoreClient.java

@@ -0,0 +1,57 @@
+package com.lantone.client;
+
+import com.diagbot.dto.RespDTO;
+import com.lantone.dto.med.IndexBatchDTO;
+import com.lantone.dto.med.KllisDetailDTO;
+import com.lantone.vo.med.ConceptVO;
+import com.lantone.vo.med.FilterVO;
+import com.lantone.vo.med.IndexByApprovalVO;
+import com.lantone.vo.med.KllisDetailVO;
+
+import java.util.List;
+import java.util.Map;
+
+//import com.lantone.dto.ConceptScaleDTO;
+
+/**
+ * @Description: CDSS核心类客户端
+ * @author: gaodm
+ * @time: 2020/7/28 9:29
+ */
+public interface CdssCoreClient {
+
+    /**
+     * 国药准字匹配
+     *
+     * @param indexByApprovalVO
+     * @return
+     */
+    RespDTO<List<IndexBatchDTO>> indexByApproval(IndexByApprovalVO indexByApprovalVO);
+
+
+    /**
+     * 术语关联医学术语检索
+     *
+     * @param filterVO
+     * @return
+     */
+    RespDTO<List<IndexBatchDTO>> filter(FilterVO filterVO);
+
+    /**
+     * 术语批量校验
+     *
+     * @param conceptVO
+     * @return
+     */
+    RespDTO<List<IndexBatchDTO>> getConceptNames(ConceptVO conceptVO);
+
+
+    /**
+     * 化验小项术语批量查询获取范围
+     *
+     * @param kllisDetailVO
+     * @return
+     */
+    RespDTO<Map<String, KllisDetailDTO>> getLisDetaisByNames(KllisDetailVO kllisDetailVO);
+
+}

+ 83 - 0
mdsp-service/src/main/java/com/lantone/client/hystrix/CdssCoreHystrix.java

@@ -0,0 +1,83 @@
+package com.lantone.client.hystrix;
+
+import com.diagbot.dto.RespDTO;
+import com.lantone.client.CdssCoreClient;
+import com.lantone.dto.med.IndexBatchDTO;
+import com.lantone.dto.med.KllisDetailDTO;
+import com.lantone.facade.med.KlConceptFacade;
+import com.lantone.vo.med.ConceptVO;
+import com.lantone.vo.med.FilterVO;
+import com.lantone.vo.med.IndexByApprovalVO;
+import com.lantone.vo.med.KllisDetailVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+//import com.lantone.dto.ConceptScaleDTO;
+
+/**
+ * @Description: 病历质控客户端(请求失败熔断)
+ * @author: gaodm
+ * @time: 2020/7/28 9:29
+ */
+@Component
+@Slf4j
+public class CdssCoreHystrix implements CdssCoreClient {
+
+
+    @Autowired
+    private KlConceptFacade klConceptFacade;
+
+    /**
+     * 国药准字匹配
+     *
+     * @param indexByApprovalVO
+     * @return
+     */
+    @Override
+    public RespDTO<List<IndexBatchDTO>> indexByApproval(IndexByApprovalVO indexByApprovalVO) {
+        List<com.lantone.dto.med.IndexBatchDTO> data = klConceptFacade.indexByApproval(indexByApprovalVO);
+        return RespDTO.onSuc(data);
+    }
+
+
+    /**
+     * 术语关联医学术语检索
+     *
+     * @param filterVO
+     * @return
+     */
+    @Override
+    public RespDTO<List<IndexBatchDTO>> filter(FilterVO filterVO) {
+        List<com.lantone.dto.med.IndexBatchDTO> data = klConceptFacade.filter(filterVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 术语批量校验
+     *
+     * @param conceptVO
+     * @return
+     */
+    @Override
+    public RespDTO<List<IndexBatchDTO>> getConceptNames(ConceptVO conceptVO) {
+        List<com.lantone.dto.med.IndexBatchDTO> data = klConceptFacade.getConceptNames(conceptVO);
+        return RespDTO.onSuc(data);
+    }
+
+    /**
+     * 化验小项术语批量查询获取范围
+     *
+     * @param kllisDetailVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, KllisDetailDTO>> getLisDetaisByNames(KllisDetailVO kllisDetailVO) {
+        return RespDTO.onSuc(klConceptFacade.getLisDetaisByNamesFac(kllisDetailVO));
+    }
+
+
+}

+ 31 - 0
mdsp-service/src/main/java/com/lantone/config/DruidConfig.java

@@ -0,0 +1,31 @@
+package com.lantone.config;
+
+import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2020/4/8 21:41
+ */
+@EnableTransactionManagement
+@Configuration
+public class DruidConfig {
+
+    /**
+     * mybatis-plus分页插件<br>
+     * 文档:http://mp.baomidou.com<br>
+     */
+    @Bean
+    public PaginationInterceptor paginationInterceptor() {
+        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
+        // 设置请求的页面大于最大页后操作,true调回到首页,false继续请求,默认false
+        //paginationInterceptor.setOverflow(false);
+        // 设置最大单页限制数量,默认500条,-1不受限制
+        paginationInterceptor.setLimit(-1L);
+        return paginationInterceptor;
+    }
+
+}

+ 14 - 0
mdsp-service/src/main/java/com/lantone/config/JasyptConfig.java

@@ -0,0 +1,14 @@
+package com.lantone.config;
+
+import com.lantone.common.config.BaseJasyptConfig;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description: Jasypt相关配置
+ * @author: rengb
+ * @time: 2021/7/21 11:15
+ */
+@Configuration
+public class JasyptConfig extends BaseJasyptConfig {
+
+}

+ 13 - 0
mdsp-service/src/main/java/com/lantone/config/RedisConfig.java

@@ -0,0 +1,13 @@
+package com.lantone.config;
+
+import com.lantone.common.config.BaseRedisConfig;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Redis相关配置
+ * Created by macro on 2020/6/19.
+ */
+@Configuration
+public class RedisConfig extends BaseRedisConfig {
+
+}

+ 16 - 0
mdsp-service/src/main/java/com/lantone/config/SwaggerConfig.java

@@ -0,0 +1,16 @@
+package com.lantone.config;
+
+import com.lantone.common.config.BaseSwaggerConfig;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * @Description: Swagger相关配置
+ * @author: rengb
+ * @time: 2021/1/5 18:27
+ */
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig extends BaseSwaggerConfig {
+
+}

+ 48 - 0
mdsp-service/src/main/java/com/lantone/dto/cdss/DictionaryInfoDTO.java

@@ -0,0 +1,48 @@
+package com.lantone.dto.cdss;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * icss字典表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2018-12-25
+ */
+@Getter
+@Setter
+public class DictionaryInfoDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 分组(值自定义)
+     */
+    private Long groupType;
+
+    /**
+     * 内容
+     */
+    private String name;
+
+    /**
+     * 值
+     */
+    private String val;
+
+
+    /**
+     * 排序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 32 - 0
mdsp-service/src/main/java/com/lantone/dto/cdss/IndexBatchDTO.java

@@ -0,0 +1,32 @@
+package com.lantone.dto.cdss;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/6/7 10:27
+ */
+@Getter
+@Setter
+public class IndexBatchDTO {
+    private Long id;
+    private Integer status;
+    private String name;
+    private String code;
+    private String synonyms;
+    private Integer type;
+    /**
+     * 国药准字
+     */
+    private String approval;
+    /**
+     * 药品剂型
+     */
+    private String form;
+    /**
+     * 药品剂型id
+     */
+    private Long formConceptId;
+}

+ 38 - 0
mdsp-service/src/main/java/com/lantone/dto/cdss/KllisDetailDTO.java

@@ -0,0 +1,38 @@
+package com.lantone.dto.cdss;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/4/16 14:34
+ */
+@Getter
+@Setter
+public class KllisDetailDTO {
+    /**
+     * 名称
+     */
+    private String libName;
+    /**
+     * 编号
+     */
+    private Long id;
+    /**
+     * 下限
+     */
+    private Double minValue;
+    /**
+     * 上限
+     */
+    private Double maxValue;
+    /**
+     * 单位
+     */
+    private String unit;
+    /**
+     * 参考范围:0-范围内,1-范围外
+     */
+    private Integer type;
+}

+ 51 - 0
mdsp-service/src/main/java/com/lantone/dto/cdss/LisDetailDTO.java

@@ -0,0 +1,51 @@
+package com.lantone.dto.cdss;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/8/12 15:53
+ */
+@Getter
+@Setter
+public class LisDetailDTO {
+    private Long id;
+    /**
+     * 大项(套餐)
+     */
+    private String name;
+    /**
+     * 小项(公表名)
+     */
+    private String uniqueName;
+    /**
+     * 数值
+     */
+    private Double value;
+    /**
+     * 单位
+     */
+    private String units;
+    /**
+     * 下限
+     */
+    private Double minValue;
+    /**
+     * 上限
+     */
+    private Double maxValue;
+    /**
+     * 非数值结果
+     */
+    private String otherValue;
+    /**
+     * 非数值类型参考值
+     */
+    private String referenceValue;
+    /**
+     * 参考范围:0-范围内,1-范围外
+     */
+    private Integer range;
+}

+ 32 - 0
mdsp-service/src/main/java/com/lantone/dto/med/IndexBatchDTO.java

@@ -0,0 +1,32 @@
+package com.lantone.dto.med;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/6/7 10:27
+ */
+@Getter
+@Setter
+public class IndexBatchDTO {
+    private Long id;
+    private Integer status;
+    private String name;
+    private String code;
+    private String synonyms;
+    private Integer type;
+    /**
+     * 国药准字
+     */
+    private String approval;
+    /**
+     * 药品剂型
+     */
+    private String form;
+    /**
+     * 药品剂型id
+     */
+    private Long formConceptId;
+}

+ 38 - 0
mdsp-service/src/main/java/com/lantone/dto/med/KllisDetailDTO.java

@@ -0,0 +1,38 @@
+package com.lantone.dto.med;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/4/16 14:34
+ */
+@Getter
+@Setter
+public class KllisDetailDTO {
+    /**
+     * 名称
+     */
+    private String libName;
+    /**
+     * 编号
+     */
+    private Long id;
+    /**
+     * 下限
+     */
+    private Double minValue;
+    /**
+     * 上限
+     */
+    private Double maxValue;
+    /**
+     * 单位
+     */
+    private String unit;
+    /**
+     * 参考范围:0-范围内,1-范围外
+     */
+    private Integer type;
+}

+ 45 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/AdministrationRouteConfig.java

@@ -0,0 +1,45 @@
+package com.lantone.entity.cdss;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/10/26 13:39
+ */
+@Data
+public class AdministrationRouteConfig {
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 医院科室名称
+     */
+    @Excel(name = "医院给药途径名称", width = 40, orderNum = "1", isImportField = "true")
+    @NotBlank(message = "请输入医院给药途径名称")
+    private String hisName;
+
+    /**
+     * 标准科室名称
+     */
+    @Excel(name = "标准给药途径名称", width = 40, orderNum = "2", isImportField = "true")
+    @NotBlank(message = "请输入标准给药途径名称")
+    private String uniqueName;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
+    private Integer source;
+}

+ 47 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/AnesthesiaConfig.java

@@ -0,0 +1,47 @@
+package com.lantone.entity.cdss;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/6/10 19:16
+ */
+@Data
+public class AnesthesiaConfig {
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 医院科室名称
+     */
+    @Excel(name = "医院麻醉名称", width = 40, orderNum = "1", isImportField = "true")
+    @NotBlank(message = "请输入医院麻醉名称")
+    private String hisName;
+
+    /**
+     * 标准科室名称
+     */
+    @Excel(name = "标准麻醉名称", width = 40, orderNum = "2", isImportField = "true")
+    @NotBlank(message = "请输入标准麻醉名称")
+    private String uniqueName;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
+    private Integer source;
+}

+ 143 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/DeptConfig.java

@@ -0,0 +1,143 @@
+package com.lantone.entity.cdss;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.util.StringUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 科室映射表
+ * </p>
+ *
+ * @author zhaops
+ * @since 2020-08-12
+ */
+@Getter
+@Setter
+public class DeptConfig {
+    /**
+     * 主键
+     */
+    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 hospitalId;
+
+    /**
+     * 医院科室名称
+     */
+    @Excel(name = "医院科室名称", width = 40, orderNum = "2", isImportField = "true")
+    @NotBlank(message = "请输入医院科室名称")
+    private String hisName;
+
+    /**
+     * 医院科室编码
+     */
+    @Excel(name = "医院科室编码", width = 40, orderNum = "1", isImportField = "true")
+    private String hisCode;
+
+    /**
+     * 标准科室名称
+     */
+    @Excel(name = "标准科室名称", width = 40, orderNum = "4", isImportField = "true")
+    @NotBlank(message = "请输入标准科室名称")
+    private String uniqueName;
+
+    /**
+     * 对应项编码
+     */
+    private String code;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
+    private Integer source;
+
+    @Override
+    public String toString() {
+        return "DeptConfig{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", hospitalId=" + hospitalId +
+                ", hisName=" + hisName +
+                ", hisCode=" + hisCode +
+                ", uniqueName=" + uniqueName +
+                ", code=" + code +
+                "}";
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        DeptConfig deptConfig = (DeptConfig) o;
+        return Objects.equals(id, deptConfig.id)
+                && Objects.equals(isDeleted, deptConfig.isDeleted)
+                && Objects.equals(hospitalId, deptConfig.hospitalId)
+                && Objects.equals(hisName, deptConfig.hisName)
+                && Objects.equals(hisCode, deptConfig.hisCode)
+                && Objects.equals(uniqueName, deptConfig.uniqueName)
+                && Objects.equals(code, deptConfig.code);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, isDeleted, hospitalId, hisName, hisCode, uniqueName, code);
+    }
+
+    public static boolean nonNull(DeptConfig o) {
+        return !(o == null
+                || (o.hospitalId == null
+                && StringUtil.isBlank(o.hisName)
+                && StringUtil.isBlank(o.hisCode)
+                && StringUtil.isBlank(o.uniqueName)
+                && StringUtil.isBlank(o.code)));
+    }
+}

+ 88 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/DictionaryInfo.java

@@ -0,0 +1,88 @@
+package com.lantone.entity.cdss;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * CDSS字典表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2018-12-25
+ */
+@TableName("sys_dictionary_info")
+@Getter
+@Setter
+public class DictionaryInfo 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 Long groupType;
+
+    /**
+     * 内容
+     */
+    private String name;
+
+    /**
+     * 值
+     */
+    private String val;
+
+    /**
+     * 返回类型(0: 都返回,1:后台维护返回 2:icss界面返回)
+     */
+    private Integer returnType;
+
+    /**
+     * 排序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 137 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/DiseaseConfig.java

@@ -0,0 +1,137 @@
+package com.lantone.entity.cdss;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.util.StringUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 诊断映射表
+ * </p>
+ *
+ * @author zhaops
+ * @since 2020-07-28
+ */
+@Getter
+@Setter
+public class DiseaseConfig {
+    /**
+     * 主键
+     */
+    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 hospitalId;
+
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "医院诊断名称", width = 40, orderNum = "1", isImportField = "true")
+    @NotBlank(message = "请输入医院诊断名称")
+    private String hisName;
+
+    /**
+     * 标准诊断名称
+     */
+    @Excel(name = "标准诊断名称", width = 40, orderNum = "3", isImportField = "true")
+    @NotBlank(message = "请输入标准诊断名称")
+    private String uniqueName;
+
+    /**
+     * ICD-10编码
+     */
+    @Excel(name = "ICD-10编码", width = 40, orderNum = "2", isImportField = "true")
+    private String code;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null"}, isImportField = "true")
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
+    private Integer source;
+
+    @Override
+    public String toString() {
+        return "DiseaseConfig{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", hospitalId=" + hospitalId +
+                ", hisName=" + hisName +
+                ", uniqueName=" + uniqueName +
+                ", code=" + code +
+                ", isMatch=" + isMatch +
+                ", source=" + source +
+                "}";
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        DiseaseConfig diseaseConfig = (DiseaseConfig) o;
+        return Objects.equals(id, diseaseConfig.id)
+                && Objects.equals(isDeleted, diseaseConfig.isDeleted)
+                && Objects.equals(hospitalId, diseaseConfig.hospitalId)
+                && Objects.equals(hisName, diseaseConfig.hisName)
+                && Objects.equals(uniqueName, diseaseConfig.uniqueName)
+                && Objects.equals(code, diseaseConfig.code);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, isDeleted, hospitalId, hisName, uniqueName, code);
+    }
+
+    public static boolean nonNull(DiseaseConfig o) {
+        return !(o == null
+                || (o.hospitalId == null
+                && StringUtil.isBlank(o.hisName)
+                && StringUtil.isBlank(o.uniqueName)
+                && StringUtil.isBlank(o.code)));
+    }
+}

+ 93 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/DrugConfig.java

@@ -0,0 +1,93 @@
+package com.lantone.entity.cdss;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+
+/**
+ * <p>
+ * 药品映射表
+ * </p>
+ *
+ * @author zhaops
+ * @since 2020-07-28
+ */
+@Data
+public class DrugConfig {
+    /**
+     * 主键
+     */
+    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 hospitalId;
+
+    /**
+     * 医院药品名称
+     */
+    @Excel(name = "医院药品名称", width = 40, orderNum = "1", isImportField = "true")
+    @NotBlank(message = "请输入医院药品名称")
+    private String hisName;
+
+    /**
+     * 标准药品名称
+     */
+    @Excel(name = "标准药品名称", width = 40, orderNum = "2", isImportField = "true")
+    @NotBlank(message = "请输入标准药品名称")
+    private String uniqueName;
+
+    /**
+     * 标准编码
+     */
+    private String code;
+
+    /**
+     * 剂型
+     */
+    @Excel(name = "药品剂型", width = 60, orderNum = "3", isImportField = "true")
+    private String form;
+
+    @Excel(name = "国药准字", width = 40, orderNum = "4", isImportField = "true")
+    private String approval;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "5", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词、国药准字】", width = 20, orderNum = "6", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "国药准字_6", "数据迁移_99", "_null" }, isImportField = "true")
+    private Integer source;
+}

+ 147 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/LisConfig.java

@@ -0,0 +1,147 @@
+package com.lantone.entity.cdss;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.diagbot.util.StringUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 化验公表映射
+ * </p>
+ *
+ * @author zhaops
+ * @since 2020-07-28
+ */
+@Getter
+@Setter
+public class LisConfig {
+    /**
+     * 主键
+     */
+    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 hospitalId;
+
+    /**
+     * 检验套餐
+     */
+    @Excel(name = "检验套餐", width = 40, orderNum = "1", isImportField = "true")
+    @NotBlank(message = "请输入检验套餐")
+    private String hisName;
+
+    /**
+     * 检验细项
+     */
+    @Excel(name = "检验细项", width = 40, orderNum = "2", isImportField = "true")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String hisDetailName;
+
+    /**
+     * 标准检验项目
+     */
+    @Excel(name = "标准检验项目", width = 40, orderNum = "4", isImportField = "true")
+    @NotBlank(message = "请输入标准检验项目")
+    private String uniqueName;
+
+    /**
+     * 对应项目编码
+     */
+    //@Excel(name = "对应项目编码", width = 40, orderNum = "3")
+    private String code;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
+    private Integer source;
+
+    @Override
+    public String toString() {
+        return "LisConfig{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", hospitalId=" + hospitalId +
+                ", hisName=" + hisName +
+                ", hisDetailName=" + hisDetailName +
+                ", uniqueName=" + uniqueName +
+                ", code=" + code +
+                "}";
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        LisConfig lisConfig = (LisConfig) o;
+        return Objects.equals(id, lisConfig.id)
+                && Objects.equals(isDeleted, lisConfig.isDeleted)
+                && Objects.equals(hospitalId, lisConfig.hospitalId)
+                && Objects.equals(hisName, lisConfig.hisName)
+                && Objects.equals(hisDetailName, lisConfig.hisDetailName)
+                && Objects.equals(uniqueName, lisConfig.uniqueName)
+                && Objects.equals(code, lisConfig.code);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, isDeleted, hospitalId, hisName, hisDetailName, uniqueName, code);
+    }
+
+    public static boolean nonNull(LisConfig o) {
+        return !(o == null
+                || (o.hospitalId == null
+                && StringUtil.isBlank(o.hisName)
+                && StringUtil.isBlank(o.hisDetailName)
+                && StringUtil.isBlank(o.uniqueName)
+                && StringUtil.isBlank(o.code)));
+    }
+}

+ 302 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/MappingConfig.java

@@ -0,0 +1,302 @@
+package com.lantone.entity.cdss;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.diagbot.util.StringUtil;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 医学术语映射表
+ * </p>
+ *
+ * @author zhaops
+ * @since 2021-06-09
+ */
+@Data
+@TableName("tran_mapping_config")
+public class MappingConfig 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 hospitalId;
+
+    /**
+     * 医学术语类型( 1-检验套餐、2-检验细项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医疾病、13-中医证候、14-麻醉)
+     */
+    private Integer type;
+
+    /**
+     * 医院术语名称
+     */
+    private String hisName;
+
+    /**
+     * 医院术语编码
+     */
+    private String hisCode;
+
+    /**
+     * 医院术语细项名称(检验细项)
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String hisDetailName;
+
+    /**
+     * 医学标准术语id
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Long conceptId;
+
+    /**
+     * 药品剂型id
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Long formConceptId;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    private Integer source;
+
+    /**
+     * 备注
+     */
+    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 Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getHisName() {
+        return hisName;
+    }
+
+    public void setHisName(String hisName) {
+        this.hisName = hisName;
+    }
+
+    public String getHisCode() {
+        return hisCode;
+    }
+
+    public void setHisCode(String hisCode) {
+        this.hisCode = hisCode;
+    }
+
+    public String getHisDetailName() {
+        return hisDetailName;
+    }
+
+    public void setHisDetailName(String hisDetailName) {
+        this.hisDetailName = hisDetailName;
+    }
+
+    public Long getConceptId() {
+        return conceptId;
+    }
+
+    public void setConceptId(Long conceptId) {
+        this.conceptId = conceptId;
+    }
+
+    public Long getFormConceptId() {
+        return formConceptId;
+    }
+
+    public void setFormConceptId(Long formConceptId) {
+        this.formConceptId = formConceptId;
+    }
+
+    public Integer getIsMatch() {
+        return isMatch;
+    }
+
+    public void setIsMatch(Integer isMatch) {
+        this.isMatch = isMatch;
+    }
+
+    public Integer getSource() {
+        return source;
+    }
+
+    public void setSource(Integer source) {
+        this.source = source;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "MappingConfig{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", hospitalId=" + hospitalId +
+                ", type=" + type +
+                ", hisName=" + hisName +
+                ", hisCode=" + hisCode +
+                ", hisDetailName=" + hisDetailName +
+                ", conceptId=" + conceptId +
+                ", formConceptId=" + formConceptId +
+                ", isMatch=" + isMatch +
+                ", source=" + source +
+                ", remark=" + remark +
+                "}";
+    }
+
+    /*@Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        MappingConfig mappingConfig = (MappingConfig) o;
+        return Objects.equals(id, mappingConfig.id)
+                && Objects.equals(isDeleted, mappingConfig.isDeleted)
+                && Objects.equals(hospitalId, mappingConfig.hospitalId)
+                && Objects.equals(type, mappingConfig.type)
+                && Objects.equals(hisName, mappingConfig.hisName)
+                && Objects.equals(hisCode, mappingConfig.hisCode)
+                && Objects.equals(hisDetailName, mappingConfig.hisDetailName)
+                && Objects.equals(conceptId, mappingConfig.conceptId)
+                && Objects.equals(formConceptId, mappingConfig.formConceptId)
+                && Objects.equals(isMatch, mappingConfig.isMatch)
+                //&& Objects.equals(source, mappingConfig.source)
+                ;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, isDeleted, hospitalId, type, hisName, hisCode, hisDetailName, conceptId, formConceptId, isMatch);
+    }*/
+
+    public static boolean nonNull(MappingConfig o) {
+        return !(o == null
+                || (o.hospitalId == null
+                && o.type == null
+                && StringUtil.isBlank(o.hisName)
+                && StringUtil.isBlank(o.hisCode)
+                && StringUtil.isBlank(o.hisDetailName)
+                && o.conceptId == null
+                && o.formConceptId == null
+                && o.isMatch == null
+                && o.source == null));
+    }
+}

+ 134 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/NurseConfig.java

@@ -0,0 +1,134 @@
+package com.lantone.entity.cdss;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.util.StringUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 护理映射表
+ * </p>
+ *
+ * @author zhaops
+ * @since 2021-04-26
+ */
+@Getter
+@Setter
+public class NurseConfig{
+    /**
+     * 主键
+     */
+    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 hospitalId;
+
+    /**
+     * 医院项目名称
+     */
+    @Excel(name = "医院护理名称", width = 40, orderNum = "1", isImportField = "true")
+    @NotBlank(message = "请输入医院护理名称")
+    private String hisName;
+
+    /**
+     * 标准名称
+     */
+    @Excel(name = "标准护理名称", width = 40, orderNum = "3", isImportField = "true")
+    @NotBlank(message = "请输入标准护理名称")
+    private String uniqueName;
+
+    /**
+     * 标准编码
+     */
+    private String code;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
+    private Integer source;
+
+    @Override
+    public String toString() {
+        return "NurseConfig{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", hospitalId=" + hospitalId +
+                ", hisName=" + hisName +
+                ", uniqueName=" + uniqueName +
+                ", code=" + code +
+                "}";
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        NurseConfig nurseConfig = (NurseConfig) o;
+        return Objects.equals(id, nurseConfig.id)
+                && Objects.equals(isDeleted, nurseConfig.isDeleted)
+                && Objects.equals(hospitalId, nurseConfig.hospitalId)
+                && Objects.equals(hisName, nurseConfig.hisName)
+                && Objects.equals(uniqueName, nurseConfig.uniqueName)
+                && Objects.equals(code, nurseConfig.code);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, isDeleted, hospitalId, hisName, uniqueName, code);
+    }
+
+    public static boolean nonNull(NurseConfig o) {
+        return !(o == null
+                || (o.hospitalId == null
+                && StringUtil.isBlank(o.hisName)
+                && StringUtil.isBlank(o.uniqueName)
+                && StringUtil.isBlank(o.code)));
+    }
+}

+ 136 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/OperationConfig.java

@@ -0,0 +1,136 @@
+package com.lantone.entity.cdss;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.util.StringUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 手术映射表
+ * </p>
+ *
+ * @author zhaops
+ * @since 2020-07-28
+ */
+@Getter
+@Setter
+public class OperationConfig{
+    /**
+     * 主键
+     */
+    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 hospitalId;
+
+    /**
+     * 医院手术/操作名称
+     */
+    @Excel(name = "医院手术/操作名称", width = 40, orderNum = "1", isImportField = "true")
+    @NotBlank(message = "请输入医院手术/操作名称")
+    private String hisName;
+
+    /**
+     * 标准手术/操作名称
+     */
+    @Excel(name = "标准手术/操作名称", width = 40, orderNum = "3", isImportField = "true")
+    @NotBlank(message = "请输入标准手术/操作名称")
+    private String uniqueName;
+
+    /**
+     * 对应项编码
+     */
+    @Excel(name = "手术和操作代码", width = 40, orderNum = "2", isImportField = "true")
+    private String code;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
+    private Integer source;
+
+
+    @Override
+    public String toString() {
+        return "OperationConfig{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", hospitalId=" + hospitalId +
+                ", hisName=" + hisName +
+                ", uniqueName=" + uniqueName +
+                ", code=" + code +
+                "}";
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        OperationConfig operationConfig = (OperationConfig) o;
+        return Objects.equals(id, operationConfig.id)
+                && Objects.equals(isDeleted, operationConfig.isDeleted)
+                && Objects.equals(hospitalId, operationConfig.hospitalId)
+                && Objects.equals(hisName, operationConfig.hisName)
+                && Objects.equals(uniqueName, operationConfig.uniqueName)
+                && Objects.equals(code, operationConfig.code);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, isDeleted, hospitalId, hisName, uniqueName, code);
+    }
+
+    public static boolean nonNull(OperationConfig o) {
+        return !(o == null
+                || (o.hospitalId == null
+                && StringUtil.isBlank(o.hisName)
+                && StringUtil.isBlank(o.uniqueName)
+                && StringUtil.isBlank(o.code)));
+    }
+}

+ 137 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/PacsConfig.java

@@ -0,0 +1,137 @@
+package com.lantone.entity.cdss;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.util.StringUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 检查公表映射
+ * </p>
+ *
+ * @author zhaops
+ * @since 2020-07-28
+ */
+@Getter
+@Setter
+public class PacsConfig implements Serializable {
+    /**
+     * 主键
+     */
+    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 hospitalId;
+
+    /**
+     * 医院检查项目
+     */
+    @Excel(name = "医院检查项目", width = 40, orderNum = "1", isImportField = "true")
+    @NotBlank(message = "请输入医院检查项目")
+    private String hisName;
+
+    /**
+     * 标准检查项目
+     */
+    @Excel(name = "标准检查项目", width = 40, orderNum = "3", isImportField = "true")
+    @NotBlank(message = "请输入标准检查项目")
+    private String uniqueName;
+
+    /**
+     * 对应项编码
+     */
+    //@Excel(name = "对应项编码", width = 40, orderNum = "2")
+    private String code;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
+    private Integer source;
+
+
+    @Override
+    public String toString() {
+        return "PacsConfig{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", hospitalId=" + hospitalId +
+                ", hisName=" + hisName +
+                ", uniqueName=" + uniqueName +
+                ", code=" + code +
+                "}";
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        PacsConfig pacsConfig = (PacsConfig) o;
+        return Objects.equals(id, pacsConfig.id)
+                && Objects.equals(isDeleted, pacsConfig.isDeleted)
+                && Objects.equals(hospitalId, pacsConfig.hospitalId)
+                && Objects.equals(hisName, pacsConfig.hisName)
+                && Objects.equals(uniqueName, pacsConfig.uniqueName)
+                && Objects.equals(code, pacsConfig.code);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, isDeleted, hospitalId, hisName, uniqueName, code);
+    }
+
+    public static boolean nonNull(PacsConfig o) {
+        return !(o == null
+                || (o.hospitalId == null
+                && StringUtil.isBlank(o.hisName)
+                && StringUtil.isBlank(o.uniqueName)
+                && StringUtil.isBlank(o.code)));
+    }
+}

+ 135 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/ScaleConfig.java

@@ -0,0 +1,135 @@
+package com.lantone.entity.cdss;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.util.StringUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 量表映射表
+ * </p>
+ *
+ * @author zhaops
+ * @since 2021-04-13
+ */
+@Getter
+@Setter
+public class ScaleConfig{
+    /**
+     * 主键
+     */
+    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 hospitalId;
+
+    /**
+     * 医院项目名称
+     */
+    @Excel(name = "医院量表名称", width = 60, orderNum = "1", isImportField = "true")
+    @NotBlank(message = "请输入医院量表名称")
+    private String hisName;
+
+    /**
+     * 标准名称
+     */
+    @Excel(name = "标准量表名称", width = 60, orderNum = "3", isImportField = "true")
+    @NotBlank(message = "请输入标准量表名称")
+    private String uniqueName;
+
+    /**
+     * 标准编码
+     */
+    private String code;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
+    private Integer source;
+
+
+    @Override
+    public String toString() {
+        return "ScaleConfig{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", hospitalId=" + hospitalId +
+                ", hisName=" + hisName +
+                ", uniqueName=" + uniqueName +
+                ", code=" + code +
+                "}";
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        ScaleConfig scaleConfig = (ScaleConfig) o;
+        return Objects.equals(id, scaleConfig.id)
+                && Objects.equals(isDeleted, scaleConfig.isDeleted)
+                && Objects.equals(hospitalId, scaleConfig.hospitalId)
+                && Objects.equals(hisName, scaleConfig.hisName)
+                && Objects.equals(uniqueName, scaleConfig.uniqueName)
+                && Objects.equals(code, scaleConfig.code);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, isDeleted, hospitalId, hisName, uniqueName, code);
+    }
+
+    public static boolean nonNull(ScaleConfig o) {
+        return !(o == null
+                || (o.hospitalId == null
+                && StringUtil.isBlank(o.hisName)
+                && StringUtil.isBlank(o.uniqueName)
+                && StringUtil.isBlank(o.code)));
+    }
+}

+ 135 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/TcmdiseaseConfig.java

@@ -0,0 +1,135 @@
+package com.lantone.entity.cdss;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.util.StringUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 中医疾病映射表
+ * </p>
+ *
+ * @author zhaops
+ * @since 2021-05-13
+ */
+@Getter
+@Setter
+public class TcmdiseaseConfig{
+    /**
+     * 主键
+     */
+    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 hospitalId;
+
+    /**
+     * 医院项目名称
+     */
+    @Excel(name = "中医疾病名称", width = 40, orderNum = "1", isImportField = "true")
+    @NotBlank(message = "请输入医院中医疾病名称")
+    private String hisName;
+
+    /**
+     * 标准名称
+     */
+    @Excel(name = "标准中医疾病名称", width = 40, orderNum = "3", isImportField = "true")
+    @NotBlank(message = "请输入标准中医疾病名称")
+    private String uniqueName;
+
+    /**
+     * 标准编码
+     */
+    @Excel(name = "中医疾病代码", width = 40, orderNum = "2", isImportField = "true")
+    private String code;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
+    private Integer source;
+
+    @Override
+    public String toString() {
+        return "TcmdiseaseConfig{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", hospitalId=" + hospitalId +
+                ", hisName=" + hisName +
+                ", uniqueName=" + uniqueName +
+                ", code=" + code +
+                "}";
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        TcmdiseaseConfig tcmdiseaseConfig = (TcmdiseaseConfig) o;
+        return Objects.equals(id, tcmdiseaseConfig.id)
+                && Objects.equals(isDeleted, tcmdiseaseConfig.isDeleted)
+                && Objects.equals(hospitalId, tcmdiseaseConfig.hospitalId)
+                && Objects.equals(hisName, tcmdiseaseConfig.hisName)
+                && Objects.equals(uniqueName, tcmdiseaseConfig.uniqueName)
+                && Objects.equals(code, tcmdiseaseConfig.code);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, isDeleted, hospitalId, hisName, uniqueName, code);
+    }
+
+    public static boolean nonNull(TcmdiseaseConfig o) {
+        return !(o == null
+                || (o.hospitalId == null
+                && StringUtil.isBlank(o.hisName)
+                && StringUtil.isBlank(o.uniqueName)
+                && StringUtil.isBlank(o.code)));
+    }
+}

+ 135 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/TcmsyndromeConfig.java

@@ -0,0 +1,135 @@
+package com.lantone.entity.cdss;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.util.StringUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 中医证候映射表
+ * </p>
+ *
+ * @author zhaops
+ * @since 2021-05-13
+ */
+@Getter
+@Setter
+public class TcmsyndromeConfig {
+    /**
+     * 主键
+     */
+    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 hospitalId;
+
+    /**
+     * 医院项目名称
+     */
+    @Excel(name = "医院中医证候名称", width = 40, orderNum = "1", isImportField = "true")
+    @NotBlank(message = "请输入医院中医证候名称")
+    private String hisName;
+
+    /**
+     * 标准名称
+     */
+    @Excel(name = "标准中医证候名称", width = 40, orderNum = "3", isImportField = "true")
+    @NotBlank(message = "请输入标准中医证候名称")
+    private String uniqueName;
+
+    /**
+     * 标准编码
+     */
+    @Excel(name = "中医证候代码", width = 40, orderNum = "2", isImportField = "true")
+    private String code;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
+    private Integer source;
+
+    @Override
+    public String toString() {
+        return "TcmsyndromeConfig{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", hospitalId=" + hospitalId +
+                ", hisName=" + hisName +
+                ", uniqueName=" + uniqueName +
+                ", code=" + code +
+                "}";
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        TcmsyndromeConfig tcmsyndromeConfig = (TcmsyndromeConfig) o;
+        return Objects.equals(id, tcmsyndromeConfig.id)
+                && Objects.equals(isDeleted, tcmsyndromeConfig.isDeleted)
+                && Objects.equals(hospitalId, tcmsyndromeConfig.hospitalId)
+                && Objects.equals(hisName, tcmsyndromeConfig.hisName)
+                && Objects.equals(uniqueName, tcmsyndromeConfig.uniqueName)
+                && Objects.equals(code, tcmsyndromeConfig.code);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, isDeleted, hospitalId, hisName, uniqueName, code);
+    }
+
+    public static boolean nonNull(TcmsyndromeConfig o) {
+        return !(o == null
+                || (o.hospitalId == null
+                && StringUtil.isBlank(o.hisName)
+                && StringUtil.isBlank(o.uniqueName)
+                && StringUtil.isBlank(o.code)));
+    }
+}

+ 135 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/TransfusionConfig.java

@@ -0,0 +1,135 @@
+package com.lantone.entity.cdss;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.util.StringUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 输血映射表
+ * </p>
+ *
+ * @author zhaops
+ * @since 2020-08-31
+ */
+@Getter
+@Setter
+public class TransfusionConfig {
+    /**
+     * 主键
+     */
+    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 hospitalId;
+
+    /**
+     * 医院用血类型
+     */
+    @Excel(name = "医院输血类型", width = 40, orderNum = "1", isImportField = "true")
+    @NotBlank(message = "请输入医院输血类型")
+    private String hisName;
+
+    /**
+     * 标准用血术语
+     */
+    @Excel(name = "标准输血类型", width = 40, orderNum = "3", isImportField = "true")
+    @NotBlank(message = "请输入标准输血类型")
+    private String uniqueName;
+
+    /**
+     * 对应项编码
+     */
+    //@Excel(name = "对应项编码", width = 40, orderNum = "2")
+    private String code;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    @Excel(name = "是否匹配【未匹配、已匹配】", width = 20, orderNum = "4", replace = { "未匹配_0", "已匹配_1", "_null" }, isImportField = "true")
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    @Excel(name = "数据来源【不填、标准词、同义词、编码、历史数据、相似词】", width = 20, orderNum = "5", replace = { "标准词_1", "同义词_2", "编码_3", "历史数据_4", "相似词_5", "数据迁移_99", "_null" }, isImportField = "true")
+    private Integer source;
+
+    @Override
+    public String toString() {
+        return "TransfusionConfig{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", hospitalId=" + hospitalId +
+                ", hisName=" + hisName +
+                ", uniqueName=" + uniqueName +
+                ", code=" + code +
+                "}";
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        TransfusionConfig transfusionConfig = (TransfusionConfig) o;
+        return Objects.equals(id, transfusionConfig.id)
+                && Objects.equals(isDeleted, transfusionConfig.isDeleted)
+                && Objects.equals(hospitalId, transfusionConfig.hospitalId)
+                && Objects.equals(hisName, transfusionConfig.hisName)
+                && Objects.equals(uniqueName, transfusionConfig.uniqueName)
+                && Objects.equals(code, transfusionConfig.code);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, isDeleted, hospitalId, hisName, uniqueName, code);
+    }
+
+    public static boolean nonNull(TransfusionConfig o) {
+        return !(o == null
+                || (o.hospitalId == null
+                && StringUtil.isBlank(o.hisName)
+                && StringUtil.isBlank(o.uniqueName)
+                && StringUtil.isBlank(o.code)));
+    }
+}

+ 23 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/AdministrationRouteConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.lantone.entity.cdss.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.lantone.entity.cdss.AdministrationRouteConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/10/26 13:41
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class AdministrationRouteConfigWrapper extends AdministrationRouteConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/AnesthesiaConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.lantone.entity.cdss.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.lantone.entity.cdss.AnesthesiaConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class AnesthesiaConfigWrapper extends AnesthesiaConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 24 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/DeptConfigWrapper.java

@@ -0,0 +1,24 @@
+package com.lantone.entity.cdss.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.lantone.entity.cdss.DeptConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 14:53
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class DeptConfigWrapper extends DeptConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/DiseaseConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.lantone.entity.cdss.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.lantone.entity.cdss.DiseaseConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:00
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class DiseaseConfigWrapper extends DiseaseConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 28 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/DrugConfigWrapper.java

@@ -0,0 +1,28 @@
+package com.lantone.entity.cdss.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.lantone.entity.cdss.DrugConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:02
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class DrugConfigWrapper extends DrugConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准剂型状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "100")
+    private Integer formStatus;
+}

+ 23 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/LisConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.lantone.entity.cdss.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.lantone.entity.cdss.LisConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class LisConfigWrapper extends LisConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 58 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/MappingConfigWrapper.java

@@ -0,0 +1,58 @@
+package com.lantone.entity.cdss.wrapper;
+
+import com.lantone.entity.cdss.MappingConfig;
+import com.lantone.common.util.StringUtil;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/6/10 19:27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class MappingConfigWrapper extends MappingConfig {
+    private String uniqueName;
+    private Integer status;
+    private String form;
+    private Integer formStatus;
+    private String code;
+    /**
+     * 国药准字
+     */
+    private String approval;
+
+   /* @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        MappingConfigWrapper mappingConfigWrapper = (MappingConfigWrapper) o;
+        return super.equals(o)
+                && Objects.equals(uniqueName, mappingConfigWrapper.uniqueName)
+                && Objects.equals(form, mappingConfigWrapper.form)
+                && Objects.equals(code, mappingConfigWrapper.code);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(uniqueName, form, code) + super.hashCode();
+    }*/
+
+    public static boolean nonNull(MappingConfigWrapper o) {
+        return !(o == null
+                || (StringUtil.isBlank(o.uniqueName)
+                && o.status == null
+                && StringUtil.isBlank(o.form)
+                && o.formStatus == null
+                && StringUtil.isBlank(o.code)
+                && StringUtil.isBlank(o.approval)))
+                || MappingConfig.nonNull(o);
+    }
+}

+ 23 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/NurseConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.lantone.entity.cdss.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.lantone.entity.cdss.NurseConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class NurseConfigWrapper extends NurseConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/OperationConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.lantone.entity.cdss.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.lantone.entity.cdss.OperationConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:08
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class OperationConfigWrapper extends OperationConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/PacsConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.lantone.entity.cdss.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.lantone.entity.cdss.PacsConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class PacsConfigWrapper extends PacsConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/ScaleConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.lantone.entity.cdss.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.lantone.entity.cdss.ScaleConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class ScaleConfigWrapper extends ScaleConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/TcmdiseaseConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.lantone.entity.cdss.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.lantone.entity.cdss.TcmdiseaseConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class TcmdiseaseConfigWrapper extends TcmdiseaseConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/TcmsyndromeConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.lantone.entity.cdss.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.lantone.entity.cdss.TcmsyndromeConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:18
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class TcmsyndromeConfigWrapper extends TcmsyndromeConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 23 - 0
mdsp-service/src/main/java/com/lantone/entity/cdss/wrapper/TransfusionConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.lantone.entity.cdss.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.lantone.entity.cdss.TransfusionConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:18
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class TransfusionConfigWrapper extends TransfusionConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, replace = { "禁用_0", "启用_1", "_null" }, orderNum = "99")
+    private Integer status;
+}

+ 167 - 0
mdsp-service/src/main/java/com/lantone/entity/med/KlConcept.java

@@ -0,0 +1,167 @@
+package com.lantone.entity.med;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 概念表
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-01-21
+ */
+public class KlConcept implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键,概念id
+     */
+    @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 libId;
+
+    /**
+     * 概念名称(冗余)
+     */
+    private String libName;
+
+    /**
+     * 概念词性type(冗余)
+     */
+    private Integer libType;
+
+    /**
+     * 启用状态(0:禁用,1:启用)
+     */
+    private Integer status;
+
+    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 Long getLibId() {
+        return libId;
+    }
+
+    public void setLibId(Long libId) {
+        this.libId = libId;
+    }
+
+    public String getLibName() {
+        return libName;
+    }
+
+    public void setLibName(String libName) {
+        this.libName = libName;
+    }
+
+    public Integer getLibType() {
+        return libType;
+    }
+
+    public void setLibType(Integer libType) {
+        this.libType = libType;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    @Override
+    public String toString() {
+        return "KlConcept{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", libId=" + libId +
+                ", libName=" + libName +
+                ", libType=" + libType +
+                ", status=" + status +
+                "}";
+    }
+}

+ 198 - 0
mdsp-service/src/main/java/com/lantone/entity/med/KlDisease.java

@@ -0,0 +1,198 @@
+package com.lantone.entity.med;
+
+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 2022-03-03
+ */
+@Data
+public class KlDisease 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;
+
+    /**
+     * 科室概念id
+     */
+    private Long deptId;
+
+    /**
+     * ICD10编号
+     */
+    private String icd10Code;
+
+    /**
+     * 国临名称
+     */
+    private String guoname;
+
+    /**
+     * 国临编码
+     */
+    private String guocode;
+
+    /**
+     * 国临拼音
+     */
+    private String guospell;
+
+    /**
+     * 病程
+     */
+    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 morphology;
+
+    /**
+     * 肿瘤细胞类型
+     */
+    private String tumorCellType;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 184 - 0
mdsp-service/src/main/java/com/lantone/entity/med/KlLibraryInfo.java

@@ -0,0 +1,184 @@
+package com.lantone.entity.med;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 术语表
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-01-21
+ */
+public class KlLibraryInfo 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 name;
+
+    /**
+     * 概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 是否标准词,1:是,0:否
+     */
+    private Integer isConcept;
+
+    /**
+     * 词性id
+     */
+    private Integer typeId;
+
+    /**
+     * 拼音
+     */
+    private String spell;
+
+    /**
+     * 备注
+     */
+    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 getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    public Long getConceptId() {
+        return conceptId;
+    }
+
+    public void setConceptId(Long conceptId) {
+        this.conceptId = conceptId;
+    }
+    public Integer getIsConcept() {
+        return isConcept;
+    }
+
+    public void setIsConcept(Integer isConcept) {
+        this.isConcept = isConcept;
+    }
+    public Integer getTypeId() {
+        return typeId;
+    }
+
+    public void setTypeId(Integer typeId) {
+        this.typeId = typeId;
+    }
+    public String getSpell() {
+        return spell;
+    }
+
+    public void setSpell(String spell) {
+        this.spell = spell;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "KlLibraryInfo{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", name=" + name +
+            ", conceptId=" + conceptId +
+            ", isConcept=" + isConcept +
+            ", typeId=" + typeId +
+            ", spell=" + spell +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 158 - 0
mdsp-service/src/main/java/com/lantone/entity/med/KlOperation.java

@@ -0,0 +1,158 @@
+package com.lantone.entity.med;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 手术扩展表
+ * </p>
+ *
+ * @author zhaops
+ * @since 2021-06-15
+ */
+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;
+
+    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 Long getConceptId() {
+        return conceptId;
+    }
+
+    public void setConceptId(Long conceptId) {
+        this.conceptId = conceptId;
+    }
+    public Integer getOperationLevel() {
+        return operationLevel;
+    }
+
+    public void setOperationLevel(Integer operationLevel) {
+        this.operationLevel = operationLevel;
+    }
+    public String getOperationCode() {
+        return operationCode;
+    }
+
+    public void setOperationCode(String operationCode) {
+        this.operationCode = operationCode;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "KlOperation{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", conceptId=" + conceptId +
+            ", operationLevel=" + operationLevel +
+            ", operationCode=" + operationCode +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 147 - 0
mdsp-service/src/main/java/com/lantone/entity/med/TcmDisease.java

@@ -0,0 +1,147 @@
+package com.lantone.entity.med;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 中医疾病表
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-06-07
+ */
+@TableName("kl_tcm_disease")
+public class TcmDisease implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 编码
+     */
+    private String code;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public LocalDateTime getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(LocalDateTime gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public LocalDateTime getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(LocalDateTime gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getConceptId() {
+        return conceptId;
+    }
+
+    public void setConceptId(Long conceptId) {
+        this.conceptId = conceptId;
+    }
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "TcmDisease{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", conceptId=" + conceptId +
+            ", code=" + code +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 147 - 0
mdsp-service/src/main/java/com/lantone/entity/med/TcmSyndrome.java

@@ -0,0 +1,147 @@
+package com.lantone.entity.med;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 中医证候表
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-06-07
+ */
+@TableName("kl_tcm_syndrome")
+public class TcmSyndrome implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 编码
+     */
+    private String code;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public LocalDateTime getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(LocalDateTime gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public LocalDateTime getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(LocalDateTime gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getConceptId() {
+        return conceptId;
+    }
+
+    public void setConceptId(Long conceptId) {
+        this.conceptId = conceptId;
+    }
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "TcmSyndrome{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", conceptId=" + conceptId +
+            ", code=" + code +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 79 - 0
mdsp-service/src/main/java/com/lantone/enums/cdss/ConceptTypeEnum.java

@@ -0,0 +1,79 @@
+package com.lantone.enums.cdss;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/9/10 15:51
+ */
+public enum ConceptTypeEnum implements KeyedNamed {
+
+    LisPack(1, "检验套餐"),
+    Lis(2, "检验细项"),
+    Pacs(3, "检查"),
+    Disease(4, "诊断"),
+    Drug(5, "药品"),
+    Operation(6, "手术和操作"),
+    Dept(7, "科室"),
+    Transfusion(8, "输血"),
+    Symptom(9,"症状"),
+    //PacsSubName(9, "检查子项"),
+    Scale(10, "量表"),
+    Nurse(11, "护理"),
+    Tcmdisease(12,"中医疾病"),
+    Tcmsyndrome(13,"中医证候"),
+    Anesthesia(14, "麻醉"),
+    Form(15, "药品剂型"),
+    AdministrationRoute(16,"给药途径");
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    ConceptTypeEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static ConceptTypeEnum getEnum(int key) {
+        for (ConceptTypeEnum item : ConceptTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static ConceptTypeEnum getEnum(String name) {
+        for (ConceptTypeEnum item : ConceptTypeEnum.values()) {
+            if (item.name.equals(name)) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        ConceptTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    public static Integer getKey(String name) {
+        ConceptTypeEnum item = getEnum(name);
+        return item != null ? item.key : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 67 - 0
mdsp-service/src/main/java/com/lantone/enums/cdss/MatchSourceEnum.java

@@ -0,0 +1,67 @@
+package com.lantone.enums.cdss;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/6/15 13:20
+ */
+public enum MatchSourceEnum implements KeyedNamed {
+    StandWord(1, "标准词"),
+    SynonymsWord(2, "同义词"),
+    Code(3,"编码"),
+    History(4,"历史数据"),
+    SimilarWord(5,"相似词"),
+    Approval(6,"国药准字");
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    MatchSourceEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static MatchSourceEnum getEnum(int key) {
+        for (MatchSourceEnum item : MatchSourceEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static MatchSourceEnum getEnum(String name) {
+        for (MatchSourceEnum item : MatchSourceEnum.values()) {
+            if (item.name.equals(name)) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        MatchSourceEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    public static Integer getKey(String name) {
+        MatchSourceEnum item = getEnum(name);
+        return item != null ? item.key : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 50 - 0
mdsp-service/src/main/java/com/lantone/enums/cdss/StatusEnum.java

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

+ 79 - 0
mdsp-service/src/main/java/com/lantone/enums/med/ConceptTypeEnum.java

@@ -0,0 +1,79 @@
+package com.lantone.enums.med;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/9/10 15:51
+ */
+public enum ConceptTypeEnum implements KeyedNamed {
+
+    LisPack(1, "检验套餐"),
+    Lis(2, "检验细项"),
+    Pacs(3, "检查"),
+    Disease(4, "诊断"),
+    Drug(5, "药品"),
+    Operation(6, "手术和操作"),
+    Dept(7, "科室"),
+    Transfusion(8, "输血"),
+    Symptom(9, "症状"),
+    //PacsSubName(9, "检查子项"),
+    Scale(10, "量表"),
+    Nurse(11, "护理"),
+    Tcmdisease(12, "中医疾病"),
+    Tcmsyndrome(13, "中医证候"),
+    Anesthesia(14, "麻醉"),
+    Form(15, "药品剂型"),
+    AdministrationRoute(16, "给药途径");
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    ConceptTypeEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static ConceptTypeEnum getEnum(int key) {
+        for (ConceptTypeEnum item : ConceptTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static ConceptTypeEnum getEnum(String name) {
+        for (ConceptTypeEnum item : ConceptTypeEnum.values()) {
+            if (item.name.equals(name)) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        ConceptTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    public static Integer getKey(String name) {
+        ConceptTypeEnum item = getEnum(name);
+        return item != null ? item.key : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 132 - 0
mdsp-service/src/main/java/com/lantone/enums/med/LexiconEnum.java

@@ -0,0 +1,132 @@
+package com.lantone.enums.med;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/2/24 10:46
+ */
+public enum LexiconEnum implements KeyedNamed {
+
+    Disease(100,"疾病"),
+    Medicine(101,"药品通用名"),
+    Form(102,"药品剂型"),
+    Symptom(103,"症状"),
+    Vital(104,"体格检查项目"),
+    VitalResult(105,"体格检查结果"),
+    Operation(106,"手术和操作"),
+    LisName(107,"实验室检查套餐"),
+    LisSubName(108,"实验室检查子项目"),
+    PacsName(109,"辅助检查项目"),
+    PacsSubName(110,"辅助检查子项目"),
+    PacsDescribe(111,"辅助检查描述"),
+    PacsResult(112,"辅助检查结果"),
+    Transfusion(113,"输血类型"),
+    Anesthesia(114,"麻醉"),
+    Dept(115,"科室"),
+    Gender(116,"性别"),
+    Group(117,"人群"),
+    Food(118,"食物"),
+    Allergen(119,"其他过敏原"),
+    Device(120,"医疗器械及物品"),
+    AdministrationRoute(121,"给药途径"),
+    Part(122,"部位"),
+    Nurse(123,"护理"),
+    Scale(124,"量表"),
+    Unit(125,"单位"),
+    Nature(126,"性质"),
+    Tcmdisease(127, "中医疾病"),
+    Tcmsyndrome(128, "中医证候"),
+    Inducement(129, "诱因"),
+    Law(130, "政策法规"),
+    not(131, "否定词"),
+    Physicotherapy(132, "物理治疗"),
+    ICD10Class(300,"ICD10疾病类别"),
+    MedChemClass(301,"药品化学物质类别"),
+    MedZhiLiaoClass(302,"药品治疗学类别"),
+    MedYaoLiClass(303,"药品药理学类别"),
+    MedJiePouClass(304,"药品解剖学类别"),
+    SymptomClass(305,"症状类别"),
+    OperationClass(306,"手术和操作类别"),
+    DisSysType(307,"疾病系统分类"),
+    DiseaseCollection(308,"疾病集合"),
+    MedicineCollection(309,"药品通用名集合"),
+    FormCollection(310,"药品剂型集合"),
+    SymptomCollection(311,"症状集合"),
+    VitalCollection(312,"体格检查项目集合"),
+    VitalResultCollection(313,"体格检查结果集合"),
+    OperationCollection(314,"手术和操作集合"),
+    LisNameCollection(315,"实验室检查套餐集合"),
+    PacsNameCollection(316,"辅助检查项目集合"),
+    PacsSubNameCollection(317,"辅助检查子项目集合"),
+    PacsDescribeCollection(318,"辅助检查描述集合"),
+    PacsResultCollection(319,"辅助检查结果集合"),
+    AnesthesiaCollection(320,"麻醉集合"),
+    DeptCollection(321,"科室集合"),
+    FoodCollection(322,"食物集合"),
+    AllergenCollection(323,"其他过敏原集合"),
+    DeviceCollection(324,"医疗器械及物品集合"),
+    PartCollection(325,"部位集合"),
+    TcmdiseaseCollection(326,"中医疾病集合"),
+    TcmsyndromeCollection(327,"中医证候集合"),
+    InducementCollection(328,"诱因集合"),
+    DugrouteCollection(329,"给药途径集合"),
+    ICD10ClassNode(400,"ICD10疾病类别根节点"),
+    DeptDiseaseNode(401,"科室疾病类别根节点"),
+    MedChemClassNode(402,"药品化学物质类别根节点"),
+    MedZhiLiaoClassNode(403,"药品治疗学类别根节点"),
+    MedYaoLiClassNode(404,"药品药理学类别根节点"),
+    MedJiePouClassNode(405,"药品解剖学类别根节点"),
+    SymptomClassNode(406,"症状类别根节点"),
+    OperationClassNode(407,"手术和操作类别根节点"),
+    LisClassNode(408,"实验室检查类别根节点"),
+    PacsClassNode(409,"辅助检查类别根节点"),
+    Age(410,"年龄");
+
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    LexiconEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static LexiconEnum getEnum(int key) {
+        for (LexiconEnum item : LexiconEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static LexiconEnum getEnum(String value) {
+        for (LexiconEnum item : LexiconEnum.values()) {
+            if (item.getName().equals(value)) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        LexiconEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 66 - 0
mdsp-service/src/main/java/com/lantone/enums/med/MatchSourceEnum.java

@@ -0,0 +1,66 @@
+package com.lantone.enums.med;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/6/15 13:20
+ */
+public enum MatchSourceEnum implements KeyedNamed {
+    StandWord(1, "标准词"),
+    SynonymsWord(2, "同义词"),
+    Code(3,"编码"),
+    History(4,"历史数据"),
+    SimilarWord(5,"相似词");
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    MatchSourceEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static MatchSourceEnum getEnum(int key) {
+        for (MatchSourceEnum item : MatchSourceEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static MatchSourceEnum getEnum(String name) {
+        for (MatchSourceEnum item : MatchSourceEnum.values()) {
+            if (item.name.equals(name)) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        MatchSourceEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    public static Integer getKey(String name) {
+        MatchSourceEnum item = getEnum(name);
+        return item != null ? item.key : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 50 - 0
mdsp-service/src/main/java/com/lantone/enums/med/StatusEnum.java

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

+ 68 - 0
mdsp-service/src/main/java/com/lantone/facade/cdss/DictionaryFacade.java

@@ -0,0 +1,68 @@
+package com.lantone.facade.cdss;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.lantone.dto.cdss.DictionaryInfoDTO;
+import com.lantone.entity.cdss.DictionaryInfo;
+import com.lantone.service.cdss.impl.DictionaryInfoServiceImpl;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:zhoutg
+ * @time: 2018/11/23 11:37
+ */
+@Component
+public class DictionaryFacade extends DictionaryInfoServiceImpl {
+
+    /**
+     * 返回字典信息
+     *
+     * @return
+     */
+    public Map<Long, List<DictionaryInfoDTO>> getList() {
+        List<DictionaryInfo> list = this.list(new QueryWrapper<DictionaryInfo>()
+                .in("return_type", ListUtil.arrayToList(new Long[] { 0L, 2L }))
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .orderByAsc("group_type", "order_no"));
+        List<DictionaryInfoDTO> listRes = BeanUtil.listCopyTo(list, DictionaryInfoDTO.class);
+        return EntityUtil.makeEntityListMap(listRes, "groupType");
+    }
+
+    /**
+     * 返回字典信息
+     *
+     * @return
+     */
+    public Map<Long, List<DictionaryInfoDTO>> getListBack() {
+        List<DictionaryInfo> list = this.list(new QueryWrapper<DictionaryInfo>()
+                .in("return_type", ListUtil.arrayToList(new Long[] { 0L, 1L }))
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .orderByAsc("group_type", "order_no"));
+        List<DictionaryInfoDTO> listRes = BeanUtil.listCopyTo(list, DictionaryInfoDTO.class);
+        return EntityUtil.makeEntityListMap(listRes, "groupType");
+    }
+
+
+    /**
+     * 返回指定字典信息
+     *
+     * @param groupType
+     * @return
+     */
+    public List<DictionaryInfoDTO> getListByGroupType(Integer groupType) {
+        List<DictionaryInfo> list = this.list(new QueryWrapper<DictionaryInfo>()
+                .eq("group_type", groupType)
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .orderByAsc("order_no"));
+        List<DictionaryInfoDTO> listRes = BeanUtil.listCopyTo(list, DictionaryInfoDTO.class);
+        return listRes;
+    }
+    
+}

File diff suppressed because it is too large
+ 2544 - 0
mdsp-service/src/main/java/com/lantone/facade/cdss/MappingConfigFacade.java


+ 474 - 0
mdsp-service/src/main/java/com/lantone/facade/med/KlConceptFacade.java

@@ -0,0 +1,474 @@
+package com.lantone.facade.med;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.lantone.dto.med.IndexBatchDTO;
+import com.lantone.dto.med.KllisDetailDTO;
+import com.lantone.entity.med.KlConcept;
+import com.lantone.entity.med.KlDisease;
+import com.lantone.entity.med.KlLibraryInfo;
+import com.lantone.entity.med.KlOperation;
+import com.lantone.entity.med.TcmDisease;
+import com.lantone.entity.med.TcmSyndrome;
+import com.lantone.enums.med.ConceptTypeEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.lantone.enums.med.LexiconEnum;
+import com.lantone.enums.med.MatchSourceEnum;
+import com.lantone.enums.med.StatusEnum;
+import com.lantone.service.med.impl.KlConceptServiceImpl;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.lantone.vo.med.ConceptVO;
+import com.lantone.vo.med.FilterVO;
+import com.lantone.vo.med.IndexByApprovalVO;
+import com.lantone.vo.med.KllisDetailVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/1/26 13:05
+ */
+@Component
+public class KlConceptFacade extends KlConceptServiceImpl {
+
+    //////////////
+    @Autowired
+    private KlDiseaseFacade klDiseaseFacade;
+
+    //////////////
+    @Autowired
+    private KlOperationFacade klOperationFacade;
+    @Autowired
+    private TcmDiseaseFacade tcmDiseaseFacade;
+
+    ///////////////////////////
+    @Autowired
+    private TcmSyndromeFacade tcmSyndromeFacade;
+
+    ////////////
+    @Autowired
+    private KlLibraryInfoFacade klLibraryInfoFacade;
+
+
+    //////////////////////////////////
+    /**
+     * 批量校验标准术语
+     *
+     * @param conceptVO
+     * @return
+     */
+    public List<IndexBatchDTO> getConceptNames(ConceptVO conceptVO) {
+        List<IndexBatchDTO> retList = Lists.newLinkedList();
+        Integer type = convertType(conceptVO.getType(), false);
+
+        if (conceptVO.getSource().equals(-1)) {
+            if (ListUtil.isEmpty(conceptVO.getIds())) {
+                return retList;
+            }
+            //根据id检索
+            List<KlConcept> concepts = Lists.newLinkedList();
+            List<KlConcept> tempList = Lists.newLinkedList();
+            QueryWrapper<KlConcept> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+            if (conceptVO.getStatus() != null) {
+                queryWrapper.eq("status", conceptVO.getStatus());
+                if (conceptVO.getStatus().equals(StatusEnum.Disable.getKey())) {
+                    tempList = this.list(queryWrapper);
+                    if (ListUtil.isNotEmpty(tempList)) {
+                        Map<Long, KlConcept> tempMap = tempList.stream().collect(Collectors.toMap(KlConcept::getId, v -> v));
+                        for (Map.Entry<Long, KlConcept> entry : tempMap.entrySet()) {
+                            if (conceptVO.getIds().contains(entry.getKey())) {
+                                concepts.add(entry.getValue());
+                            }
+                        }
+                    }
+                }
+            }
+            if (conceptVO.getStatus() == null || conceptVO.getStatus().equals(StatusEnum.Enable.getKey())) {
+                queryWrapper.in("id", conceptVO.getIds());
+                concepts = this.list(queryWrapper);
+            }
+            for (KlConcept concept : concepts) {
+                IndexBatchDTO dto = new IndexBatchDTO();
+                dto.setId(concept.getId());
+                dto.setName(concept.getLibName());
+                dto.setStatus(concept.getStatus());
+                dto.setType(convertType(concept.getLibType(), true));
+                retList.add(dto);
+            }
+        } else if (conceptVO.getSource().equals(MatchSourceEnum.StandWord.getKey())) {
+            QueryWrapper<KlConcept> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+            if (conceptVO.getStatus() != null) {
+                queryWrapper.eq("status", conceptVO.getStatus());
+            }
+            if (ListUtil.isNotEmpty(conceptVO.getNames())) {
+                queryWrapper.in("lib_name", conceptVO.getNames());
+            }
+            if (conceptVO.getType().equals(ConceptTypeEnum.Pacs.getKey())) {
+                //辅检同时检索辅检项目和辅检子项
+                queryWrapper.in("lib_type", Arrays.asList(LexiconEnum.PacsName.getKey(), LexiconEnum.PacsSubName.getKey()));
+            } else {
+                queryWrapper.eq("lib_type", type);
+            }
+            List<KlConcept> concepts = this.list(queryWrapper);
+
+            if (ListUtil.isNotEmpty(concepts)) {
+                for (KlConcept concept : concepts) {
+                    IndexBatchDTO dto = new IndexBatchDTO();
+                    dto.setId(concept.getId());
+                    dto.setName(concept.getLibName());
+                    dto.setStatus(concept.getStatus());
+                    retList.add(dto);
+                }
+            }
+        } else if (conceptVO.getSource().equals(MatchSourceEnum.SynonymsWord.getKey())) {
+            if (ListUtil.isEmpty(conceptVO.getNames())) {
+                return retList;
+            }
+            QueryWrapper<KlLibraryInfo> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("is_concept", 0)
+                    .in("name", conceptVO.getNames());
+            if (conceptVO.getType().equals(ConceptTypeEnum.Pacs.getKey())) {
+                //辅检同时检索辅检项目和辅检子项
+                queryWrapper.in("type_id", Arrays.asList(LexiconEnum.PacsName.getKey(), LexiconEnum.PacsSubName.getKey()));
+            } else {
+                queryWrapper.eq("type_id", type);
+            }
+            List<KlLibraryInfo> libratyInfos = klLibraryInfoFacade.list(queryWrapper);
+            if (ListUtil.isEmpty(libratyInfos)) {
+                return retList;
+            }
+            Map<Long, List<KlLibraryInfo>> libraryInfoMap
+                    = libratyInfos.stream().collect(Collectors.groupingBy(KlLibraryInfo::getConceptId));
+            List<Long> synonymsRelatedConceptIds
+                    = libratyInfos.stream().map(KlLibraryInfo::getConceptId).collect(Collectors.toList());
+            QueryWrapper<KlConcept> conceptQueryWrapper = new QueryWrapper<>();
+            conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in("id", synonymsRelatedConceptIds);
+            if (conceptVO.getStatus() != null) {
+                conceptQueryWrapper.eq("status", conceptVO.getStatus());
+            }
+            List<KlConcept> synonymsRelatedConcepts = this.list(conceptQueryWrapper);
+            Map<Long, KlConcept> conceptMap
+                    = synonymsRelatedConcepts.stream().collect(Collectors.toMap(KlConcept::getId, v -> v));
+
+            if (conceptMap != null && conceptMap.size() > 0) {
+                for (Map.Entry<Long, KlConcept> entry : conceptMap.entrySet()) {
+                    KlConcept concept = entry.getValue();
+                    if (libraryInfoMap.containsKey(entry.getKey())) {
+                        for (KlLibraryInfo libraryInfo : libraryInfoMap.get(entry.getKey())) {
+                            if (!conceptVO.getNames().contains(libraryInfo.getName())) {
+                                continue;
+                            }
+                            IndexBatchDTO indexBatchDTO = new IndexBatchDTO();
+                            indexBatchDTO.setId(concept.getId());
+                            indexBatchDTO.setName(concept.getLibName());
+                            indexBatchDTO.setStatus(concept.getStatus());
+                            indexBatchDTO.setSynonyms(libraryInfo.getName());
+                            retList.add(indexBatchDTO);
+                        }
+                    }
+                }
+            }
+        } else if (conceptVO.getSource().equals(MatchSourceEnum.Code.getKey())) {
+            if (ListUtil.isEmpty(conceptVO.getNames())) {
+                return retList;
+            }
+            List<Long> conceptIds = Lists.newArrayList();
+            Map<Long, List<String>> codeMap = new HashMap<>();
+            if (type.equals(LexiconEnum.Disease.getKey())) {
+                List<KlDisease> diseases = klDiseaseFacade.list(new QueryWrapper<KlDisease>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .in("icd10_code", conceptVO.getNames()));
+                if (ListUtil.isNotEmpty(diseases)) {
+                    conceptIds = diseases.stream().map(KlDisease::getConceptId).distinct().collect(Collectors.toList());
+                    codeMap = diseases.stream()
+                            .collect(Collectors.groupingBy(KlDisease::getConceptId,
+                                    Collectors.mapping(KlDisease::getIcd10Code, Collectors.toList())));
+                }
+            } else if (type.equals(LexiconEnum.Operation.getKey())) {
+                List<KlOperation> operations = klOperationFacade.list(new QueryWrapper<KlOperation>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .in("operation_code", conceptVO.getNames()));
+                if (ListUtil.isNotEmpty(operations)) {
+                    conceptIds = operations.stream().map(KlOperation::getConceptId).distinct().collect(Collectors.toList());
+                    codeMap = operations.stream()
+                            .collect(Collectors.groupingBy(KlOperation::getConceptId,
+                                    Collectors.mapping(KlOperation::getOperationCode, Collectors.toList())));
+                }
+            } else if (type.equals(LexiconEnum.Tcmdisease.getKey())) {
+                List<TcmDisease> tcmDiseases = tcmDiseaseFacade.list(new QueryWrapper<TcmDisease>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .in("code", conceptVO.getNames()));
+                if (ListUtil.isNotEmpty(tcmDiseases)) {
+                    conceptIds = tcmDiseases.stream().map(TcmDisease::getConceptId).distinct().collect(Collectors.toList());
+                    codeMap = tcmDiseases.stream().collect(Collectors.groupingBy(TcmDisease::getConceptId,
+                            Collectors.mapping(TcmDisease::getCode, Collectors.toList())));
+                }
+            } else if (type.equals(LexiconEnum.Tcmsyndrome.getKey())) {
+                List<TcmSyndrome> tcmSyndromes = tcmSyndromeFacade.list(new QueryWrapper<TcmSyndrome>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .in("code", conceptVO.getNames()));
+                if (ListUtil.isNotEmpty(tcmSyndromes)) {
+                    conceptIds = tcmSyndromes.stream().map(TcmSyndrome::getConceptId).distinct().collect(Collectors.toList());
+                    codeMap = tcmSyndromes.stream().collect(Collectors.groupingBy(TcmSyndrome::getConceptId,
+                            Collectors.mapping(TcmSyndrome::getCode, Collectors.toList())));
+                }
+            }
+            if (ListUtil.isEmpty(conceptIds)) {
+                return retList;
+            }
+            QueryWrapper<KlConcept> qw = new QueryWrapper<KlConcept>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in("id", conceptIds);
+            if (conceptVO.getStatus() != null) {
+                qw.eq("status", conceptVO.getStatus());
+            }
+            List<KlConcept> concepts = this.list(qw);
+            Map<Long, KlConcept> conceptMap
+                    = concepts.stream().collect(Collectors.toMap(KlConcept::getId, v -> v));
+            if (conceptMap != null && conceptMap.size() > 0) {
+                for (Map.Entry<Long, KlConcept> entry : conceptMap.entrySet()) {
+                    KlConcept concept = entry.getValue();
+                    if (codeMap.containsKey(entry.getKey())) {
+                        for (String code : codeMap.get(entry.getKey())) {
+                            if (!conceptVO.getNames().contains(code)) {
+                                continue;
+                            }
+                            IndexBatchDTO indexBatchDTO = new IndexBatchDTO();
+                            indexBatchDTO.setId(concept.getId());
+                            indexBatchDTO.setName(concept.getLibName());
+                            indexBatchDTO.setCode(code);
+                            indexBatchDTO.setStatus(concept.getStatus());
+                            retList.add(indexBatchDTO);
+                        }
+                    }
+                }
+            }
+        }
+
+        if (ListUtil.isEmpty(retList)) {
+            return retList;
+        }
+        //关联编码
+        List<Long> conceptIds = retList.stream().map(IndexBatchDTO::getId).collect(Collectors.toList());
+        //诊断关联编码
+        List<KlDisease> diseases = klDiseaseFacade.list(new QueryWrapper<KlDisease>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("concept_id", conceptIds));
+        if (ListUtil.isNotEmpty(diseases)) {
+            Map<Long, KlDisease> idMap = diseases.stream().collect(Collectors.toMap(KlDisease::getConceptId, v -> v));
+            for (IndexBatchDTO dto : retList) {
+                if (idMap.containsKey(dto.getId())) {
+                    dto.setCode(idMap.get(dto.getId()).getIcd10Code());
+                }
+            }
+        }
+        //手术关联编码
+        List<KlOperation> operations = klOperationFacade.list(new QueryWrapper<KlOperation>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("concept_id", conceptIds));
+        if (ListUtil.isNotEmpty(operations)) {
+            Map<Long, KlOperation> idMap = operations.stream().collect(Collectors.toMap(KlOperation::getConceptId, v -> v));
+            for (IndexBatchDTO dto : retList) {
+                if (idMap.containsKey(dto.getId())) {
+                    dto.setCode(idMap.get(dto.getId()).getOperationCode());
+                }
+            }
+        }
+        //中医疾病关联编码
+        List<TcmDisease> tcmDiseases = tcmDiseaseFacade.list(new QueryWrapper<TcmDisease>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("concept_id", conceptIds));
+        if (ListUtil.isNotEmpty(tcmDiseases)) {
+            Map<Long, TcmDisease> idMap = tcmDiseases.stream().collect(Collectors.toMap(TcmDisease::getConceptId, v -> v));
+            for (IndexBatchDTO dto : retList) {
+                if (idMap.containsKey(dto.getId())) {
+                    dto.setCode(idMap.get(dto.getId()).getCode());
+                }
+            }
+        }
+        //中医证候关联编码
+        List<TcmSyndrome> tcmSyndromes = tcmSyndromeFacade.list(new QueryWrapper<TcmSyndrome>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("concept_id", conceptIds));
+        if (ListUtil.isNotEmpty(tcmSyndromes)) {
+            Map<Long, TcmSyndrome> idMap = tcmSyndromes.stream().collect(Collectors.toMap(TcmSyndrome::getConceptId, v -> v));
+            for (IndexBatchDTO dto : retList) {
+                if (idMap.containsKey(dto.getId())) {
+                    dto.setCode(idMap.get(dto.getId()).getCode());
+                }
+            }
+        }
+        return retList;
+    }
+
+
+    ///////////////////////////////////////
+    /**
+     * 术语模糊检索
+     *
+     * @param filterVO
+     * @return
+     */
+    public List<IndexBatchDTO> filter(FilterVO filterVO) {
+        List<IndexBatchDTO> retList = Lists.newArrayList();
+        QueryWrapper<KlConcept> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .like("lib_name", filterVO.getInputStr());
+        if (filterVO.getStatus() != null) {
+            queryWrapper.eq("status", filterVO.getStatus());
+        }
+        List<KlConcept> klConcepts = this.list(queryWrapper);
+        for (KlConcept concept : klConcepts) {
+            IndexBatchDTO indexBatchDTO = new IndexBatchDTO();
+            indexBatchDTO.setId(concept.getId());
+            indexBatchDTO.setName(concept.getLibName());
+            indexBatchDTO.setStatus(concept.getStatus());
+            Integer type = convertType(concept.getLibType(), true);
+            if (type != null) {
+                indexBatchDTO.setType(type);
+                retList.add(indexBatchDTO);
+            }
+        }
+        return retList;
+    }
+
+
+    //////////////////////////////////
+    /**
+     * 国药准字校验
+     *
+     * @param indexByApprovalVO
+     * @return
+     */
+    @Override
+    public List<IndexBatchDTO> indexByApproval(IndexByApprovalVO indexByApprovalVO) {
+        if (ListUtil.isEmpty(indexByApprovalVO.getApprovalList())) {
+            return new ArrayList<>();
+        }
+        return super.indexByApproval(indexByApprovalVO);
+    }
+
+
+    //////////////////////////////////
+    /**
+     * 类型互转
+     *
+     * @param type
+     * @param reverse
+     * @return
+     */
+    public Integer convertType(Integer type, Boolean reverse) {
+        Integer retType = null;
+        if (type == null) {
+            return retType;
+        }
+        if (reverse) {
+            if (type.equals(LexiconEnum.LisName.getKey())
+                    || type.equals(LexiconEnum.LisSubName.getKey())) {
+                retType = ConceptTypeEnum.LisPack.getKey();
+            } else if (type.equals(LexiconEnum.PacsName.getKey())
+                    || type.equals(LexiconEnum.PacsSubName.getKey())) {
+                retType = ConceptTypeEnum.Pacs.getKey();
+            } else if (type.equals(LexiconEnum.Disease.getKey())) {
+                retType = ConceptTypeEnum.Disease.getKey();
+            } else if (type.equals(LexiconEnum.Medicine.getKey())) {
+                retType = ConceptTypeEnum.Drug.getKey();
+            } else if (type.equals(LexiconEnum.Operation.getKey())) {
+                retType = ConceptTypeEnum.Operation.getKey();
+            } else if (type.equals(LexiconEnum.Dept.getKey())) {
+                retType = ConceptTypeEnum.Dept.getKey();
+            } else if (type.equals(LexiconEnum.Transfusion.getKey())) {
+                retType = ConceptTypeEnum.Transfusion.getKey();
+            } else if (type.equals(LexiconEnum.Scale.getKey())) {
+                retType = ConceptTypeEnum.Scale.getKey();
+            } else if (type.equals(LexiconEnum.Nurse.getKey())) {
+                retType = ConceptTypeEnum.Nurse.getKey();
+            } else if (type.equals(LexiconEnum.Tcmdisease.getKey())) {
+                retType = ConceptTypeEnum.Tcmdisease.getKey();
+            } else if (type.equals(LexiconEnum.Tcmsyndrome.getKey())) {
+                retType = ConceptTypeEnum.Tcmsyndrome.getKey();
+            } else if (type.equals(LexiconEnum.Anesthesia.getKey())) {
+                retType = ConceptTypeEnum.Anesthesia.getKey();
+            } else if (type.equals(LexiconEnum.Form.getKey())) {
+                retType = ConceptTypeEnum.Form.getKey();
+            } else if (type.equals(LexiconEnum.AdministrationRoute.getKey())) {
+                retType = ConceptTypeEnum.AdministrationRoute.getKey();
+            }
+        } else {
+            switch (type) {
+                case 1:
+                    retType = LexiconEnum.LisName.getKey();
+                    break;
+                case 2:
+                    retType = LexiconEnum.LisSubName.getKey();
+                    break;
+                case 3:
+                    retType = LexiconEnum.PacsName.getKey();
+                    break;
+                case 4:
+                    retType = LexiconEnum.Disease.getKey();
+                    break;
+                case 5:
+                    retType = LexiconEnum.Medicine.getKey();
+                    break;
+                case 6:
+                    retType = LexiconEnum.Operation.getKey();
+                    break;
+                case 7:
+                    retType = LexiconEnum.Dept.getKey();
+                    break;
+                case 8:
+                    retType = LexiconEnum.Transfusion.getKey();
+                    break;
+                case 10:
+                    retType = LexiconEnum.Scale.getKey();
+                    break;
+                case 11:
+                    retType = LexiconEnum.Nurse.getKey();
+                    break;
+                case 12:
+                    retType = LexiconEnum.Tcmdisease.getKey();
+                    break;
+                case 13:
+                    retType = LexiconEnum.Tcmsyndrome.getKey();
+                    break;
+                case 14:
+                    retType = LexiconEnum.Anesthesia.getKey();
+                    break;
+                case 15:
+                    retType = LexiconEnum.Form.getKey();
+                    break;
+                case 16:
+                    retType = LexiconEnum.AdministrationRoute.getKey();
+                default:
+                    break;
+            }
+        }
+        return retType;
+    }
+
+
+
+
+
+    /////////////////////////////////////////
+    public Map<String, KllisDetailDTO> getLisDetaisByNamesFac(KllisDetailVO kllisDetailVO) {
+        List<KllisDetailDTO> list = this.getLisDetaisByNames(kllisDetailVO);
+        Map<String, KllisDetailDTO> res = EntityUtil.makeEntityMap(list, "libName");
+        return res;
+    }
+
+}

+ 0 - 0
mdsp-service/src/main/java/com/lantone/facade/med/KlDiseaseFacade.java


Some files were not shown because too many files changed in this diff