Przeglądaj źródła

Merge branch 'develop' into dev/scale_preserve20210511

gaodm 4 lat temu
rodzic
commit
9b220a78be
69 zmienionych plików z 3182 dodań i 434 usunięć
  1. 819 0
      doc/008.20210512中医CDSS功能/cdss_init.sql
  2. 57 0
      doc/008.20210512中医CDSS功能/med2021_init.sql
  3. 19 0
      doc/008.20210520推理调整/cdss.sql
  4. 7 0
      pom.xml
  5. 1 0
      src/main/java/com/diagbot/aggregate/PushNewAggregate.java
  6. 15 31
      src/main/java/com/diagbot/config/CacheDeleteInit.java
  7. 18 0
      src/main/java/com/diagbot/dto/AnesthesiaInfoDTO.java
  8. 16 0
      src/main/java/com/diagbot/dto/CustomDictionaryDTO.java
  9. 17 0
      src/main/java/com/diagbot/dto/IndexBatchDTO.java
  10. 1 0
      src/main/java/com/diagbot/dto/IndexDTO.java
  11. 1 0
      src/main/java/com/diagbot/dto/NeoPushDTO.java
  12. 13 0
      src/main/java/com/diagbot/dto/RetrievalDTO.java
  13. 23 0
      src/main/java/com/diagbot/dto/TcmdiseaseInfoDTO.java
  14. 23 0
      src/main/java/com/diagbot/dto/TcmsyndromeInfoDTO.java
  15. 68 0
      src/main/java/com/diagbot/entity/SysDeptPush.java
  16. 146 0
      src/main/java/com/diagbot/entity/TcmDisease.java
  17. 146 0
      src/main/java/com/diagbot/entity/TcmSyndrome.java
  18. 158 0
      src/main/java/com/diagbot/entity/TranOperationConfig.java
  19. 2 1
      src/main/java/com/diagbot/enums/DiagnoseTypeEnum.java
  20. 5 0
      src/main/java/com/diagbot/enums/LexiconEnum.java
  21. 3 1
      src/main/java/com/diagbot/enums/PushRelationTypeEnum.java
  22. 3 3
      src/main/java/com/diagbot/enums/RedisEnum.java
  23. 29 14
      src/main/java/com/diagbot/facade/CacheFacade.java
  24. 510 63
      src/main/java/com/diagbot/facade/CommonFacade.java
  25. 12 0
      src/main/java/com/diagbot/facade/ConceptInfoFacade.java
  26. 14 0
      src/main/java/com/diagbot/facade/DeptPushFacade.java
  27. 30 41
      src/main/java/com/diagbot/facade/IndicationFacade.java
  28. 72 5
      src/main/java/com/diagbot/facade/KlConceptFacade.java
  29. 28 1
      src/main/java/com/diagbot/facade/MedRetrievalFacade.java
  30. 73 0
      src/main/java/com/diagbot/facade/NLPFacade.java
  31. 4 211
      src/main/java/com/diagbot/facade/NeoFacade.java
  32. 63 26
      src/main/java/com/diagbot/facade/PushFacade.java
  33. 13 0
      src/main/java/com/diagbot/facade/TcmDiseaseFacade.java
  34. 13 0
      src/main/java/com/diagbot/facade/TcmSyndromeFacade.java
  35. 57 0
      src/main/java/com/diagbot/facade/TranOperationConfigFacade.java
  36. 4 1
      src/main/java/com/diagbot/mapper/ConceptInfoMapper.java
  37. 16 0
      src/main/java/com/diagbot/mapper/SysDeptPushMapper.java
  38. 16 0
      src/main/java/com/diagbot/mapper/TcmDiseaseMapper.java
  39. 16 0
      src/main/java/com/diagbot/mapper/TcmSyndromeMapper.java
  40. 16 0
      src/main/java/com/diagbot/mapper/TranOperationConfigMapper.java
  41. 30 1
      src/main/java/com/diagbot/process/PushProcess.java
  42. 4 8
      src/main/java/com/diagbot/rule/GroupRule.java
  43. 4 1
      src/main/java/com/diagbot/service/ConceptInfoService.java
  44. 16 0
      src/main/java/com/diagbot/service/SysDeptPushService.java
  45. 16 0
      src/main/java/com/diagbot/service/TcmDiseaseService.java
  46. 16 0
      src/main/java/com/diagbot/service/TcmSyndromeService.java
  47. 16 0
      src/main/java/com/diagbot/service/TranOperationConfigService.java
  48. 6 0
      src/main/java/com/diagbot/service/impl/ConceptInfoServiceImpl.java
  49. 22 0
      src/main/java/com/diagbot/service/impl/SysDeptPushServiceImpl.java
  50. 20 0
      src/main/java/com/diagbot/service/impl/TcmDiseaseServiceImpl.java
  51. 20 0
      src/main/java/com/diagbot/service/impl/TcmSyndromeServiceImpl.java
  52. 22 0
      src/main/java/com/diagbot/service/impl/TranOperationConfigServiceImpl.java
  53. 17 0
      src/main/java/com/diagbot/util/CoreUtil.java
  54. 49 11
      src/main/java/com/diagbot/util/ReflectUtil.java
  55. 3 1
      src/main/java/com/diagbot/vo/PushNewVO.java
  56. 27 6
      src/main/java/com/diagbot/web/CacheController.java
  57. 38 0
      src/main/java/com/diagbot/web/CrfController.java
  58. 44 0
      src/main/java/com/diagbot/web/NLPController.java
  59. 5 4
      src/main/java/com/diagbot/web/RetrievalController.java
  60. 1 1
      src/main/java/com/diagbot/web/TestController.java
  61. 17 0
      src/main/resources/mapper/ConceptInfoMapper.xml
  62. 75 0
      src/main/resources/mapper/KlConceptMapper.xml
  63. 1 1
      src/main/resources/mapper/KlRelationMapper.xml
  64. 18 0
      src/main/resources/mapper/SysDeptPushMapper.xml
  65. 18 0
      src/main/resources/mapper/TcmDiseaseMapper.xml
  66. 18 0
      src/main/resources/mapper/TcmSyndromeMapper.xml
  67. 19 0
      src/main/resources/mapper/TranOperationConfigMapper.xml
  68. 2 2
      src/test/java/com/diagbot/CodeGeneration.java
  69. 91 0
      src/test/java/com/diagbot/PrintUtil.java

+ 819 - 0
doc/008.20210512中医CDSS功能/cdss_init.sql

@@ -0,0 +1,819 @@
+USE `cdss`;
+
+-- DROP TABLE IF EXISTS `tran_sys_set`;
+-- CREATE TABLE `tran_sys_set` (
+--   `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+--   `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+--   `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+--   `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+--   `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+--   `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+--   `hospital_id` bigint(20) NOT NULL COMMENT '医院id',
+--   `name` varchar(100) DEFAULT NULL COMMENT '配置名称',
+--   `code` varchar(100) DEFAULT NULL COMMENT '配置编码',
+--   `value` varchar(255) DEFAULT NULL,
+--   `remark` varchar(128) DEFAULT NULL COMMENT '备注',
+--   PRIMARY KEY (`id`) USING BTREE,
+--   KEY `idx_hospital_id` (`hospital_id`) USING BTREE
+-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='医院所有配置信息';
+
+DROP TABLE IF EXISTS `tran_tcmdisease_config`;
+CREATE TABLE `tran_tcmdisease_config` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `hospital_id` bigint(20) NOT NULL COMMENT '医院id',
+  `his_name` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT '医院项目名称',
+  `unique_name` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT '标准名称',
+  `unique_code` varchar(255) DEFAULT NULL COMMENT '标准编码',
+  PRIMARY KEY (`id`) USING BTREE,
+  KEY `idx_his_name` (`hospital_id`,`his_name`) USING BTREE,
+  KEY `idx_unique_name` (`hospital_id`,`unique_name`) USING BTREE,
+  KEY `idx_hospital_id` (`hospital_id`) USING BTREE,
+  KEY `idx_cnt` (`is_deleted`,`hospital_id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='中医疾病映射表';
+
+DROP TABLE IF EXISTS `tran_tcmsyndrome_config`;
+CREATE TABLE `tran_tcmsyndrome_config` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `hospital_id` bigint(20) NOT NULL COMMENT '医院id',
+  `his_name` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT '医院项目名称',
+  `unique_name` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT '标准名称',
+  `unique_code` varchar(255) DEFAULT NULL COMMENT '标准编码',
+  PRIMARY KEY (`id`),
+  KEY `idx_his_name` (`hospital_id`,`his_name`) USING BTREE,
+  KEY `idx_unique_name` (`hospital_id`,`unique_name`) USING BTREE,
+  KEY `idx_hospital_id` (`hospital_id`) USING BTREE,
+  KEY `idx_cnt` (`is_deleted`,`hospital_id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='中医证候映射表';
+
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : 192.168.2.236
+ Source Server Type    : MySQL
+ Source Server Version : 50731
+ Source Host           : 192.168.2.236:3306
+ Source Schema         : cdss
+
+ Target Server Type    : MySQL
+ Target Server Version : 50731
+ File Encoding         : 65001
+
+ Date: 14/05/2021 15:58:21
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu`;
+CREATE TABLE `sys_menu`  (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime(0) NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime(0) NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '菜单名称',
+  `parent_id` bigint(20) NOT NULL DEFAULT -1 COMMENT '-1:表示顶级,其他值表示上级菜单的id',
+  `code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '编码,与前端对应',
+  `order_no` int(11) NOT NULL DEFAULT 0 COMMENT '排序,从小到大',
+  `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '系统菜单' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_menu
+-- ----------------------------
+INSERT INTO `sys_menu` VALUES (1, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护', -1, 'CDSS-YXSYK', 1, '');
+INSERT INTO `sys_menu` VALUES (2, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '系统配置', -1, 'CDSS-XTPZ', 2, '');
+INSERT INTO `sys_menu` VALUES (3, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '诊断关联维护', 1, 'YXSYK-ZDGLWH', 2, '医学术语库维护-诊断关联维护');
+INSERT INTO `sys_menu` VALUES (4, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '检验关联维护', 1, 'YXSYK-JYGLWH', 3, '医学术语库维护-检验关联维护');
+INSERT INTO `sys_menu` VALUES (5, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '检查关联维护', 1, 'YXSYK-JCGLWH', 4, '医学术语库维护-检验关联维护-检查关联维护');
+INSERT INTO `sys_menu` VALUES (6, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '药品关联维护', 1, 'YXSYK-YPGLWH', 5, '');
+INSERT INTO `sys_menu` VALUES (7, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '手术/操作关联维护', 1, 'YXSYK-SSCZGLWH', 6, '');
+INSERT INTO `sys_menu` VALUES (8, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室关联维护', 1, 'YXSYK-KSGLWH', 8, '');
+INSERT INTO `sys_menu` VALUES (9, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语静态知识维护', 1, 'YXSYK-JTZSWH', 1, '');
+INSERT INTO `sys_menu` VALUES (10, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '关联维护设置', 1, 'YXSYK-GLWH', 100, '');
+INSERT INTO `sys_menu` VALUES (11, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '电子病历方案配置', 2, 'XTPZ-DZBLFAPZ', 1, '');
+INSERT INTO `sys_menu` VALUES (12, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '输血关联维护', 1, 'YXSYK-SXGLWH', 7, '');
+INSERT INTO `sys_menu` VALUES (13, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '规则维护', -1, 'CDSS-GZWH', 3, '规则维护');
+INSERT INTO `sys_menu` VALUES (14, 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '开单合理性规则维护', 13, 'GZWH-KDHLXGZWH', 1, '规则维护-开单合理性规则维护');
+INSERT INTO `sys_menu` VALUES (15, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '规则维护', 13, 'GZWH-GZWH', 1, '规则维护-规则维护');
+INSERT INTO `sys_menu` VALUES (16, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '量表关联维护', 1, 'YXSYK-LBGLWH', 9, '医学术语库维护-量表关联维护');
+INSERT INTO `sys_menu` VALUES (17, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '护理关联维护', 1, 'YXSYK-HLGLWH', 10, '医学术语库维护-护理关联维护');
+INSERT INTO `sys_menu` VALUES (18, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医疾病关联维护', 1, 'YXSYK-ZYJBGLWH', 11, '医学术语库维护-中医疾病关联维护');
+INSERT INTO `sys_menu` VALUES (19, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医证候关联维护', 1, 'YXSYK-ZYZHGLWH', 12, '医学术语库维护-中医证候关联维护');
+
+SET FOREIGN_KEY_CHECKS = 1;
+
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : 192.168.2.236
+ Source Server Type    : MySQL
+ Source Server Version : 50731
+ Source Host           : 192.168.2.236:3306
+ Source Schema         : cdss
+
+ Target Server Type    : MySQL
+ Target Server Version : 50731
+ File Encoding         : 65001
+
+ Date: 14/05/2021 15:58:33
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_permission
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_permission`;
+CREATE TABLE `sys_permission`  (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '资源ID',
+  `is_deleted` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime(0) NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime(0) NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '资源名称',
+  `code` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '资源编码',
+  `permissionUrl` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '资源Url',
+  `method` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'ALL' COMMENT '资源允许的请求方式',
+  `descritpion` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '资源描述',
+  `type` int(11) NULL DEFAULT 0 COMMENT 'token验证,0关,1开',
+  `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 96 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '系统资源表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_permission
+-- ----------------------------
+INSERT INTO `sys_permission` VALUES (1, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户账号-获取用户、医院、菜单信息', 'FUNC000001', '/sys/user/getUserOrgMenu', 'ALL', '基础功能-用户账号-获取用户、医院、菜单信息', 0, NULL);
+INSERT INTO `sys_permission` VALUES (2, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '修改密码', 'FUNC000002', '/sys/user/midifyPassword', 'ALL', '基础功能-修改密码', 0, NULL);
+INSERT INTO `sys_permission` VALUES (3, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '根据医院获取方案配置信息', 'FUNC000003', '/sys/plan/getSysPlanInfoDatas', 'ALL', '根据医院获取方案配置信息', 1, NULL);
+INSERT INTO `sys_permission` VALUES (4, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '诊断公表映射-映射关系是否已存在', 'FUNC000004', '/tran/diseaseConfig/isExistRecord', 'ALL', '诊断公表映射-映射关系是否已存在', 0, NULL);
+INSERT INTO `sys_permission` VALUES (5, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '诊断公表映射-保存或修改映射关系', 'FUNC000005', '/tran/diseaseConfig/saveOrUpdateRecord', 'ALL', '诊断公表映射-保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (6, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '诊断公表映射-批量保存或修改映射关系', 'FUNC000006', '/tran/diseaseConfig/saveOrUpdateRecords', 'ALL', '诊断公表映射-批量保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (7, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '诊断公表映射-删除映射关系', 'FUNC000007', '/tran/diseaseConfig/deleteRecord', 'ALL', '诊断公表映射-删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (8, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '诊断公表映射-批量删除映射关系', 'FUNC000008', '/tran/diseaseConfig/deleteRecords', 'ALL', '诊断公表映射-批量删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (9, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '诊断公表映射-公表数据导入', 'FUNC000009', '/tran/diseaseConfig/importExcel', 'ALL', '诊断公表映射-公表数据导入', 0, NULL);
+INSERT INTO `sys_permission` VALUES (10, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '诊断公表映射-数据导出', 'FUNC000010', '/tran/diseaseConfig/exportExcel', 'ALL', '诊断公表映射-数据导出', 0, NULL);
+INSERT INTO `sys_permission` VALUES (11, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '化验公表映射-映射关系是否已存在', 'FUNC000011', '/tran/lisConfig/isExistRecord', 'ALL', '化验公表映射-映射关系是否已存在', 0, NULL);
+INSERT INTO `sys_permission` VALUES (12, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '化验公表映射-保存或修改映射关系', 'FUNC000012', '/tran/lisConfig/saveOrUpdateRecord', 'ALL', '化验公表映射-保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (13, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '化验公表映射-批量保存或修改映射关系', 'FUNC000013', '/tran/lisConfig/saveOrUpdateRecords', 'ALL', '化验公表映射-批量保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (14, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '化验公表映射-删除映射关系', 'FUNC000014', '/tran/lisConfig/deleteRecord', 'ALL', '化验公表映射-删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (15, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '化验公表映射-批量删除映射关系', 'FUNC000015', '/tran/lisConfig/deleteRecords', 'ALL', '化验公表映射-批量删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (16, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '化验公表映射-公表数据导入', 'FUNC000016', '/tran/lisConfig/importExcel', 'ALL', '化验公表映射-公表数据导入', 0, NULL);
+INSERT INTO `sys_permission` VALUES (17, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '化验公表映射-数据导出', 'FUNC000017', '/tran/lisConfig/exportExcel', 'ALL', '化验公表映射-数据导出', 0, NULL);
+INSERT INTO `sys_permission` VALUES (18, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '辅检公表映射-映射关系是否已存在', 'FUNC000018', '/tran/pacsConfig/isExistRecord', 'ALL', '辅检公表映射-映射关系是否已存在', 0, NULL);
+INSERT INTO `sys_permission` VALUES (19, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '辅检公表映射-保存或修改映射关系', 'FUNC000019', '/tran/pacsConfig/saveOrUpdateRecord', 'ALL', '辅检公表映射-保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (20, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '辅检公表映射-批量保存或修改映射关系', 'FUNC000020', '/tran/pacsConfig/saveOrUpdateRecords', 'ALL', '辅检公表映射-批量保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (21, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '辅检公表映射-删除映射关系', 'FUNC000021', '/tran/pacsConfig/deleteRecord', 'ALL', '辅检公表映射-删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (22, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '辅检公表映射-批量删除映射关系', 'FUNC000022', '/tran/pacsConfig/deleteRecords', 'ALL', '辅检公表映射-批量删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (23, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '辅检公表映射-公表数据导入', 'FUNC000023', '/tran/pacsConfig/importExcel', 'ALL', '辅检公表映射-公表数据导入', 0, NULL);
+INSERT INTO `sys_permission` VALUES (24, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '辅检公表映射-数据导出', 'FUNC000024', '/tran/pacsConfig/exportExcel', 'ALL', '辅检公表映射-数据导出', 0, NULL);
+INSERT INTO `sys_permission` VALUES (25, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '药品公表映射-映射关系是否已存在', 'FUNC000025', '/tran/drugConfig/isExistRecord', 'ALL', '药品公表映射-映射关系是否已存在', 0, NULL);
+INSERT INTO `sys_permission` VALUES (26, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '药品公表映射-保存或修改映射关系', 'FUNC000026', '/tran/drugConfig/saveOrUpdateRecord', 'ALL', '药品公表映射-保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (27, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '药品公表映射-批量保存或修改映射关系', 'FUNC000027', '/tran/drugConfig/saveOrUpdateRecords', 'ALL', '药品公表映射-批量保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (28, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '药品公表映射-删除映射关系', 'FUNC000028', '/tran/drugConfig/deleteRecord', 'ALL', '药品公表映射-删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (29, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '药品公表映射-批量删除映射关系', 'FUNC000029', '/tran/drugConfig/deleteRecords', 'ALL', '药品公表映射-批量删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (30, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '药品公表映射-公表数据导入', 'FUNC000030', '/tran/drugConfig/importExcel', 'ALL', '药品公表映射-公表数据导入', 0, NULL);
+INSERT INTO `sys_permission` VALUES (31, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '药品公表映射-数据导出', 'FUNC000031', '/tran/drugConfig/exportExcel', 'ALL', '药品公表映射-数据导出', 0, NULL);
+INSERT INTO `sys_permission` VALUES (32, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '手术公表映射-映射关系是否已存在', 'FUNC000032', '/tran/operationConfig/isExistRecord', 'ALL', '手术公表映射-映射关系是否已存在', 0, NULL);
+INSERT INTO `sys_permission` VALUES (33, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '手术公表映射-保存或修改映射关系', 'FUNC000033', '/tran/operationConfig/saveOrUpdateRecord', 'ALL', '手术公表映射-保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (34, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '手术公表映射-批量保存或修改映射关系', 'FUNC000034', '/tran/operationConfig/saveOrUpdateRecords', 'ALL', '手术公表映射-批量保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (35, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '手术公表映射-删除映射关系', 'FUNC000035', '/tran/operationConfig/deleteRecord', 'ALL', '手术公表映射-删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (36, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '手术公表映射-批量删除映射关系', 'FUNC000036', '/tran/operationConfig/deleteRecords', 'ALL', '手术公表映射-批量删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (37, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '手术公表映射-公表数据导入', 'FUNC000037', '/tran/operationConfig/importExcel', 'ALL', '手术公表映射-公表数据导入', 0, NULL);
+INSERT INTO `sys_permission` VALUES (38, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '手术公表映射-数据导出', 'FUNC000038', '/tran/operationConfig/exportExcel', 'ALL', '手术公表映射-数据导出', 0, NULL);
+INSERT INTO `sys_permission` VALUES (39, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室公表映射-映射关系是否已存在', 'FUNC000039', '/tran/deptConfig/isExistRecord', 'ALL', '科室公表映射-映射关系是否已存在', 0, NULL);
+INSERT INTO `sys_permission` VALUES (40, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室公表映射-保存或修改映射关系', 'FUNC000040', '/tran/deptConfig/saveOrUpdateRecord', 'ALL', '科室公表映射-保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (41, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室公表映射-批量保存或修改映射关系', 'FUNC000041', '/tran/deptConfig/saveOrUpdateRecords', 'ALL', '科室公表映射-批量保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (42, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室公表映射-删除映射关系', 'FUNC000042', '/tran/deptConfig/deleteRecord', 'ALL', '科室公表映射-删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (43, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室公表映射-批量删除映射关系', 'FUNC000043', '/tran/deptConfig/deleteRecords', 'ALL', '科室公表映射-批量删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (44, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室公表映射-公表数据导入', 'FUNC000044', '/tran/deptConfig/importExcel', 'ALL', '科室公表映射-公表数据导入', 0, NULL);
+INSERT INTO `sys_permission` VALUES (45, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室公表映射-数据导出', 'FUNC000045', '/tran/deptConfig/exportExcel', 'ALL', '科室公表映射-数据导出', 0, NULL);
+INSERT INTO `sys_permission` VALUES (46, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '静态知识标准术语-医学术语检索-新增静态知识', 'FUNC000046', '/kl/conceptInfo/staticKnowledgeIndexWithoutInfo', 'ALL', '静态知识标准术语-医学术语检索-新增静态知识', 0, NULL);
+INSERT INTO `sys_permission` VALUES (47, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '静态知识标准术语-获取静态知识列表', 'FUNC000047', '/kl/conceptInfo/getPage', 'ALL', '静态知识标准术语-获取静态知识列表', 0, NULL);
+INSERT INTO `sys_permission` VALUES (48, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '静态知识标准术语-保存静态知识-新增或修改', 'FUNC000048', '/kl/conceptInfo/saveOrUpdateRecord', 'ALL', '静态知识标准术语-保存静态知识-新增或修改', 0, NULL);
+INSERT INTO `sys_permission` VALUES (49, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '静态知识标准术语-静态知识启用禁用', 'FUNC000049', '/kl/conceptInfo/changeStatus', 'ALL', '静态知识标准术语-静态知识启用禁用', 0, NULL);
+INSERT INTO `sys_permission` VALUES (50, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '静态知识标准术语-静态知识是否存在', 'FUNC000050', '/kl/conceptInfo/isExist', 'ALL', '静态知识标准术语-静态知识是否存在', 0, NULL);
+INSERT INTO `sys_permission` VALUES (51, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '静态知识标准术语-根据术语id获取静态信息', 'FUNC000051', '/kl/conceptInfo/getRecordById', 'ALL', '静态知识标准术语-根据术语id获取静态信息', 0, NULL);
+INSERT INTO `sys_permission` VALUES (52, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '关联维护设置-医院信息——修改医院信息', 'FUNC000052', '/tran/hospitalInfo/saveRecord', 'ALL', '关联维护设置-医院信息——修改医院信息', 0, NULL);
+INSERT INTO `sys_permission` VALUES (53, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '方案配置信息-保存更新方案配置信息', 'FUNC000053', '/sys/plan/savePlanInfoDatas', 'ALL', '方案配置信息-保存更新方案配置信息', 0, NULL);
+INSERT INTO `sys_permission` VALUES (54, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '方案配置信息-删除方案配置信息', 'FUNC000054', '/sys/plan/cancelPlanDatas', 'ALL', '方案配置信息-删除方案配置信息', 0, NULL);
+INSERT INTO `sys_permission` VALUES (55, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '方案配置信息-停用启用方案配置', 'FUNC000055', '/sys/plan/revStopPlans', 'ALL', '方案配置信息-停用启用方案配置', 0, NULL);
+INSERT INTO `sys_permission` VALUES (56, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '方案配置信息-获取默认方案配置', 'FUNC000056', '/sys/plan/getDefaultPlans', 'ALL', '方案配置信息-获取默认方案配置', 0, NULL);
+INSERT INTO `sys_permission` VALUES (57, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '方案配置信息明细-根据医院编码获取配置信息明细', 'FUNC000057', '/sys/planDetail/getPlanDetailDatas', 'ALL', '方案配置信息明细-根据医院编码获取配置信息明细', 0, NULL);
+INSERT INTO `sys_permission` VALUES (58, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '方案配置信息明细-保存更新方案配置信息明细', 'FUNC000058', '/sys/planDetail/savePlanDetails', 'ALL', '方案配置信息明细-保存更新方案配置信息明细', 0, NULL);
+INSERT INTO `sys_permission` VALUES (59, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '方案配置信息明细-删除方案配置明细', 'FUNC000059', '/sys/planDetail/cancelPlanDetails', 'ALL', '方案配置信息明细-删除方案配置明细', 0, NULL);
+INSERT INTO `sys_permission` VALUES (60, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '方案配置信息明细-停用启用方案配置明细', 'FUNC000060', '/sys/planDetail/revStopPlanDetails', 'ALL', '方案配置信息明细-停用启用方案配置明细', 0, NULL);
+INSERT INTO `sys_permission` VALUES (61, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '输血公表映射-映射关系是否已存在', 'FUNC000061', '/tran/transfusionConfig/isExistRecord', 'ALL', '输血公表映射-映射关系是否已存在', 0, NULL);
+INSERT INTO `sys_permission` VALUES (62, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '输血公表映射-保存或修改映射关系', 'FUNC000062', '/tran/transfusionConfig/saveOrUpdateRecord', 'ALL', '输血公表映射-保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (63, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '输血公表映射-批量保存或修改映射关系', 'FUNC000063', '/tran/transfusionConfig/saveOrUpdateRecords', 'ALL', '输血公表映射-批量保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (64, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '输血公表映射-删除映射关系', 'FUNC000064', '/tran/transfusionConfig/deleteRecord', 'ALL', '输血公表映射-删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (65, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '输血公表映射-批量删除映射关系', 'FUNC000065', '/tran/transfusionConfig/deleteRecords', 'ALL', '输血公表映射-批量删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (66, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '输血公表映射-公表数据导入', 'FUNC000066', '/tran/transfusionConfig/importExcel', 'ALL', '输血公表映射-公表数据导入', 0, NULL);
+INSERT INTO `sys_permission` VALUES (67, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '输血公表映射-数据导出', 'FUNC000067', '/tran/transfusionConfig/exportExcel', 'ALL', '输血公表映射-数据导出', 0, NULL);
+INSERT INTO `sys_permission` VALUES (68, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '量表公表映射-映射关系是否已存在', 'FUNC000068', '/tran/scaleConfig/isExistRecord', 'ALL', '量表公表映射-映射关系是否已存在', 0, NULL);
+INSERT INTO `sys_permission` VALUES (69, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '量表公表映射-保存或修改映射关系', 'FUNC000069', '/tran/scaleConfig/saveOrUpdateRecord', 'ALL', '量表公表映射-保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (70, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '量表公表映射-批量保存或修改映射关系', 'FUNC000070', '/tran/scaleConfig/saveOrUpdateRecords', 'ALL', '量表公表映射-批量保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (71, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '量表公表映射-删除映射关系', 'FUNC000071', '/tran/scaleConfig/deleteRecord', 'ALL', '量表公表映射-删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (72, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '量表公表映射-批量删除映射关系', 'FUNC000072', '/tran/scaleConfig/deleteRecords', 'ALL', '量表公表映射-批量删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (73, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '量表公表映射-公表数据导入', 'FUNC000073', '/tran/scaleConfig/importExcel', 'ALL', '量表公表映射-公表数据导入', 0, NULL);
+INSERT INTO `sys_permission` VALUES (74, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '量表公表映射-数据导出', 'FUNC000074', '/tran/scaleConfig/exportExcel', 'ALL', '量表公表映射-数据导出', 0, NULL);
+INSERT INTO `sys_permission` VALUES (75, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '护理公表映射-映射关系是否已存在', 'FUNC000075', '/tran/nurseConfig/isExistRecord', 'ALL', '护理公表映射-映射关系是否已存在', 0, NULL);
+INSERT INTO `sys_permission` VALUES (76, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '护理公表映射-保存或修改映射关系', 'FUNC000076', '/tran/nurseConfig/saveOrUpdateRecord', 'ALL', '护理公表映射-保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (77, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '护理公表映射-批量保存或修改映射关系', 'FUNC000077', '/tran/nurseConfig/saveOrUpdateRecords', 'ALL', '护理公表映射-批量保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (78, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '护理公表映射-删除映射关系', 'FUNC000078', '/tran/nurseConfig/deleteRecord', 'ALL', '护理公表映射-删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (79, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '护理公表映射-批量删除映射关系', 'FUNC000079', '/tran/nurseConfig/deleteRecords', 'ALL', '护理公表映射-批量删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (80, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '护理公表映射-公表数据导入', 'FUNC000080', '/tran/nurseConfig/importExcel', 'ALL', '护理公表映射-公表数据导入', 0, NULL);
+INSERT INTO `sys_permission` VALUES (81, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '护理公表映射-数据导出', 'FUNC000081', '/tran/nurseConfig/exportExcel', 'ALL', '护理公表映射-数据导出', 0, NULL);
+INSERT INTO `sys_permission` VALUES (82, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医疾病公表映射-映射关系是否已存在', 'FUNC000082', '/tran/tcmdiseaseConfig/isExistRecord', 'ALL', '中医疾病公表映射-映射关系是否已存在', 0, NULL);
+INSERT INTO `sys_permission` VALUES (83, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医疾病公表映射-保存或修改映射关系', 'FUNC000083', '/tran/tcmdiseaseConfig/saveOrUpdateRecord', 'ALL', '中医疾病公表映射-保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (84, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医疾病公表映射-批量保存或修改映射关系', 'FUNC000084', '/tran/tcmdiseaseConfig/saveOrUpdateRecords', 'ALL', '中医疾病公表映射-批量保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (85, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医疾病公表映射-删除映射关系', 'FUNC000085', '/tran/tcmdiseaseConfig/deleteRecord', 'ALL', '中医疾病公表映射-删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (86, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医疾病公表映射-批量删除映射关系', 'FUNC000086', '/tran/tcmdiseaseConfig/deleteRecords', 'ALL', '中医疾病公表映射-批量删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (87, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医疾病公表映射-公表数据导入', 'FUNC000087', '/tran/tcmdiseaseConfig/importExcel', 'ALL', '中医疾病公表映射-公表数据导入', 0, NULL);
+INSERT INTO `sys_permission` VALUES (88, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医疾病公表映射-数据导出', 'FUNC000088', '/tran/tcmdiseaseConfig/exportExcel', 'ALL', '中医疾病公表映射-数据导出', 0, NULL);
+INSERT INTO `sys_permission` VALUES (89, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医证候公表映射-映射关系是否已存在', 'FUNC000089', '/tran/tcmsyndromeConfig/isExistRecord', 'ALL', '中医证候公表映射-映射关系是否已存在', 0, NULL);
+INSERT INTO `sys_permission` VALUES (90, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医证候公表映射-保存或修改映射关系', 'FUNC000090', '/tran/tcmsyndromeConfig/saveOrUpdateRecord', 'ALL', '中医证候公表映射-保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (91, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医证候公表映射-批量保存或修改映射关系', 'FUNC000091', '/tran/tcmsyndromeConfig/saveOrUpdateRecords', 'ALL', '中医证候公表映射-批量保存或修改映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (92, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医证候公表映射-删除映射关系', 'FUNC000092', '/tran/tcmsyndromeConfig/deleteRecord', 'ALL', '中医证候公表映射-删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (93, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医证候公表映射-批量删除映射关系', 'FUNC000093', '/tran/tcmsyndromeConfig/deleteRecords', 'ALL', '中医证候公表映射-批量删除映射关系', 0, NULL);
+INSERT INTO `sys_permission` VALUES (94, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医证候公表映射-公表数据导入', 'FUNC000094', '/tran/tcmsyndromeConfig/importExcel', 'ALL', '中医证候公表映射-公表数据导入', 0, NULL);
+INSERT INTO `sys_permission` VALUES (95, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医证候公表映射-数据导出', 'FUNC000095', '/tran/tcmsyndromeConfig/exportExcel', 'ALL', '中医证候公表映射-数据导出', 0, NULL);
+
+SET FOREIGN_KEY_CHECKS = 1;
+
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : 192.168.2.236
+ Source Server Type    : MySQL
+ Source Server Version : 50731
+ Source Host           : 192.168.2.236:3306
+ Source Schema         : cdss
+
+ Target Server Type    : MySQL
+ Target Server Version : 50731
+ File Encoding         : 65001
+
+ Date: 14/05/2021 16:00:04
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_menu_permission
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu_permission`;
+CREATE TABLE `sys_menu_permission`  (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime(0) NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime(0) NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `menu_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '菜单id',
+  `permission_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '系统资源id',
+  `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 93 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '菜单和系统资源的映射表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_menu_permission
+-- ----------------------------
+INSERT INTO `sys_menu_permission` VALUES (1, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 3, 4, '基础功能-修改密码');
+INSERT INTO `sys_menu_permission` VALUES (2, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 3, 5, '根据医院获取方案配置信息');
+INSERT INTO `sys_menu_permission` VALUES (3, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 3, 6, '诊断公表映射-映射关系是否已存在');
+INSERT INTO `sys_menu_permission` VALUES (4, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 3, 7, '诊断公表映射-保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (5, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 3, 8, '诊断公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (6, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 3, 9, '诊断公表映射-删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (7, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 3, 10, '诊断公表映射-批量删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (8, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 4, 11, '化验公表映射-映射关系是否已存在');
+INSERT INTO `sys_menu_permission` VALUES (9, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 4, 12, '化验公表映射-保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (10, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 4, 13, '化验公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (11, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 4, 14, '化验公表映射-删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (12, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 4, 15, '化验公表映射-批量删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (13, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 4, 16, '化验公表映射-公表数据导入');
+INSERT INTO `sys_menu_permission` VALUES (14, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 4, 17, '化验公表映射-数据导出');
+INSERT INTO `sys_menu_permission` VALUES (15, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 5, 18, '辅检公表映射-映射关系是否已存在');
+INSERT INTO `sys_menu_permission` VALUES (16, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 5, 19, '辅检公表映射-保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (17, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 5, 20, '辅检公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (18, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 5, 21, '辅检公表映射-删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (19, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 5, 22, '辅检公表映射-批量删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (20, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 5, 23, '辅检公表映射-公表数据导入');
+INSERT INTO `sys_menu_permission` VALUES (21, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 5, 24, '辅检公表映射-数据导出');
+INSERT INTO `sys_menu_permission` VALUES (22, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 6, 25, '药品公表映射-映射关系是否已存在');
+INSERT INTO `sys_menu_permission` VALUES (23, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 6, 26, '药品公表映射-保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (24, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 6, 27, '药品公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (25, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 6, 28, '药品公表映射-删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (26, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 6, 29, '药品公表映射-批量删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (27, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 6, 30, '药品公表映射-公表数据导入');
+INSERT INTO `sys_menu_permission` VALUES (28, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 6, 31, '药品公表映射-数据导出');
+INSERT INTO `sys_menu_permission` VALUES (29, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 7, 32, '手术公表映射-映射关系是否已存在');
+INSERT INTO `sys_menu_permission` VALUES (30, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 7, 33, '手术公表映射-保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (31, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 7, 34, '手术公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (32, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 7, 35, '手术公表映射-删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (33, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 7, 36, '手术公表映射-批量删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (34, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 7, 37, '手术公表映射-公表数据导入');
+INSERT INTO `sys_menu_permission` VALUES (35, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 7, 38, '手术公表映射-数据导出');
+INSERT INTO `sys_menu_permission` VALUES (36, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 8, 39, '科室公表映射-映射关系是否已存在');
+INSERT INTO `sys_menu_permission` VALUES (37, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 8, 40, '科室公表映射-保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (38, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 8, 41, '科室公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (39, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 8, 42, '科室公表映射-删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (40, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 8, 43, '科室公表映射-批量删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (41, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 8, 44, '科室公表映射-公表数据导入');
+INSERT INTO `sys_menu_permission` VALUES (42, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 8, 45, '科室公表映射-数据导出');
+INSERT INTO `sys_menu_permission` VALUES (43, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 9, 46, '静态知识标准术语-医学术语检索-新增静态知识');
+INSERT INTO `sys_menu_permission` VALUES (44, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 9, 47, '静态知识标准术语-获取静态知识列表');
+INSERT INTO `sys_menu_permission` VALUES (45, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 9, 48, '静态知识标准术语-保存静态知识-新增或修改');
+INSERT INTO `sys_menu_permission` VALUES (46, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 9, 49, '静态知识标准术语-静态知识启用禁用');
+INSERT INTO `sys_menu_permission` VALUES (47, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 9, 50, '静态知识标准术语-静态知识是否存在');
+INSERT INTO `sys_menu_permission` VALUES (48, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 9, 51, '静态知识标准术语-根据术语id获取静态信息');
+INSERT INTO `sys_menu_permission` VALUES (49, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 10, 52, '关联维护设置-医院信息——修改医院信息');
+INSERT INTO `sys_menu_permission` VALUES (50, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 11, 53, '方案配置信息-保存更新方案配置信息');
+INSERT INTO `sys_menu_permission` VALUES (51, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 11, 54, '方案配置信息-删除方案配置信息');
+INSERT INTO `sys_menu_permission` VALUES (52, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 11, 55, '方案配置信息-停用启用方案配置');
+INSERT INTO `sys_menu_permission` VALUES (53, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 11, 56, '方案配置信息-获取默认方案配置');
+INSERT INTO `sys_menu_permission` VALUES (54, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 11, 57, '方案配置信息明细-根据医院编码获取配置信息明细');
+INSERT INTO `sys_menu_permission` VALUES (55, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 11, 58, '方案配置信息明细-保存更新方案配置信息明细');
+INSERT INTO `sys_menu_permission` VALUES (56, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 11, 59, '方案配置信息明细-删除方案配置明细');
+INSERT INTO `sys_menu_permission` VALUES (57, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 11, 60, '方案配置信息明细-停用启用方案配置明细');
+INSERT INTO `sys_menu_permission` VALUES (58, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 12, 61, '输血公表映射-映射关系是否已存在');
+INSERT INTO `sys_menu_permission` VALUES (59, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 12, 62, '输血公表映射-保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (60, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 12, 63, '输血公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (61, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 12, 64, '输血公表映射-删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (62, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 12, 65, '输血公表映射-批量删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (63, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 12, 66, '输血公表映射-公表数据导入');
+INSERT INTO `sys_menu_permission` VALUES (64, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 12, 67, '输血公表映射-数据导出');
+INSERT INTO `sys_menu_permission` VALUES (65, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 16, 68, '量表公表映射-映射关系是否已存在');
+INSERT INTO `sys_menu_permission` VALUES (66, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 16, 69, '量表公表映射-保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (67, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 16, 70, '量表公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (68, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 16, 71, '量表公表映射-删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (69, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 16, 72, '量表公表映射-批量删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (70, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 16, 73, '量表公表映射-公表数据导入');
+INSERT INTO `sys_menu_permission` VALUES (71, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 16, 74, '量表公表映射-数据导出');
+INSERT INTO `sys_menu_permission` VALUES (72, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 17, 75, '护理公表映射-映射关系是否已存在');
+INSERT INTO `sys_menu_permission` VALUES (73, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 17, 76, '护理公表映射-保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (74, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 17, 77, '护理公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (75, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 17, 78, '护理公表映射-删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (76, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 17, 79, '护理公表映射-批量删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (77, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 17, 80, '护理公表映射-公表数据导入');
+INSERT INTO `sys_menu_permission` VALUES (78, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 17, 81, '护理公表映射-数据导出');
+INSERT INTO `sys_menu_permission` VALUES (79, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 18, 82, '中医疾病公表映射-映射关系是否已存在');
+INSERT INTO `sys_menu_permission` VALUES (80, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 18, 83, '中医疾病公表映射-保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (81, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 18, 84, '中医疾病公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (82, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 18, 85, '中医疾病公表映射-删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (83, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 18, 86, '中医疾病公表映射-批量删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (84, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 18, 87, '中医疾病公表映射-公表数据导入');
+INSERT INTO `sys_menu_permission` VALUES (85, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 18, 88, '中医疾病公表映射-数据导出');
+INSERT INTO `sys_menu_permission` VALUES (86, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 19, 89, '中医证候公表映射-映射关系是否已存在');
+INSERT INTO `sys_menu_permission` VALUES (87, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 19, 90, '中医证候公表映射-保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (88, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 19, 91, '中医证候公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_menu_permission` VALUES (89, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 19, 92, '中医证候公表映射-删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (90, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 19, 93, '中医证候公表映射-批量删除映射关系');
+INSERT INTO `sys_menu_permission` VALUES (91, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 19, 94, '中医证候公表映射-公表数据导入');
+INSERT INTO `sys_menu_permission` VALUES (92, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 19, 95, '中医证候公表映射-数据导出');
+
+SET FOREIGN_KEY_CHECKS = 1;
+
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : 192.168.2.236
+ Source Server Type    : MySQL
+ Source Server Version : 50731
+ Source Host           : 192.168.2.236:3306
+ Source Schema         : cdss
+
+ Target Server Type    : MySQL
+ Target Server Version : 50731
+ File Encoding         : 65001
+
+ Date: 14/05/2021 15:59:53
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_role_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role_menu`;
+CREATE TABLE `sys_role_menu`  (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime(0) NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime(0) NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `role_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '角色id',
+  `menu_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '菜单id',
+  `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色和菜单的映射表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_role_menu
+-- ----------------------------
+INSERT INTO `sys_role_menu` VALUES (1, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 1, NULL);
+INSERT INTO `sys_role_menu` VALUES (2, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 2, NULL);
+INSERT INTO `sys_role_menu` VALUES (3, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 3, NULL);
+INSERT INTO `sys_role_menu` VALUES (4, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 4, NULL);
+INSERT INTO `sys_role_menu` VALUES (5, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 5, NULL);
+INSERT INTO `sys_role_menu` VALUES (6, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 6, NULL);
+INSERT INTO `sys_role_menu` VALUES (7, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 7, NULL);
+INSERT INTO `sys_role_menu` VALUES (8, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 8, NULL);
+INSERT INTO `sys_role_menu` VALUES (9, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 9, NULL);
+INSERT INTO `sys_role_menu` VALUES (10, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 10, NULL);
+INSERT INTO `sys_role_menu` VALUES (11, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 11, NULL);
+INSERT INTO `sys_role_menu` VALUES (12, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 12, NULL);
+INSERT INTO `sys_role_menu` VALUES (13, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 13, NULL);
+INSERT INTO `sys_role_menu` VALUES (14, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 14, NULL);
+INSERT INTO `sys_role_menu` VALUES (15, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 15, NULL);
+INSERT INTO `sys_role_menu` VALUES (16, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 16, NULL);
+INSERT INTO `sys_role_menu` VALUES (17, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 17, NULL);
+INSERT INTO `sys_role_menu` VALUES (18, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 18, NULL);
+INSERT INTO `sys_role_menu` VALUES (19, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 19, NULL);
+
+SET FOREIGN_KEY_CHECKS = 1;
+
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : 192.168.2.236
+ Source Server Type    : MySQL
+ Source Server Version : 50731
+ Source Host           : 192.168.2.236:3306
+ Source Schema         : cdss
+
+ Target Server Type    : MySQL
+ Target Server Version : 50731
+ File Encoding         : 65001
+
+ Date: 14/05/2021 16:00:18
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_role_permission
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role_permission`;
+CREATE TABLE `sys_role_permission`  (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime(0) NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime(0) NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `role_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '角色id',
+  `permission_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '资源id',
+  `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 96 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色和资源的映射表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_role_permission
+-- ----------------------------
+INSERT INTO `sys_role_permission` VALUES (1, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 1, '基础功能-用户账号-获取用户、医院、菜单信息');
+INSERT INTO `sys_role_permission` VALUES (2, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 2, '修改密码');
+INSERT INTO `sys_role_permission` VALUES (3, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 3, '根据医院获取方案配置信息');
+INSERT INTO `sys_role_permission` VALUES (4, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 4, '诊断公表映射-映射关系是否已存在');
+INSERT INTO `sys_role_permission` VALUES (5, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 5, '诊断公表映射-保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (6, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 6, '诊断公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (7, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 7, '诊断公表映射-删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (8, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 8, '诊断公表映射-批量删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (9, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 9, '诊断公表映射-公表数据导入');
+INSERT INTO `sys_role_permission` VALUES (10, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 10, '诊断公表映射-数据导出');
+INSERT INTO `sys_role_permission` VALUES (11, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 11, '化验公表映射-映射关系是否已存在');
+INSERT INTO `sys_role_permission` VALUES (12, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 12, '化验公表映射-保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (13, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 13, '化验公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (14, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 14, '化验公表映射-删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (15, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 15, '化验公表映射-批量删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (16, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 16, '化验公表映射-公表数据导入');
+INSERT INTO `sys_role_permission` VALUES (17, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 17, '化验公表映射-数据导出');
+INSERT INTO `sys_role_permission` VALUES (18, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 18, '辅检公表映射-映射关系是否已存在');
+INSERT INTO `sys_role_permission` VALUES (19, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 19, '辅检公表映射-保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (20, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 20, '辅检公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (21, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 21, '辅检公表映射-删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (22, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 22, '辅检公表映射-批量删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (23, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 23, '辅检公表映射-公表数据导入');
+INSERT INTO `sys_role_permission` VALUES (24, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 24, '辅检公表映射-数据导出');
+INSERT INTO `sys_role_permission` VALUES (25, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 25, '药品公表映射-映射关系是否已存在');
+INSERT INTO `sys_role_permission` VALUES (26, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 26, '药品公表映射-保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (27, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 27, '药品公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (28, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 28, '药品公表映射-删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (29, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 29, '药品公表映射-批量删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (30, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 30, '药品公表映射-公表数据导入');
+INSERT INTO `sys_role_permission` VALUES (31, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 31, '药品公表映射-数据导出');
+INSERT INTO `sys_role_permission` VALUES (32, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 32, '手术公表映射-映射关系是否已存在');
+INSERT INTO `sys_role_permission` VALUES (33, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 33, '手术公表映射-保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (34, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 34, '手术公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (35, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 35, '手术公表映射-删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (36, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 36, '手术公表映射-批量删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (37, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 37, '手术公表映射-公表数据导入');
+INSERT INTO `sys_role_permission` VALUES (38, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 38, '手术公表映射-数据导出');
+INSERT INTO `sys_role_permission` VALUES (39, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 39, '科室公表映射-映射关系是否已存在');
+INSERT INTO `sys_role_permission` VALUES (40, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 40, '科室公表映射-保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (41, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 41, '科室公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (42, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 42, '科室公表映射-删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (43, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 43, '科室公表映射-批量删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (44, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 44, '科室公表映射-公表数据导入');
+INSERT INTO `sys_role_permission` VALUES (45, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 45, '科室公表映射-数据导出');
+INSERT INTO `sys_role_permission` VALUES (46, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 46, '静态知识标准术语-医学术语检索-新增静态知识');
+INSERT INTO `sys_role_permission` VALUES (47, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 47, '静态知识标准术语-获取静态知识列表');
+INSERT INTO `sys_role_permission` VALUES (48, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 48, '静态知识标准术语-保存静态知识-新增或修改');
+INSERT INTO `sys_role_permission` VALUES (49, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 49, '静态知识标准术语-静态知识启用禁用');
+INSERT INTO `sys_role_permission` VALUES (50, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 50, '静态知识标准术语-静态知识是否存在');
+INSERT INTO `sys_role_permission` VALUES (51, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 51, '静态知识标准术语-根据术语id获取静态信息');
+INSERT INTO `sys_role_permission` VALUES (52, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 52, '关联维护设置-医院信息——修改医院信息');
+INSERT INTO `sys_role_permission` VALUES (53, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 53, '方案配置信息-保存更新方案配置信息');
+INSERT INTO `sys_role_permission` VALUES (54, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 54, '方案配置信息-删除方案配置信息');
+INSERT INTO `sys_role_permission` VALUES (55, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 55, '方案配置信息-停用启用方案配置');
+INSERT INTO `sys_role_permission` VALUES (56, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 56, '方案配置信息-获取默认方案配置');
+INSERT INTO `sys_role_permission` VALUES (57, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 57, '方案配置信息明细-根据医院编码获取配置信息明细');
+INSERT INTO `sys_role_permission` VALUES (58, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 58, '方案配置信息明细-保存更新方案配置信息明细');
+INSERT INTO `sys_role_permission` VALUES (59, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 59, '方案配置信息明细-删除方案配置明细');
+INSERT INTO `sys_role_permission` VALUES (60, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 60, '方案配置信息明细-停用启用方案配置明细');
+INSERT INTO `sys_role_permission` VALUES (61, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 61, '输血公表映射-映射关系是否已存在');
+INSERT INTO `sys_role_permission` VALUES (62, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 62, '输血公表映射-保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (63, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 63, '输血公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (64, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 64, '输血公表映射-删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (65, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 65, '输血公表映射-批量删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (66, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 66, '输血公表映射-公表数据导入');
+INSERT INTO `sys_role_permission` VALUES (67, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 67, '输血公表映射-数据导出');
+INSERT INTO `sys_role_permission` VALUES (68, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 68, '量表公表映射-映射关系是否已存在');
+INSERT INTO `sys_role_permission` VALUES (69, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 69, '量表公表映射-保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (70, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 70, '量表公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (71, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 71, '量表公表映射-删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (72, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 72, '量表公表映射-批量删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (73, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 73, '量表公表映射-公表数据导入');
+INSERT INTO `sys_role_permission` VALUES (74, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 74, '量表公表映射-数据导出');
+INSERT INTO `sys_role_permission` VALUES (75, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 75, '护理公表映射-映射关系是否已存在');
+INSERT INTO `sys_role_permission` VALUES (76, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 76, '护理公表映射-保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (77, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 77, '护理公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (78, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 78, '护理公表映射-删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (79, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 79, '护理公表映射-批量删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (80, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 80, '护理公表映射-公表数据导入');
+INSERT INTO `sys_role_permission` VALUES (81, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 81, '护理公表映射-数据导出');
+INSERT INTO `sys_role_permission` VALUES (82, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 82, '中医疾病公表映射-映射关系是否已存在');
+INSERT INTO `sys_role_permission` VALUES (83, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 83, '中医疾病公表映射-保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (84, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 84, '中医疾病公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (85, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 85, '中医疾病公表映射-删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (86, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 86, '中医疾病公表映射-批量删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (87, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 87, '中医疾病公表映射-公表数据导入');
+INSERT INTO `sys_role_permission` VALUES (88, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 88, '中医疾病公表映射-数据导出');
+INSERT INTO `sys_role_permission` VALUES (89, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 89, '中医证候公表映射-映射关系是否已存在');
+INSERT INTO `sys_role_permission` VALUES (90, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 90, '中医证候公表映射-保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (91, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 91, '中医证候公表映射-批量保存或修改映射关系');
+INSERT INTO `sys_role_permission` VALUES (92, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 92, '中医证候公表映射-删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (93, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 93, '中医证候公表映射-批量删除映射关系');
+INSERT INTO `sys_role_permission` VALUES (94, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 94, '中医证候公表映射-公表数据导入');
+INSERT INTO `sys_role_permission` VALUES (95, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 95, '中医证候公表映射-数据导出');
+
+SET FOREIGN_KEY_CHECKS = 1;
+
+
+DELETE a FROM tran_plan_detail a WHERE  a.hospital_id = -1  ;
+
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('1', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '-1', '辅助信息', 'auxiliary', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('2', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '-1', '病历质控', 'qc', '1', NULL, '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('3', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '-1', '医学知识', 'medical', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('4', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '-1', '随访计划', 'followup', '1', NULL, '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('5', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '-1', '中医辅助', 'tcmiss', '1', NULL, '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('6', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '危急重症提醒', 'critical', '1', '5', '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('7', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '智能警示', 'tips', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('8', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '开单合理性', 'rationali', '1', '5', '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('9', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '高危', 'highrisk ', '1', '5', '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('10', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '危急值提醒', 'crivalue', '1', '5', '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('11', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '其他提醒', 'otherremind', '1', '5', '6', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('12', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '病历书写规范提示', 'casewriting', '1', '5', '7', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('13', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '推荐症状', 'symptom', '1', '5', '8', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('14', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '智能诊断', 'diag', '1', '5', '9', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('15', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '推荐体格检查', 'vital', '1', '5', '10', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('16', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '推荐检验', 'lis', '1', '5', '11', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('17', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '推荐检查', 'pacs', '1', '5', '12', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('18', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '推荐量表', 'evaluation', '1', '5', '13', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('19', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '一般治疗', 'general', '1', NULL, '14', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('20', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '推荐用药', 'medicine', '1', '5', '15', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('21', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '推荐手术/操作', 'operation', '1', '5', '16', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('22', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '1', '推荐护理', 'nurse', '1', '5', '17', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('23', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '5', '病症推导', 'conditionder', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('24', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '5', '中药处方推荐', 'treatment', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('25', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '-1', '5', '中医知识库', 'tcmknowledge', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('100', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '-1', '辅助信息', 'auxiliary', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('101', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '-1', '病历质控', 'qc', '1', NULL, '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('102', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '-1', '医学知识', 'medical', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('103', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '-1', '随访计划', 'followup', '1', NULL, '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('104', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '-1', '中医辅助', 'tcmiss', '1', NULL, '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('105', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '100', '危急重症提醒', 'critical', '1', '5', '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('106', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '100', '智能警示', 'tips', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('107', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '100', '开单合理性', 'rationali', '1', '5', '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('108', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '100', '高危', 'highrisk ', '1', '5', '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('109', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '100', '危急值提醒', 'crivalue', '1', '5', '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('110', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '100', '其他提醒', 'otherremind', '1', '5', '6', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('111', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '100', '病历书写规范提示', 'casewriting', '1', '5', '7', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('112', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '100', '智能诊断', 'diag', '1', '5', '8', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('113', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '100', '推荐检验', 'lis', '1', '5', '9', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('114', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '100', '推荐检查', 'pacs', '1', '5', '10', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('115', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '100', '推荐量表', 'evaluation', '1', '5', '11', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('116', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '104', '病症推导', 'conditionder', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('117', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '104', '中药处方推荐', 'treatment', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('118', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '10', '104', '中医知识库', 'tcmknowledge', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('119', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '-1', '辅助信息', 'auxiliary', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('120', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '-1', '病历质控', 'qc', '1', NULL, '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('121', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '-1', '医学知识', 'medical', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('122', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '-1', '随访计划', 'followup', '1', NULL, '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('123', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '-1', '中医辅助', 'tcmiss', '1', NULL, '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('124', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '119', '危急重症提醒', 'critical', '1', '5', '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('125', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '119', '推荐症状', 'symptom', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('126', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '119', '智能警示', 'tips', '1', '5', '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('127', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '119', '开单合理性', 'rationali', '1', '5', '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('128', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '119', '高危', 'highrisk ', '1', '5', '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('129', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '119', '危急值提醒', 'crivalue', '1', '5', '6', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('130', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '119', '其他提醒', 'otherremind', '1', '5', '7', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('131', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '119', '病历书写规范提示', 'casewriting', '1', '5', '8', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('132', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '119', '智能诊断', 'diag', '1', '5', '9', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('133', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '119', '推荐检验', 'lis', '1', '5', '10', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('134', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '119', '推荐检查', 'pacs', '1', '5', '11', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('135', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '119', '推荐量表', 'evaluation', '1', '5', '12', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('136', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '123', '病症推导', 'conditionder', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('137', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '123', '中药处方推荐', 'treatment', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('138', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '11', '123', '中医知识库', 'tcmknowledge', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('139', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '-1', '辅助信息', 'auxiliary', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('140', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '-1', '病历质控', 'qc', '1', NULL, '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('141', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '-1', '医学知识', 'medical', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('142', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '-1', '随访计划', 'followup', '1', NULL, '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('143', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '-1', '中医辅助', 'tcmiss', '1', NULL, '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('144', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '139', '危急重症提醒', 'critical', '1', '5', '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('145', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '139', '推荐症状', 'symptom', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('146', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '139', '智能警示', 'tips', '1', '5', '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('147', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '139', '开单合理性', 'rationali', '1', '5', '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('148', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '139', '高危', 'highrisk ', '1', '5', '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('149', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '139', '危急值提醒', 'crivalue', '1', '5', '6', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('150', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '139', '其他提醒', 'otherremind', '1', '5', '7', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('151', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '139', '病历书写规范提示', 'casewriting', '1', '5', '8', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('152', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '139', '智能诊断', 'diag', '1', '5', '9', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('153', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '139', '推荐检验', 'lis', '1', '5', '10', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('154', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '139', '推荐检查', 'pacs', '1', '5', '11', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('155', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '139', '推荐量表', 'evaluation', '1', '5', '12', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('156', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '143', '病症推导', 'conditionder', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('157', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '143', '中药处方推荐', 'treatment', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('158', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '12', '143', '中医知识库', 'tcmknowledge', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('159', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '-1', '辅助信息', 'auxiliary', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('160', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '-1', '病历质控', 'qc', '1', NULL, '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('161', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '-1', '医学知识', 'medical', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('162', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '-1', '随访计划', 'followup', '1', NULL, '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('163', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '-1', '中医辅助', 'tcmiss', '1', NULL, '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('164', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '159', '危急重症提醒', 'critical', '1', '5', '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('165', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '159', '智能警示', 'tips', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('166', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '159', '开单合理性', 'rationali', '1', '5', '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('167', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '159', '高危', 'highrisk ', '1', '5', '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('168', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '159', '危急值提醒', 'crivalue', '1', '5', '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('169', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '159', '其他提醒', 'otherremind', '1', '5', '6', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('170', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '159', '病历书写规范提示', 'casewriting', '1', '5', '7', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('171', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '159', '智能诊断', 'diag', '1', '5', '8', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('172', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '159', '推荐检验', 'lis', '1', '5', '9', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('173', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '159', '推荐检查', 'pacs', '1', '5', '10', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('174', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '159', '推荐量表', 'evaluation', '1', '5', '11', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('175', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '163', '病症推导', 'conditionder', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('176', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '163', '中药处方推荐', 'treatment', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('177', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '13', '163', '中医知识库', 'tcmknowledge', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('178', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '-1', '辅助信息', 'auxiliary', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('179', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '-1', '病历质控', 'qc', '1', NULL, '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('180', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '-1', '医学知识', 'medical', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('181', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '-1', '随访计划', 'followup', '1', NULL, '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('182', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '-1', '中医辅助', 'tcmiss', '1', NULL, '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('183', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '178', '危急重症提醒', 'critical', '1', '5', '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('184', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '178', '推荐体格检查', 'vital', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('185', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '178', '智能警示', 'tips', '1', '5', '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('186', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '178', '开单合理性', 'rationali', '1', '5', '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('187', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '178', '高危', 'highrisk ', '1', '5', '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('188', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '178', '危急值提醒', 'crivalue', '1', '5', '6', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('189', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '178', '其他提醒', 'otherremind', '1', '5', '7', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('190', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '178', '病历书写规范提示', 'casewriting', '1', '5', '8', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('191', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '178', '智能诊断', 'diag', '1', '5', '9', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('192', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '178', '推荐检验', 'lis', '1', '5', '10', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('193', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '178', '推荐检查', 'pacs', '1', '5', '11', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('194', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '178', '推荐量表', 'evaluation', '1', '5', '12', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('195', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '182', '病症推导', 'conditionder', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('196', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '182', '中药处方推荐', 'treatment', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('197', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '14', '182', '中医知识库', 'tcmknowledge', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('198', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '-1', '辅助信息', 'auxiliary', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('199', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '-1', '病历质控', 'qc', '1', NULL, '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('200', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '-1', '医学知识', 'medical', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('201', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '-1', '随访计划', 'followup', '1', NULL, '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('202', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '-1', '中医辅助', 'tcmiss', '1', NULL, '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('203', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '198', '危急重症提醒', 'critical', '1', '5', '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('204', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '198', '推荐检验', 'lis', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('205', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '198', '智能警示', 'tips', '1', '5', '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('206', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '198', '开单合理性', 'rationali', '1', '5', '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('207', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '198', '高危', 'highrisk ', '1', '5', '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('208', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '198', '危急值提醒', 'crivalue', '1', '5', '6', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('209', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '198', '其他提醒', 'otherremind', '1', '5', '7', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('210', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '198', '病历书写规范提示', 'casewriting', '1', '5', '8', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('211', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '198', '智能诊断', 'diag', '1', '5', '9', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('212', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '198', '推荐检查', 'pacs', '1', '5', '10', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('213', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '198', '推荐量表', 'evaluation', '1', '5', '11', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('214', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '202', '病症推导', 'conditionder', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('215', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '202', '中药处方推荐', 'treatment', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('216', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '15', '202', '中医知识库', 'tcmknowledge', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('217', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '-1', '辅助信息', 'auxiliary', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('218', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '-1', '病历质控', 'qc', '1', NULL, '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('219', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '-1', '医学知识', 'medical', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('220', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '-1', '随访计划', 'followup', '1', NULL, '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('221', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '-1', '中医辅助', 'tcmiss', '1', NULL, '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('222', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '217', '危急重症提醒', 'critical', '1', '5', '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('223', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '217', '推荐检查', 'pacs', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('224', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '217', '智能警示', 'tips', '1', '5', '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('225', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '217', '开单合理性', 'rationali', '1', '5', '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('226', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '217', '高危', 'highrisk ', '1', '5', '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('227', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '217', '危急值提醒', 'crivalue', '1', '5', '6', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('228', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '217', '其他提醒', 'otherremind', '1', '5', '7', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('229', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '217', '病历书写规范提示', 'casewriting', '1', '5', '8', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('230', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '217', '智能诊断', 'diag', '1', '5', '9', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('231', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '217', '推荐检验', 'lis', '1', '5', '10', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('232', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '217', '推荐量表', 'evaluation', '1', '5', '11', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('233', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '221', '病症推导', 'conditionder', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('234', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '221', '中药处方推荐', 'treatment', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('235', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '16', '221', '中医知识库', 'tcmknowledge', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('236', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '-1', '辅助信息', 'auxiliary', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('237', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '-1', '病历质控', 'qc', '1', NULL, '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('238', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '-1', '医学知识', 'medical', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('239', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '-1', '随访计划', 'followup', '1', NULL, '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('240', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '-1', '中医辅助', 'tcmiss', '1', NULL, '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('241', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '危急重症提醒', 'critical', '1', '5', '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('242', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '智能诊断', 'diag', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('243', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '智能警示', 'tips', '1', '5', '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('244', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '开单合理性', 'rationali', '1', '5', '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('245', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '高危', 'highrisk ', '1', '5', '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('246', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '危急值提醒', 'crivalue', '1', '5', '6', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('247', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '其他提醒', 'otherremind', '1', '5', '7', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('248', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '病历书写规范提示', 'casewriting', '1', '5', '8', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('249', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '推荐检验', 'lis', '1', '5', '9', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('250', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '推荐检查', 'pacs', '1', '5', '10', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('251', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '推荐量表', 'evaluation', '1', '5', '11', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('252', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '一般治疗', 'general', '1', NULL, '12', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('253', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '推荐用药', 'medicine', '1', '5', '13', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('254', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '推荐手术/操作', 'operation', '1', '5', '14', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('255', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '236', '推荐护理', 'nurse', '1', '5', '15', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('256', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '240', '病症推导', 'conditionder', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('257', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '240', '中药处方推荐', 'treatment', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('258', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '17', '240', '中医知识库', 'tcmknowledge', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('259', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '-1', '辅助信息', 'auxiliary', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('260', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '-1', '病历质控', 'qc', '1', NULL, '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('261', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '-1', '医学知识', 'medical', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('262', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '-1', '随访计划', 'followup', '1', NULL, '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('263', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '-1', '中医辅助', 'tcmiss', '1', NULL, '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('264', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '259', '危急重症提醒', 'critical', '1', '5', '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('265', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '259', '一般治疗', 'general', '1', NULL, '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('266', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '259', '推荐用药', 'medicine', '1', '5', '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('267', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '259', '推荐手术/操作', 'operation', '1', '5', '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('268', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '259', '智能警示', 'tips', '1', '5', '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('269', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '259', '开单合理性', 'rationali', '1', '5', '6', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('270', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '259', '高危', 'highrisk ', '1', '5', '7', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('271', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '259', '危急值提醒', 'crivalue', '1', '5', '8', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('272', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '259', '其他提醒', 'otherremind', '1', '5', '9', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('273', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '259', '病历书写规范提示', 'casewriting', '1', '5', '10', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('274', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '259', '推荐检验', 'lis', '1', '5', '11', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('275', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '259', '推荐检查', 'pacs', '1', '5', '12', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('276', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '259', '推荐量表', 'evaluation', '1', '5', '13', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('277', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '263', '病症推导', 'conditionder', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('278', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '263', '中药处方推荐', 'treatment', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('279', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '18', '263', '中医知识库', 'tcmknowledge', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('280', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '-1', '辅助信息', 'auxiliary', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('281', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '-1', '病历质控', 'qc', '1', NULL, '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('282', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '-1', '医学知识', 'medical', '1', NULL, '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('283', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '-1', '随访计划', 'followup', '1', NULL, '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('284', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '-1', '中医辅助', 'tcmiss', '1', NULL, '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('285', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '280', '智能警示', 'tips', '1', '5', '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('286', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '280', '开单合理性', 'rationali', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('287', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '280', '高危', 'highrisk ', '1', '5', '3', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('288', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '280', '危急值提醒', 'crivalue', '1', '5', '4', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('289', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '280', '其他提醒', 'otherremind', '1', '5', '5', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('290', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '280', '病历书写规范提示', 'casewriting', '1', '5', '6', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('291', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '280', '智能诊断', 'diag', '1', '5', '7', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('292', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '280', '推荐检验', 'lis', '1', '5', '8', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('293', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '280', '推荐检查', 'pacs', '1', '5', '9', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('294', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '284', '病症推导', 'conditionder', '1', NULL, '1', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('295', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '284', '中药处方推荐', 'treatment', '1', '5', '2', NULL, NULL);
+INSERT INTO `cdss`.`tran_plan_detail` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `plan_id`, `parent_id`, `name`, `code`, `status`, `number`, `order_no`, `value`, `remark`) VALUES ('296', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '19', '284', '中医知识库', 'tcmknowledge', '1', NULL, '3', NULL, NULL);
+UPDATE `cdss`.`tran_plan_detail` SET `number` = '3' WHERE NAME = '中药处方推荐';

+ 57 - 0
doc/008.20210512中医CDSS功能/med2021_init.sql

@@ -0,0 +1,57 @@
+USE `med_2021`;
+
+-- DROP TABLE IF EXISTS `kl_tcm_mapping`;
+-- CREATE TABLE `kl_tcm_mapping` (
+--   `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+--   `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+--   `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+--   `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+--   `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+--   `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+--   `concept_id` bigint(20) NOT NULL COMMENT '概念id',
+--   `his_type` int(11) NOT NULL DEFAULT '0' COMMENT '第三方术语类型(1:中医诊断,2:西医诊断,3:证候)',
+--   `his_name` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT '第三方术语名称',
+--   PRIMARY KEY (`id`),
+--   KEY `idx_concept_id` (`concept_id`) USING BTREE
+-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='知识库标准术语与第三方中医术语映射表';
+
+-- 已经执行
+-- UPDATE `med_2021`.`kl_lexicon` SET `id`='23', `is_deleted`='N', `gmt_create`='1970-01-01 12:00:00', `gmt_modified`='1970-01-01 12:00:00', `creator`='0', `modifier`='0', `name`='部位', `code`='122', `is_has_common`='1', `only_one`='0', `can_change`='0', `remark`='' WHERE (`id`='23');
+-- INSERT INTO `med_2021`.`kl_lexicon` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `is_has_common`, `only_one`, `can_change`, `remark`) VALUES ('45', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '疾病系统分类', '307', '0', '0', '0', '');
+-- INSERT INTO `med_2021`.`kl_lexicon` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `is_has_common`, `only_one`, `can_change`, `remark`) VALUES ('46', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '性质', '126', '1', '0', '0', '');
+-- INSERT INTO `med_2021`.`kl_lexicon` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `is_has_common`, `only_one`, `can_change`, `remark`) VALUES ('47', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医疾病', '127', '1', '0', '0', '');
+-- INSERT INTO `med_2021`.`kl_lexicon` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `is_has_common`, `only_one`, `can_change`, `remark`) VALUES ('48', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '中医证候', '128', '1', '0', '0', '');
+-- INSERT INTO `med_2021`.`kl_lexicon` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `is_has_common`, `only_one`, `can_change`, `remark`) VALUES ('49', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '诱因', '129', '0', '0', '0', '');
+--
+-- DROP TABLE IF EXISTS `kl_tcm_disease`;
+-- CREATE TABLE `kl_tcm_disease` (
+--   `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+--   `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+--   `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+--   `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+--   `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+--   `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+--   `concept_id` bigint(20) NOT NULL COMMENT '术语概念id',
+--   `code` varchar(30) DEFAULT '0' COMMENT '编码',
+--   `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+--   PRIMARY KEY (`id`),
+--   UNIQUE KEY `idx_concept_id` (`concept_id`) USING BTREE COMMENT '概念id全表唯一',
+--   KEY `idx_delete_conceptId` (`is_deleted`,`concept_id`) USING BTREE
+-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='中医疾病表';
+--
+--
+-- DROP TABLE IF EXISTS `kl_tcm_syndrome`;
+-- CREATE TABLE `kl_tcm_syndrome` (
+--   `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+--   `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+--   `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+--   `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+--   `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+--   `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+--   `concept_id` bigint(20) NOT NULL COMMENT '术语概念id',
+--   `code` varchar(30) DEFAULT '0' COMMENT '编码',
+--   `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+--   PRIMARY KEY (`id`),
+--   UNIQUE KEY `idx_concept_id` (`concept_id`) USING BTREE COMMENT '概念id全表唯一',
+--   KEY `idx_delete_conceptId` (`is_deleted`,`concept_id`) USING BTREE
+-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='中医证候表';

+ 19 - 0
doc/008.20210520推理调整/cdss.sql

@@ -0,0 +1,19 @@
+USE `cdss`;
+
+DROP TABLE IF EXISTS `sys_dept_push`;
+CREATE TABLE `sys_dept_push` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `dept_name` varchar(255) NOT NULL DEFAULT '' COMMENT '标准科室名称',
+  `push` varchar(255) NOT NULL DEFAULT '' COMMENT '推送模型',
+  `remark` varchar(300) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='标准科室和推送模型映射';
+
+INSERT INTO `cdss`.`sys_dept_push` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `dept_name`, `push`, `remark`) VALUES ('1', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '精神卫生科', '1', NULL);
+
+alter table `cdss`.`tran_hospital_info` MODIFY COLUMN push_mode int(1) NOT NULL DEFAULT '0' COMMENT '0:新版推送,1:5.0推送,2:其他推送';

+ 7 - 0
pom.xml

@@ -34,6 +34,7 @@
         <logstash.version>5.2</logstash.version>
         <docker-maven-plugin.version>1.2.1</docker-maven-plugin.version>
         <aggregator.version>1.1.3</aggregator.version>
+        <hanlp.version>portable-1.8.1</hanlp.version>
         <docker.image.prefix>192.168.2.236:5000/diagbotcloud</docker.image.prefix>
         <registryUrl>http://192.168.2.236:5000/repository/diagbotcloud/</registryUrl>
     </properties>
@@ -215,6 +216,12 @@
             <artifactId>spring-boot-data-aggregator-starter</artifactId>
             <version>${aggregator.version}</version>
         </dependency>
+
+        <dependency>
+            <groupId>com.hankcs</groupId>
+            <artifactId>hanlp</artifactId>
+            <version>${hanlp.version}</version>
+        </dependency>
     </dependencies>
 
     <!-- 私有仓库 -->

+ 1 - 0
src/main/java/com/diagbot/aggregate/PushNewAggregate.java

@@ -90,6 +90,7 @@ public class PushNewAggregate {
         Map<String, List<PushBaseDTO>> dis = new LinkedHashMap<>();
         pushDTO.setDis(dis);
         long start = System.currentTimeMillis();
+        pushNewVO.setWordCrfDTO(wordCrfDTO);
         try {
             PushNewDTO pushNewDTO = pushNewServiceClient.pushNew(pushNewVO);
             if (pushNewDTO == null || (pushNewDTO != null && pushNewDTO.getStatus().equals(-1))) {

+ 15 - 31
src/main/java/com/diagbot/config/CacheDeleteInit.java

@@ -1,6 +1,7 @@
 package com.diagbot.config;
 
 import com.diagbot.facade.CacheFacade;
+import com.diagbot.facade.ConceptInfoFacade;
 import com.diagbot.facade.NeoFacade;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,9 +23,12 @@ public class CacheDeleteInit implements CommandLineRunner {
     CacheFacade cacheFacade;
     @Autowired
     NeoFacade neoFacade;
+    @Autowired
+    private ConceptInfoFacade conceptInfoFacade;
+
 
     @Override
-    public void run(String... args) throws Exception {
+    public void run(String... args) {
         // 服务启动清除redis缓存
         cacheFacade.clear();
         log.info("CDSS-CORE服务启动清除redis缓存成功!");
@@ -38,40 +42,20 @@ public class CacheDeleteInit implements CommandLineRunner {
         cacheFacade.getdiseaseFilterCache();
         log.info("CDSS-CORE服务启动加载疾病过滤缓存成功!");
 
-         cacheFacade.loadAllRuleCache();
-         log.info("CDSS-CORE服务启动加载医学知识库中的所有规则缓存成功!");
+        cacheFacade.loadPushModel();
+        log.info("CDSS-CORE服务启动加载医院推送类型成功!");
 
-        cacheFacade.loadAllBaseDiagnoseCache();
-        log.info("CDSS-CORE服务启动加载诊断依据缓存成功!");
+        cacheFacade.loadDeptPush();
+        log.info("CDSS-CORE服务启动加载科室和推送映射成功!");
 
-        cacheFacade.loadHostipalPush();
-        log.info("CDSS-CORE服务启动加载医院大数据推送类型成功!");
+        cacheFacade.loadAllRuleCache();
+        log.info("CDSS-CORE服务启动加载医学知识库中的所有规则缓存成功!");
 
-//        cacheFacade.getDiseaseCorrespondCache();
-//        log.info("CDSS-CORE服务启动加载疾病对应ICD10缓存成功!");
-//
-//        cacheFacade.getdiseaseFilterCache();
-//        log.info("CDSS-CORE服务启动加载疾病过滤缓存成功!");
+        cacheFacade.loadAllBaseDiagnoseCache();
+        log.info("CDSS-CORE服务启动加载诊断依据缓存成功!");
 
-        //无用的缓存
-        //
-        //        cacheFacade.getSymptomCache();
-        //        log.info("CDSS-CORE服务启动加载图谱症状缓存成功!");
-        //
-        //        cacheFacade.getVitalCache();
-        //        log.info("CDSS-CORE服务启动加载图谱体征缓存成功!");
-        //
-        //        cacheFacade.getSymptomFeatureCache();
-        //        log.info("CDSS-CORE服务启动加载症状特征缓存成功!");
-        //
-        //        cacheFacade.getSymptomMainCache();
-        //        log.info("CDSS-CORE服务启动加载典型症状缓存成功!");
-        //
-        //        cacheFacade.loadDiseaseTypeCache();
-        //        log.info("CDSS-CORE服务启动加载疾病属性(性别、年龄、发病率)缓存成功!");
-        //
-        //        cacheFacade.getSymptomNumCache();
-        //        log.info("CDSS-CORE服务启动加载疾病对应的症状个数缓存成功!");
+        conceptInfoFacade.loadCustomDictionary();
+        log.info("CDSS-CORE服务启动加载NLP分词字典成功!");
 
         log.info("CDSS-CORE初始化完成!");
     }

+ 18 - 0
src/main/java/com/diagbot/dto/AnesthesiaInfoDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/4/23 10:55
+ */
+@Getter
+@Setter
+public class AnesthesiaInfoDTO {
+    /**
+     * 麻醉名称
+     */
+    private String name;
+}

+ 16 - 0
src/main/java/com/diagbot/dto/CustomDictionaryDTO.java

@@ -0,0 +1,16 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/5/25 20:03
+ */
+@Getter
+@Setter
+public class CustomDictionaryDTO {
+    private String name;
+    private String type;
+}

+ 17 - 0
src/main/java/com/diagbot/dto/IndexBatchDTO.java

@@ -0,0 +1,17 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/6/7 10:27
+ */
+@Getter
+@Setter
+public class IndexBatchDTO {
+    private Long id;
+    private String name;
+    private String code;
+}

+ 1 - 0
src/main/java/com/diagbot/dto/IndexDTO.java

@@ -14,6 +14,7 @@ public class IndexDTO {
     private Long id;
     private String name;
     private String icd10Code;
+    private String code;
     private Double maxValue;
     private Double minValue;
     private String units;

+ 1 - 0
src/main/java/com/diagbot/dto/NeoPushDTO.java

@@ -20,6 +20,7 @@ public class NeoPushDTO {
     private List<PushBaseDTO> vitals = new ArrayList<>();//体征
     private List<PushBaseDTO> lis = new ArrayList<>();//实验室检查
     private List<PushBaseDTO> pacs = new ArrayList<>();//辅助检查
+    private List<PushBaseDTO> scales = new ArrayList<>();//量表
     // 鉴别诊断
     private List<PushBaseDTO> differentialDis;
     /**

+ 13 - 0
src/main/java/com/diagbot/dto/RetrievalDTO.java

@@ -61,4 +61,17 @@ public class RetrievalDTO {
      * 护理
      */
     private List<NurseInfoDTO> nursenames;
+    /**
+     * 中医诊断
+     */
+    private List<TcmdiseaseInfoDTO> tcmdiseaseNames;
+    /**
+     * 中医证候
+     */
+    private List<TcmsyndromeInfoDTO> tcmsyndromeNames;
+    /**
+     * 麻醉
+     */
+    private List<AnesthesiaInfoDTO> anesthesiaInfonames;
+
 }

+ 23 - 0
src/main/java/com/diagbot/dto/TcmdiseaseInfoDTO.java

@@ -0,0 +1,23 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/5/13 15:37
+ */
+@Getter
+@Setter
+public class TcmdiseaseInfoDTO {
+    /**
+     * 疾病名称
+     */
+    private String name;
+
+    /**
+     * 编码
+     */
+    private String code;
+}

+ 23 - 0
src/main/java/com/diagbot/dto/TcmsyndromeInfoDTO.java

@@ -0,0 +1,23 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/5/13 15:43
+ */
+@Getter
+@Setter
+public class TcmsyndromeInfoDTO {
+    /**
+     * 疾病名称
+     */
+    private String name;
+
+    /**
+     * 编码
+     */
+    private String code;
+}

+ 68 - 0
src/main/java/com/diagbot/entity/SysDeptPush.java

@@ -0,0 +1,68 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 标准科室和推送模型映射
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-05-20
+ */
+@Data
+public class SysDeptPush 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 deptName;
+
+    /**
+     * 推送模型
+     */
+    private String push;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 146 - 0
src/main/java/com/diagbot/entity/TcmDisease.java

@@ -0,0 +1,146 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <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 +
+        "}";
+    }
+}

+ 146 - 0
src/main/java/com/diagbot/entity/TcmSyndrome.java

@@ -0,0 +1,146 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <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 +
+        "}";
+    }
+}

+ 158 - 0
src/main/java/com/diagbot/entity/TranOperationConfig.java

@@ -0,0 +1,158 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 手术映射表
+ * </p>
+ *
+ * @author gaodm
+ * @since 2020-12-22
+ */
+public class TranOperationConfig 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;
+
+    /**
+     * 医院项目名称
+     */
+    private String hisName;
+
+    /**
+     * 标准名称
+     */
+    private String uniqueName;
+
+    /**
+     * 标准编码
+     */
+    private String uniqueCode;
+
+    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 String getHisName() {
+        return hisName;
+    }
+
+    public void setHisName(String hisName) {
+        this.hisName = hisName;
+    }
+    public String getUniqueName() {
+        return uniqueName;
+    }
+
+    public void setUniqueName(String uniqueName) {
+        this.uniqueName = uniqueName;
+    }
+    public String getUniqueCode() {
+        return uniqueCode;
+    }
+
+    public void setUniqueCode(String uniqueCode) {
+        this.uniqueCode = uniqueCode;
+    }
+
+    @Override
+    public String toString() {
+        return "TranOperationConfig{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", hospitalId=" + hospitalId +
+            ", hisName=" + hisName +
+            ", uniqueName=" + uniqueName +
+            ", uniqueCode=" + uniqueCode +
+        "}";
+    }
+}

+ 2 - 1
src/main/java/com/diagbot/enums/DiagnoseTypeEnum.java

@@ -16,7 +16,8 @@ public enum DiagnoseTypeEnum implements KeyedNamed {
     vigilant(4, "警惕"),
 
     bigDataPush(99, "大数据推送诊断"),
-    possibleUnion(100, "可能诊断");
+    possibleUnion(100, "可能诊断"),
+    pastDisease(101, "既往诊断");
 
     @Setter
     private int key;

+ 5 - 0
src/main/java/com/diagbot/enums/LexiconEnum.java

@@ -36,6 +36,10 @@ public enum LexiconEnum implements KeyedNamed {
     Nurse(123,"护理"),
     Scale(124,"量表"),
     Unit(125,"单位"),
+    Nature(126,"性质"),
+    Tcmdisease(127, "中医疾病"),
+    Tcmsyndrome(128, "中医证候"),
+    Inducement(129, "诱因"),
     ICD10Class(300,"ICD10疾病类别"),
     MedChemClass(301,"药品化学物质类别"),
     MedZhiLiaoClass(302,"药品治疗学类别"),
@@ -43,6 +47,7 @@ public enum LexiconEnum implements KeyedNamed {
     MedJiePouClass(304,"药品解剖学类别"),
     SymptomClass(305,"症状类别"),
     OperationClass(306,"手术和操作类别"),
+    DisSysType(307,"疾病系统分类"),
     ICD10ClassNode(400,"ICD10疾病类别根节点"),
     DeptDiseaseNode(401,"科室疾病类别根节点"),
     MedChemClassNode(402,"药品化学物质类别根节点"),

+ 3 - 1
src/main/java/com/diagbot/enums/PushRelationTypeEnum.java

@@ -16,7 +16,9 @@ public enum PushRelationTypeEnum {
     PACS(505L, "疾病相关辅助检查项目"),
     DRUG(506L, "疾病相关药物治疗"),
     OPERATION(507L, "疾病相关手术治疗"),
-    DIFFDIAGNOSE(508L, "疾病相关鉴别诊断");
+    DIFFDIAGNOSE(508L, "疾病相关鉴别诊断"),
+    SCALE(509L, "疾病相关量表"),
+    NURSE(510L, "疾病相关护理");
 
     @Setter
     private long key;

+ 3 - 3
src/main/java/com/diagbot/enums/RedisEnum.java

@@ -22,9 +22,9 @@ public enum RedisEnum implements KeyedNamed {
     diseaseType(2, "diseaseType:"),
     allRule(10, "allRule:"),
     allBaseDiagnose(11, "allBaseDiagnose"),
-    hospitalPushType(12, "hospitalPushType"),
-    pushVersion(13, "pushVersion"),
-    hospitalId_(14, "hospitalId_");
+    pushModel(13, "pushModel"),
+    hospitalId_(14, "hospitalId_"),
+    deptPush(15, "deptPush");
 
     @Setter
     private int key;

+ 29 - 14
src/main/java/com/diagbot/facade/CacheFacade.java

@@ -3,13 +3,13 @@ package com.diagbot.facade;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.PushNewServiceClient;
 import com.diagbot.dto.PushReloadDTO;
+import com.diagbot.entity.SysDeptPush;
 import com.diagbot.entity.TranHospitalInfo;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.RedisEnum;
 import com.diagbot.enums.StandConvertEnum;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RedisUtil;
-import com.diagbot.util.StringUtil;
 import org.apache.commons.collections4.map.LinkedMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
@@ -39,6 +39,8 @@ public class CacheFacade {
     TranHospitalInfoFacade tranHospitalInfoFacade;
     @Autowired
     PushNewServiceClient pushNewServiceClient;
+    @Autowired
+    DeptPushFacade deptPushFacade;
 
     /**
      * 清除缓存信息
@@ -145,32 +147,45 @@ public class CacheFacade {
     }
 
     /**
-     * 加载大数据推送类型【push_mode】和推送版本【remark】【tran_hospital_info】
+     * 加载大数据推送类型
      */
-    public void loadHostipalPush() {
-        // 删除
-        redisUtil.delete(RedisEnum.hospitalPushType.getName());
-        redisUtil.delete(RedisEnum.pushVersion.getName());
+    public void loadPushModel() {
+        redisUtil.delete("pushVersion"); // 删除脏数据
+        redisUtil.delete(RedisEnum.pushModel.getName());
 
         // 加载
         List<TranHospitalInfo> hospitalList = tranHospitalInfoFacade.list(new QueryWrapper<TranHospitalInfo>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
         );
         if (ListUtil.isNotEmpty(hospitalList)) {
-            // 推送类型
-            redisUtil.putHashMap(RedisEnum.hospitalPushType.getName(),
-                    hospitalList.stream().collect(Collectors.toMap(k -> String.valueOf(k.getId()), v -> String.valueOf(v.getPushMode()), (v1, v2) -> (v2))));
-
             // 推送版本
             Map<String, Object> versionMap = new LinkedMap<>();
             for (TranHospitalInfo hospitalInfo : hospitalList) {
-                if (StringUtil.isNotBlank(hospitalInfo.getRemark()) && "old".equals(hospitalInfo.getRemark())) {
-                    versionMap.put(RedisEnum.hospitalId_.getName() + hospitalInfo.getId(), "old");
+                if (hospitalInfo.getPushMode() != null) {
+                    versionMap.put(RedisEnum.hospitalId_.getName() + hospitalInfo.getId(), hospitalInfo.getPushMode());
                 } else {
-                    versionMap.put(RedisEnum.hospitalId_.getName() + hospitalInfo.getId(), "new");
+                    versionMap.put(RedisEnum.hospitalId_.getName() + hospitalInfo.getId(), 0);
                 }
             }
-            redisUtil.putHashMap(RedisEnum.pushVersion.getName(), versionMap);
+            redisUtil.putHashMap(RedisEnum.pushModel.getName(), versionMap);
+        }
+    }
+
+    /**
+     * 加载标准科室和推送类型的映射关系【sys_dept_push】
+     */
+    public void loadDeptPush() {
+        // 删除
+        redisUtil.delete(RedisEnum.deptPush.getName());
+
+        // 加载
+        List<SysDeptPush> deptPushList = deptPushFacade.list(new QueryWrapper<SysDeptPush>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+        );
+        if (ListUtil.isNotEmpty(deptPushList)) {
+            // 推送类型
+            redisUtil.putHashMap(RedisEnum.deptPush.getName(),
+                    deptPushList.stream().collect(Collectors.toMap(k -> k.getDeptName(), v -> v.getPush(), (v1, v2) -> (v2))));
         }
     }
 }

+ 510 - 63
src/main/java/com/diagbot/facade/CommonFacade.java

@@ -3,13 +3,18 @@ package com.diagbot.facade;
 import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.client.CRFServiceClient;
+import com.diagbot.client.StandConvertServiceClient;
 import com.diagbot.dto.BillMsg;
 import com.diagbot.dto.RuleDTO;
 import com.diagbot.dto.RuleExtDTO;
+import com.diagbot.dto.StandConvertCrfBatchDTO;
+import com.diagbot.dto.StandConvertCrfDTO;
 import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.enums.LexiconEnum;
 import com.diagbot.enums.RedisEnum;
 import com.diagbot.enums.StandConvertEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.model.ai.AIAnalyze;
 import com.diagbot.model.entity.BodyPart;
 import com.diagbot.model.entity.Clinical;
@@ -28,11 +33,13 @@ import com.diagbot.util.BeanUtil;
 import com.diagbot.util.CoreUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RedisUtil;
+import com.diagbot.util.ReflectUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.NeoPushVO;
 import com.diagbot.vo.RuleVO;
 import com.diagbot.vo.SearchData;
 import com.diagbot.vo.StandConvert;
+import com.diagbot.vo.StandConvertCrfVO;
 import com.diagbot.vo.neoPushEntity.ChiefPushVo;
 import com.diagbot.vo.neoPushEntity.Diag;
 import com.diagbot.vo.neoPushEntity.DiagVo;
@@ -42,12 +49,15 @@ import com.diagbot.vo.neoPushEntity.PacsPushVo;
 import com.diagbot.vo.neoPushEntity.PresentPushVo;
 import com.diagbot.vo.neoPushEntity.Symptom;
 import com.google.common.collect.Lists;
+import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
-
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -66,26 +76,40 @@ public class CommonFacade {
     @Autowired
     PacsConfigFacade pacsConfigFacade;
     @Autowired
+    TranOperationConfigFacade tranOperationConfigFacade;
+    @Autowired
     CommonRule commonRule;
     @Autowired
     RedisUtil redisUtil;
+    @Autowired
+    NLPFacade nlpFacade;
+    @Autowired
+    StandConvertServiceClient standConvertServiceClient;
+    @Value("${StandConvert.rate}")
+    String standConvertRate;
 
-    //组装好的label
-    public WordCrfDTO crf_process(SearchData searchData) {
+    /**
+     * 组装好label
+     *
+     * @param searchData
+     * @param participleFlag
+     * @return
+     */
+    public WordCrfDTO crf_process(SearchData searchData, Boolean participleFlag) {
         AIAnalyze aiAnalyze = new AIAnalyze(crfServiceClient);
         // 合并既往史:既往史+传染病史+手术外伤史+过敏史+接种史
         String unionPasts = searchData.getPasts();
         if (StringUtil.isNotBlank(searchData.getInfectious())) { // 传染病史
-            unionPasts = unionPasts + "。"  + searchData.getInfectious();
+            unionPasts = unionPasts + "。" + searchData.getInfectious();
         }
         if (StringUtil.isNotBlank(searchData.getSurgical())) { // 手术外伤史
-            unionPasts = unionPasts + "。"  + searchData.getSurgical();
+            unionPasts = unionPasts + "。" + searchData.getSurgical();
         }
         if (StringUtil.isNotBlank(searchData.getAllergy())) { // 过敏史
-            unionPasts = unionPasts + "。"  + searchData.getAllergy();
+            unionPasts = unionPasts + "。" + searchData.getAllergy();
         }
         if (StringUtil.isNotBlank(searchData.getVaccination())) { // 接种史
-            unionPasts = unionPasts + "。"  + searchData.getVaccination();
+            unionPasts = unionPasts + "。" + searchData.getVaccination();
         }
         searchData.setPasts(unionPasts);
 
@@ -169,10 +193,78 @@ public class CommonFacade {
 
         // 现病史中体征内容放入体征标签
         processPresentVital(wordCrfDTO);
+
+        // 加入分词
+        if (participleFlag) {
+            participle(wordCrfDTO);
+        }
         return wordCrfDTO;
     }
 
-    //返回给图谱的词,这些词需要转换成标准词
+    /**
+     * 分词
+     *
+     * @param wordCrfDTO
+     */
+    public void participle(WordCrfDTO wordCrfDTO) {
+        // 主诉症状分词
+        participleByType(wordCrfDTO.getChiefLabel().getClinicals(), String.valueOf(LexiconEnum.Symptom.getKey()));
+        // 现病史症状分词
+        participleByType(wordCrfDTO.getPresentLabel().getClinicals(), String.valueOf(LexiconEnum.Symptom.getKey()));
+    }
+
+    /**
+     * 根据类型分词,通用方法
+     *
+     * @param tList
+     * @param type
+     * @param <T>
+     */
+    public <T> void participleByType(List<T> tList, String type) {
+        List<T> participleList = Lists.newArrayList();
+        if (ListUtil.isNotEmpty(tList)) {
+            for (T t : tList) {
+                String val = ReflectUtil.getProperty(t, "name");
+                List<String> list = nlpFacade.getByType(val, type);
+                if (ListUtil.isNotEmpty(list)) {
+                    for (String s : list) {
+                        if (!s.equals(val)) { // 去除自身
+                            try {
+                                T tNew = (T) tList.get(0).getClass().newInstance(); // 泛型不能直接创建对象
+                                BeanUtil.copyProperties(t, tNew);
+                                ReflectUtil.setProperty(tNew, "name", s);
+                                ReflectUtil.setProperty(tNew, "standName", s);
+                                participleList.add(tNew);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    }
+                }
+            }
+            if (ListUtil.isNotEmpty(participleList)) {
+                tList.addAll(participleList);
+            }
+        }
+    }
+
+    /**
+     * 同义词转换
+     *
+     * @param wordCrfDTO
+     */
+    public void wordStandConvert(WordCrfDTO wordCrfDTO) {
+        StandConvert standConvert = dataTypeGet(wordCrfDTO);
+        Map<String, Map<String, String>> standConvertMap = standConvertCrf(standConvert);
+        dataTypeSet(wordCrfDTO, standConvertMap);
+    }
+
+    /**
+     * 获取所有需要转标准词的词
+     *
+     * @param wordCrfDTO
+     * @return
+     */
     public StandConvert dataTypeGet(WordCrfDTO wordCrfDTO) {
         StandConvert standConvert = new StandConvert();
 
@@ -206,23 +298,23 @@ public class CommonFacade {
         }
         standConvert.setDiaglList(diagList);
 
-        // 【所有化验】
-        List<String> allLis = new ArrayList<>();
-        // 1、普通化验——取明细
-        CoreUtil.addList(allLis, CoreUtil.filterUniqueList(wordCrfDTO.getLis(), "detailName"));
-        // 2、开单化验——取套餐
-        CoreUtil.addList(allLis, CoreUtil.filterUniqueList(wordCrfDTO.getLisOrder()));
-        standConvert.setLisList(allLis);
-
-        // 【所有辅助项目】
-        List<String> allPacs = new ArrayList<>();
-        // 1、模型解析辅检项目
-        CoreUtil.addList(allPacs, CoreUtil.filterUniqueList(wordCrfDTO.getPacsLabel().getItem()));
-        // 2、结构化辅检项目
-        CoreUtil.addList(allPacs, CoreUtil.filterUniqueList(wordCrfDTO.getPacs()));
-        // 3、开单辅检项目
-        CoreUtil.addList(allPacs, CoreUtil.filterUniqueList(wordCrfDTO.getPacsOrder()));
-        standConvert.setPacsList(allPacs);
+        // // 【所有化验】
+        // List<String> allLis = new ArrayList<>();
+        // // 1、普通化验——取明细
+        // CoreUtil.addList(allLis, CoreUtil.filterUniqueList(wordCrfDTO.getLis(), "detailName"));
+        // // 2、开单化验——取套餐
+        // CoreUtil.addList(allLis, CoreUtil.filterUniqueList(wordCrfDTO.getLisOrder()));
+        // standConvert.setLisList(allLis);
+        //
+        // // 【所有辅助项目】
+        // List<String> allPacs = new ArrayList<>();
+        // // 1、模型解析辅检项目
+        // CoreUtil.addList(allPacs, CoreUtil.filterUniqueList(wordCrfDTO.getPacsLabel().getItem()));
+        // // 2、结构化辅检项目
+        // CoreUtil.addList(allPacs, CoreUtil.filterUniqueList(wordCrfDTO.getPacs()));
+        // // 3、开单辅检项目
+        // CoreUtil.addList(allPacs, CoreUtil.filterUniqueList(wordCrfDTO.getPacsOrder()));
+        // standConvert.setPacsList(allPacs);
 
         // 【所有药品】
         List<String> drugList = new ArrayList<>();
@@ -240,23 +332,23 @@ public class CommonFacade {
         CoreUtil.addList(drugList, CoreUtil.filterUniqueList(wordCrfDTO.getDrug()));
         standConvert.setDrugList(drugList);
 
-        // 【所有手术】
-        List<String> operationList = new ArrayList<>();
-        // 1、主诉手术
-        CoreUtil.addList(operationList, CoreUtil.getPropertyList(chiefLabel.getOperations()));
-        // 2、现病史手术
-        CoreUtil.addList(operationList, CoreUtil.getPropertyList(presentLabel.getOperations()));
-        // 3、既往史手术
-        CoreUtil.addList(operationList, CoreUtil.getPropertyList(pastLabel.getOperations()));
-        // 4、开单手术
-        CoreUtil.addList(operationList, CoreUtil.filterUniqueList(wordCrfDTO.getOperationOrder()));
-        // 5、结构化手术
-        CoreUtil.addList(operationList, CoreUtil.filterUniqueList(wordCrfDTO.getOperation()));
-        // 6、选中手术
-        if (wordCrfDTO.getOperationName() != null && StringUtils.isBlank(wordCrfDTO.getOperationName().getUniqueName())) {
-            operationList.add(wordCrfDTO.getOperationName().getName());
-        }
-        standConvert.setOperationList(operationList);
+        // // 【所有手术】
+        // List<String> operationList = new ArrayList<>();
+        // // 1、主诉手术
+        // CoreUtil.addList(operationList, CoreUtil.getPropertyList(chiefLabel.getOperations()));
+        // // 2、现病史手术
+        // CoreUtil.addList(operationList, CoreUtil.getPropertyList(presentLabel.getOperations()));
+        // // 3、既往史手术
+        // CoreUtil.addList(operationList, CoreUtil.getPropertyList(pastLabel.getOperations()));
+        // // 4、开单手术
+        // CoreUtil.addList(operationList, CoreUtil.filterUniqueList(wordCrfDTO.getOperationOrder()));
+        // // 5、结构化手术
+        // CoreUtil.addList(operationList, CoreUtil.filterUniqueList(wordCrfDTO.getOperation()));
+        // // 6、选中手术
+        // if (wordCrfDTO.getOperationName() != null && StringUtils.isBlank(wordCrfDTO.getOperationName().getUniqueName())) {
+        //     operationList.add(wordCrfDTO.getOperationName().getName());
+        // }
+        // standConvert.setOperationList(operationList);
 
         // 【所有体征】(临床表现、体征结果)
         List<String> vitalList = new ArrayList<>();
@@ -273,7 +365,12 @@ public class CommonFacade {
         return standConvert;
     }
 
-    //把图谱返回的标准词set到label中
+    /**
+     * 标准词set到label中
+     *
+     * @param wordCrfDTO
+     * @param map
+     */
     public void dataTypeSet(WordCrfDTO wordCrfDTO, Map<String, Map<String, String>> map) {
         ChiefLabel chiefLabel = wordCrfDTO.getChiefLabel();
         PresentLabel presentLabel = wordCrfDTO.getPresentLabel();
@@ -317,19 +414,24 @@ public class CommonFacade {
         // 6、结构化药品
         CoreUtil.setPropertyList(wordCrfDTO.getDrug(), "name", "uniqueName", map.get(StandConvertEnum.drug.toString()));
 
-        // 【化验回填】
-        // 1、普通化验
-        CoreUtil.setPropertyList(lis, "detailName", "uniqueName", map.get(StandConvertEnum.lis.toString()));
-        // 2、开单化验——取套餐
-        CoreUtil.setPropertyList(wordCrfDTO.getLisOrder(), "name", "uniqueName", map.get(StandConvertEnum.lis.toString()));
+        //        // 【化验回填】
+        //        // 1、普通化验
+        //        CoreUtil.setPropertyList(lis, "detailName", "uniqueName", map.get(StandConvertEnum.lis.toString()));
+        //        // 2、开单化验——取套餐
+        //        CoreUtil.setPropertyList(wordCrfDTO.getLisOrder(), "name", "uniqueName", map.get(StandConvertEnum.lis.toString()));
+        //
+        //        // 【辅助项目回填】
+        //        // 1、模型解析辅检项目
+        //        CoreUtil.setPropertyList(pacsList, "name", "uniqueName", map.get(StandConvertEnum.pacs.toString()));
+        //        // 2、结构化辅检项目
+        //        CoreUtil.setPropertyList(wordCrfDTO.getPacs(), "name", "uniqueName", map.get(StandConvertEnum.pacs.toString()));
+        //        // 3、开单辅检项目
+        //        CoreUtil.setPropertyList(wordCrfDTO.getPacsOrder(), "name", "uniqueName", map.get(StandConvertEnum.pacs.toString()));
+
+        CoreUtil.setUninameFromDetail(wordCrfDTO.getLis(), "detailName");
+        CoreUtil.setUninameFromDetail(wordCrfDTO.getLisOrder(), "name");
 
-        // 【辅助项目回填】
-        // 1、模型解析辅检项目
-        CoreUtil.setPropertyList(pacsList, "name", "uniqueName", map.get(StandConvertEnum.pacs.toString()));
-        // 2、结构化辅检项目
-        CoreUtil.setPropertyList(wordCrfDTO.getPacs(), "name", "uniqueName", map.get(StandConvertEnum.pacs.toString()));
-        // 3、开单辅检项目
-        CoreUtil.setPropertyList(wordCrfDTO.getPacsOrder(), "name", "uniqueName", map.get(StandConvertEnum.pacs.toString()));
+        pacsGetAndSet(wordCrfDTO);
 
         // 【体征回填】
         // CoreUtil.setPropertyList(vitalLabel.getVitals(), map.get(StandConvertEnum.vital.toString()));
@@ -337,20 +439,365 @@ public class CommonFacade {
 
         // 【手术回填】
         // 1、主诉手术
-        CoreUtil.setPropertyList(chiefLabel.getOperations(), map.get(StandConvertEnum.operation.toString()));
+        // CoreUtil.setPropertyList(chiefLabel.getOperations(), map.get(StandConvertEnum.operation.toString()));
+        // // 2、现病史手术
+        // CoreUtil.setPropertyList(presentLabel.getOperations(), map.get(StandConvertEnum.operation.toString()));
+        // // 3、既往史手术
+        // CoreUtil.setPropertyList(pastLabel.getOperations(), map.get(StandConvertEnum.operation.toString()));
+        // // 4、开单手术
+        // CoreUtil.setPropertyList(wordCrfDTO.getOperationOrder(), "name", "uniqueName", map.get(StandConvertEnum.operation.toString()));
+        // // 5、结构化手术
+        // CoreUtil.setPropertyList(wordCrfDTO.getOperation(), "name", "uniqueName", map.get(StandConvertEnum.operation.toString()));
+        // // 6、选中手术
+        // CoreUtil.setPropertyList(wordCrfDTO.getOperationName(), "name", "uniqueName", map.get(StandConvertEnum.operation.toString()));
+        operateGetAndSet(wordCrfDTO);
+
+        //【输血回填】
+        CoreUtil.setPropertyList(wordCrfDTO.getTransfusionOrder(), "name", "uniqueName", map.get(StandConvertEnum.transfusion.toString()));
+    }
+
+    /**
+     * 标准词转换
+     * 类型,疾病: disease,症状: symptom,手术和操作:operation,药品: drug,实验室检查:lis,辅助检查:pacs, 辅助检查:vital"
+     *
+     * @param standConvert
+     * @return Map<String,Map<String,String>> -->Map<类型, Map<原始词, 标准词>>
+     */
+    public Map<String, Map<String, String>> standConvertCrf(StandConvert standConvert) {
+        Map<String, Map<String, String>> map = new LinkedHashMap<>();
+
+        List<StandConvertCrfVO> standConvertCrfVOList = new ArrayList<>();
+        List<String> clinicalConList = getConvertList(standConvert.getClinicalList(), StandConvertEnum.symptom.toString(), standConvertCrfVOList);
+        // List<String> operationConList = getConvertList(standConvert.getOperationList(), StandConvertEnum.operation.toString(), standConvertCrfVOList);
+        List<String> drugConList = getConvertList(standConvert.getDrugList(), StandConvertEnum.drug.toString(), standConvertCrfVOList);
+        List<String> vitallConList = getConvertList(standConvert.getVitalList(), StandConvertEnum.vital.toString(), standConvertCrfVOList);
+        List<String> diseaseConList = getConvertList(standConvert.getDiaglList(), StandConvertEnum.disease.toString(), standConvertCrfVOList);
+        // List<String> pacsConList = getConvertList(standConvert.getPacsList(), StandConvertEnum.pacs.toString(), standConvertCrfVOList);
+        // List<String> lisConList = getConvertList(standConvert.getLisList(), StandConvertEnum.lis.toString(), standConvertCrfVOList);
+        List<String> transfusionConList = getConvertList(standConvert.getTransfusionList(), StandConvertEnum.transfusion.toString(), standConvertCrfVOList);
+
+        StandConvertCrfBatchDTO standConvertCrfBatchDTO = new StandConvertCrfBatchDTO();
+        if (!(ListUtil.isEmpty(clinicalConList)
+                // && ListUtil.isEmpty(operationConList)
+                && ListUtil.isEmpty(drugConList)
+                && ListUtil.isEmpty(vitallConList)
+                && ListUtil.isEmpty(diseaseConList)
+                // && ListUtil.isEmpty(pacsConList)
+                // && ListUtil.isEmpty(lisConList)
+                && ListUtil.isEmpty(transfusionConList))) {
+            try {
+                standConvertCrfBatchDTO = standConvertServiceClient.similarityBatch(standConvertCrfVOList);
+            } catch (Exception e) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "标准词转换【服务器】挂了!" + e.getMessage());
+            }
+        }
+
+        Map<String, Map<String, StandConvertCrfDTO>> crfMap = standConvertCrfBatchDTO.getData();
+        getConvertMap(crfMap, StandConvertEnum.symptom.toString(), clinicalConList, standConvert.getClinicalList(), map);
+        // getConvertMap(crfMap, StandConvertEnum.operation.toString(), operationConList, standConvert.getOperationList(), map);
+        getConvertMap(crfMap, StandConvertEnum.drug.toString(), drugConList, standConvert.getDrugList(), map);
+        getConvertMap(crfMap, StandConvertEnum.vital.toString(), vitallConList, standConvert.getVitalList(), map);
+        getConvertMap(crfMap, StandConvertEnum.disease.toString(), diseaseConList, standConvert.getDiaglList(), map);
+        // getConvertMap(crfMap, StandConvertEnum.pacs.toString(), pacsConList, standConvert.getPacsList(), map);
+        // getConvertMap(crfMap, StandConvertEnum.lis.toString(), lisConList, standConvert.getLisList(), map);
+        getConvertMap(crfMap, StandConvertEnum.transfusion.toString(), transfusionConList, standConvert.getTransfusionList(), map);
+
+        return map;
+    }
+
+    /**
+     * 获取标准词转换map结果,并更新redis
+     *
+     * @param crfDTO
+     * @param type
+     * @param convertList
+     * @param map
+     */
+    public void getConvertMapDisease(Map<String, Map<String, StandConvertCrfDTO>> crfDTO, String type, List<String> convertList,
+                                     List<String> originList, Map<String, Map<String, String>> map) {
+        Map<String, String> typeMap = new LinkedHashMap<>();
+
+        if (ListUtil.isNotEmpty(convertList)) {
+            Map<String, StandConvertCrfDTO> crfMap = crfDTO.get(type);
+            for (String s : convertList) {
+                boolean convertFlag = false;
+                String lastS = s;
+                if (StringUtil.isBlank(s)) {
+                    continue;
+                }
+                if (crfMap != null) {
+                    StandConvertCrfDTO standConvertCrfDTO = crfMap.get(s);
+                    if (standConvertCrfDTO != null) {
+                        List<Map<String, String>> list = standConvertCrfDTO.getStandard_words();
+                        if (ListUtil.isEmpty(list)) {
+                            redisUtil.updateValue(type + "Conv:" + s, "");
+                        } else {
+                            String rateStr = standConvertCrfDTO.getStandard_words().get(0).get("rate");
+                            if (StringUtil.isBlank(rateStr)) {
+                                redisUtil.updateValue(type + "Conv:" + s, "");
+                            } else {
+                                BigDecimal rate = new BigDecimal(rateStr);
+                                int flag = rate.compareTo(new BigDecimal(standConvertRate));
+                                if (flag < 0) {
+                                    redisUtil.updateValue(type + "Conv:" + s, "");
+                                } else {
+                                    redisUtil.updateValue(type + "Conv:" + s, standConvertCrfDTO.getStandard_words().get(0).get("standard_word"));
+                                    lastS = standConvertCrfDTO.getStandard_words().get(0).get("standard_word");
+                                    convertFlag = true;
+                                }
+                            }
+                        }
+                    } else {
+                        redisUtil.updateValue(type + "Conv:" + s, "");
+                    }
+                } else {
+                    redisUtil.updateValue(type + "Conv:" + s, "");
+                }
+                if (convertFlag) {
+                    typeMap.put(s, lastS);
+                } else {
+                    typeMap.put(s, "");
+                }
+            }
+        }
+        // 将所有的词放入typeMap中
+        for (String s : originList) {
+            if (!typeMap.containsKey(s)) {
+                String value = redisUtil.get(type + "Conv:" + s);
+                typeMap.put(s, value);
+            }
+        }
+        map.put(type, typeMap);
+    }
+
+    /**
+     * 入参数据处理
+     *
+     * @param wordList
+     * @param type
+     * @param standConvertCrfVOList
+     */
+    public List<String> getConvertList(List<String> wordList, String type, List<StandConvertCrfVO> standConvertCrfVOList) {
+        List<String> convertList = new ArrayList<>();
+        if (ListUtil.isEmpty(wordList)) {
+            return null;
+        }
+
+        if (ListUtil.isNotEmpty(wordList)) {
+            for (String s : wordList) {
+                String value = redisUtil.get(type + "Conv:" + s);
+                if (value == null) {
+                    StandConvertCrfVO standConvertCrfVO = new StandConvertCrfVO();
+                    standConvertCrfVO.setWord_type(type);
+                    standConvertCrfVO.setWord(s);
+                    standConvertCrfVOList.add(standConvertCrfVO);
+                    if (!convertList.contains(s)) {
+                        convertList.add(s);
+                    }
+                }
+            }
+        }
+        return convertList;
+    }
+
+    /**
+     * 获取标准词转换map结果,并更新redis
+     *
+     * @param crfDTO
+     * @param type
+     * @param convertList
+     * @param map
+     */
+    public void getConvertMap(Map<String, Map<String, StandConvertCrfDTO>> crfDTO, String type, List<String> convertList,
+                              List<String> originList, Map<String, Map<String, String>> map) {
+        Map<String, String> typeMap = new LinkedHashMap<>();
+
+        if (ListUtil.isNotEmpty(convertList)) {
+            Map<String, StandConvertCrfDTO> crfMap = crfDTO.get(type);
+            for (String s : convertList) {
+                String lastS = s;
+                if (StringUtil.isBlank(s)) {
+                    continue;
+                }
+                if (crfMap != null) {
+                    StandConvertCrfDTO standConvertCrfDTO = crfMap.get(s);
+                    if (standConvertCrfDTO != null) {
+                        List<Map<String, String>> list = standConvertCrfDTO.getStandard_words();
+                        if (ListUtil.isEmpty(list)) {
+                            redisUtil.updateValue(type + "Conv:" + s, s);
+                        } else {
+                            String rateStr = standConvertCrfDTO.getStandard_words().get(0).get("rate");
+                            if (StringUtil.isBlank(rateStr)) {
+                                redisUtil.updateValue(type + "Conv:" + s, s);
+                            } else {
+                                BigDecimal rate = new BigDecimal(rateStr);
+                                int flag = rate.compareTo(new BigDecimal(standConvertRate));
+                                if (flag < 0) {
+                                    redisUtil.updateValue(type + "Conv:" + s, s);
+                                } else {
+                                    redisUtil.updateValue(type + "Conv:" + s, standConvertCrfDTO.getStandard_words().get(0).get("standard_word"));
+                                    lastS = standConvertCrfDTO.getStandard_words().get(0).get("standard_word");
+                                }
+                            }
+                        }
+                    } else {
+                        redisUtil.updateValue(type + "Conv:" + s, s);
+                    }
+                } else {
+                    redisUtil.updateValue(type + "Conv:" + s, s);
+                }
+                typeMap.put(s, lastS);
+            }
+        }
+        // 将所有的词放入typeMap中
+        for (String s : originList) {
+            if (!typeMap.containsKey(s)) {
+                String value = redisUtil.get(type + "Conv:" + s);
+                typeMap.put(s, value);
+            }
+        }
+        map.put(type, typeMap);
+    }
+
+    /**
+     * 手术映射(关闭同义词转换)
+     *
+     * @param wordCrfDTO
+     */
+    public void operateGetAndSet(WordCrfDTO wordCrfDTO) {
+        // 【所有手术】
+        List<String> operationList = new ArrayList<>();
+        // 1、主诉手术
+        CoreUtil.addList(operationList, CoreUtil.getPropertyList(wordCrfDTO.getChiefLabel().getOperations()));
         // 2、现病史手术
-        CoreUtil.setPropertyList(presentLabel.getOperations(), map.get(StandConvertEnum.operation.toString()));
+        CoreUtil.addList(operationList, CoreUtil.getPropertyList(wordCrfDTO.getPresentLabel().getOperations()));
         // 3、既往史手术
-        CoreUtil.setPropertyList(pastLabel.getOperations(), map.get(StandConvertEnum.operation.toString()));
+        CoreUtil.addList(operationList, CoreUtil.getPropertyList(wordCrfDTO.getPastLabel().getOperations()));
         // 4、开单手术
-        CoreUtil.setPropertyList(wordCrfDTO.getOperationOrder(), "name", "uniqueName", map.get(StandConvertEnum.operation.toString()));
+        CoreUtil.addList(operationList, CoreUtil.filterUniqueList(wordCrfDTO.getOperationOrder()));
         // 5、结构化手术
-        CoreUtil.setPropertyList(wordCrfDTO.getOperation(), "name", "uniqueName", map.get(StandConvertEnum.operation.toString()));
+        CoreUtil.addList(operationList, CoreUtil.filterUniqueList(wordCrfDTO.getOperation()));
         // 6、选中手术
-        CoreUtil.setPropertyList(wordCrfDTO.getOperationName(), "name", "uniqueName", map.get(StandConvertEnum.operation.toString()));
+        if (wordCrfDTO.getOperationName() != null && StringUtils.isBlank(wordCrfDTO.getOperationName().getUniqueName())) {
+            operationList.add(wordCrfDTO.getOperationName().getName());
+        }
+        operationList = operationList
+                .stream()
+                .distinct()
+                .collect(Collectors.toList());
 
-        //【输血回填】
-        CoreUtil.setPropertyList(wordCrfDTO.getTransfusionOrder(), "name", "uniqueName", map.get(StandConvertEnum.transfusion.toString()));
+        Map<String, Map<String, Long>> configMap = new LinkedHashMap<>();
+        if (ListUtil.isNotEmpty(operationList)) {
+            configMap = tranOperationConfigFacade.getConfigMap(wordCrfDTO.getHospitalId(), operationList, null);
+            // 1、主诉手术
+            setListProperty(wordCrfDTO.getChiefLabel(), "operations", "standName", configMap);
+            // 2、现病史手术
+            setListProperty(wordCrfDTO.getPresentLabel(), "operations", "standName", configMap);
+            // 3、既往史手术
+            setListProperty(wordCrfDTO.getPastLabel(), "operations", "standName", configMap);
+            // 4、开单手术
+            setListProperty(wordCrfDTO, "operation", "uniqueName", configMap);
+            // 5、结构化手术
+            setListProperty(wordCrfDTO, "operationOrder", "uniqueName", configMap);
+            // 6、选中手术
+            if (wordCrfDTO.getOperationName() != null &&
+                    StringUtil.isNotBlank(wordCrfDTO.getOperationName().getName()) &&
+                    StringUtil.isBlank(wordCrfDTO.getOperationName().getUniqueName())) {
+                wordCrfDTO.getOperationName().setUniqueName(wordCrfDTO.getOperationName().getName());
+            }
+        }
+    }
+
+    /**
+     * 辅检映射(关闭同义词转换)
+     *
+     * @param wordCrfDTO
+     */
+    public void pacsGetAndSet(WordCrfDTO wordCrfDTO) {
+        // 【所有辅检】
+        List<String> pacsList = new ArrayList<>();
+        // 1、结构化
+        CoreUtil.addList(pacsList, CoreUtil.getPropertyList(wordCrfDTO.getPacs()));
+        // 2、开单
+        CoreUtil.addList(pacsList, CoreUtil.getPropertyList(wordCrfDTO.getPacsOrder()));
+
+        pacsList = pacsList
+                .stream()
+                .distinct()
+                .collect(Collectors.toList());
+
+        Map<String, Map<String, Long>> configMap = new LinkedHashMap<>();
+        if (ListUtil.isNotEmpty(pacsList)) {
+            configMap = pacsConfigFacade.getConfigMap(wordCrfDTO.getHospitalId(), pacsList, null);
+
+            // 4、结构化
+            setListProperty(wordCrfDTO, "pacs", "uniqueName", configMap);
+            // 5、开单
+            setListProperty(wordCrfDTO, "pacsOrder", "uniqueName", configMap);
+        }
+    }
+
+    /**
+     * 替换映射内容
+     *
+     * @param obj          对象
+     * @param listProperty 获取List属性名
+     * @param objProperty  对象属性名
+     * @param configMap    映射Map
+     */
+    public <T> void setListProperty(Object obj, String listProperty, String objProperty, Map<String, Map<String, Long>> configMap) {
+        Object tList = CoreUtil.getFieldValue(obj, listProperty);
+        List<T> newList = convertStandName((List) tList, configMap, objProperty);
+        ReflectUtil.setProperty(obj, listProperty, newList);
+    }
+
+    /**
+     * 标准名称转换
+     *
+     * @param list
+     * @param configMap
+     * @param fieldName
+     * @param <T>
+     * @return
+     */
+    public <T> List<T> convertStandName(List<T> list, Map<String, Map<String, Long>> configMap, String fieldName) {
+        List<T> retList = new ArrayList<>();
+        try {
+            if (ListUtil.isEmpty(list)) {
+                return retList;
+            }
+            for (T item : list) {
+                String name = item.getClass().getMethod("getName").invoke(item).toString();
+                if (StringUtil.isBlank(name)) {
+                    retList.add(item);
+                    continue;
+                }
+                if (fieldName.equals("uniqueName")) {
+                    String uniqueName = item.getClass().getMethod("getUniqueName").invoke(item).toString();
+                    if (StringUtil.isNotBlank(uniqueName)) {
+                        retList.add(item);
+                        continue;
+                    }
+                }
+                if (configMap.containsKey(name)) {
+                    List<String> standNames = new ArrayList<>(configMap.get(name).keySet());
+                    for (String stdName : standNames) {
+                        T o = (T) item.getClass().newInstance();
+                        BeanUtil.copyProperties(item, o);
+                        BeanUtils.copyProperty(o, fieldName, stdName);
+                        retList.add(o);
+                    }
+                } else {
+                    if (fieldName.equals("uniqueName")) {
+                        BeanUtils.copyProperty(item, fieldName, name);
+                    }
+                    retList.add(item);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return retList;
     }
 
     /**

+ 12 - 0
src/main/java/com/diagbot/facade/ConceptInfoFacade.java

@@ -1,6 +1,7 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.dto.CustomDictionaryDTO;
 import com.diagbot.dto.ReverseDTO;
 import com.diagbot.entity.ConceptInfo;
 import com.diagbot.enums.IsDeleteEnum;
@@ -8,6 +9,7 @@ import com.diagbot.service.impl.ConceptInfoServiceImpl;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.ReverseVO;
 import com.google.common.collect.Lists;
+import com.hankcs.hanlp.dictionary.CustomDictionary;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -49,4 +51,14 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
         }
         return Lists.newArrayList();
     }
+
+    public void loadCustomDictionary(){
+        CustomDictionary.reload();
+        List<CustomDictionaryDTO> words = this.getAllWord();
+        if (ListUtil.isNotEmpty(words)){
+            for (CustomDictionaryDTO dictionaryDTO: words){
+                CustomDictionary.insert(dictionaryDTO.getName().trim().replaceAll(" ",""), dictionaryDTO.getType());
+            }
+        }
+    }
 }

+ 14 - 0
src/main/java/com/diagbot/facade/DeptPushFacade.java

@@ -0,0 +1,14 @@
+package com.diagbot.facade;
+
+import com.diagbot.service.impl.SysDeptPushServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2020/11/19 15:21
+ */
+@Component
+public class DeptPushFacade extends SysDeptPushServiceImpl {
+
+}

+ 30 - 41
src/main/java/com/diagbot/facade/IndicationFacade.java

@@ -6,15 +6,12 @@ import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.util.CoreUtil;
-import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamUtil;
 import com.diagbot.vo.IndicationPushVO;
-import com.diagbot.vo.StandConvert;
 import io.github.lvyahui8.spring.facade.DataFacade;
 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.LinkedHashMap;
@@ -40,16 +37,14 @@ public class IndicationFacade {
     @Autowired
     KlRegularConfigFacade klRegularConfigFacade;
 
-    private static final Map<String, List<String>> methodMap;
-
-    static {
-        methodMap = new HashMap<>();
-        methodMap.put("1", Arrays.asList("crf", "stand"));
-        methodMap.put("2", Arrays.asList("crf", "stand"));
-        methodMap.put("3", Arrays.asList("crf", "stand"));
-        methodMap.put("4", Arrays.asList("crf", "stand"));
-    }
-
+    // private static final Map<String, List<String>> methodMap;
+    // static {
+    //     methodMap = new HashMap<>();
+    //     methodMap.put("1", Arrays.asList("crf", "stand"));
+    //     methodMap.put("2", Arrays.asList("crf", "stand"));
+    //     methodMap.put("3", Arrays.asList("crf", "stand"));
+    //     methodMap.put("4", Arrays.asList("crf", "stand"));
+    // }
 
     /**
      * 提示总入口
@@ -64,36 +59,16 @@ public class IndicationFacade {
         List<String> ruleTypeList = Arrays.asList(indicationPushVO.getRuleType().split(","));
         indicationPushVO.setRuleTypeList(ruleTypeList);
 
-        List<String> methodList = new ArrayList<>();
-        for (String ruleType : ruleTypeList) {
-            if (ListUtil.isNotEmpty(methodMap.get(ruleType))) {
-                List<String> methods = methodMap.get(ruleType);
-                for (String method : methods) {
-                    if (!methodList.contains(method)) {
-                        methodList.add(method);
-                    }
-                }
-            }
-        }
-
-        WordCrfDTO wordCrfDTO = new WordCrfDTO();
-        long l1 = System.currentTimeMillis();
+        long start = System.currentTimeMillis();
+        // CRF模型处理
+        WordCrfDTO wordCrfDTO = commonFacade.crf_process(indicationPushVO, false);
+        CoreUtil.getDebugStr(start, "模型处理耗时", debug);
 
-        // 模型处理数据
-        long crfStart = System.currentTimeMillis();
-        if (methodList.contains("crf")) {
-            wordCrfDTO = commonFacade.crf_process(indicationPushVO);
-        }
-        CoreUtil.getDebugStr(crfStart, "模型处理耗时", debug);
-
-        // 标准词转换
+        // 同义词转换
         long standStart = System.currentTimeMillis();
-        if (methodList.contains("stand")) {
-            StandConvert standConvert = commonFacade.dataTypeGet(wordCrfDTO);
-            Map<String, Map<String, String>> standConvertMap = neoFacade.standConvertCrf(standConvert);
-            commonFacade.dataTypeSet(wordCrfDTO, standConvertMap);
-        }
+        commonFacade.wordStandConvert(wordCrfDTO);
         CoreUtil.getDebugStr(standStart, "标准词转换耗时", debug);
+
         //正则匹配开始
         wordCrfDTO = klRegularConfigFacade.getRegularConfigs(wordCrfDTO, indicationPushVO);
         //正则匹配结束
@@ -114,8 +89,22 @@ public class IndicationFacade {
         }
 
         // 输入调试信息
-        CoreUtil.getDebugStr(l1, "本次调用总计耗时", res.getDebug());
+        CoreUtil.getDebugStr(start, "本次调用总计耗时", res.getDebug());
         CoreUtil.getDebugObject("数据", res.getDebug(), wordCrfDTO);
         return res;
     }
+
+    /**
+     * 提示总入口
+     *
+     * @param
+     * @return
+     */
+    public WordCrfDTO getWordCrfDTO(IndicationPushVO indicationPushVO) {
+        // CRF模型处理
+        WordCrfDTO wordCrfDTO = commonFacade.crf_process(indicationPushVO, true);
+        // 同义词转换
+        commonFacade.wordStandConvert(wordCrfDTO);
+        return wordCrfDTO;
+    }
 }

+ 72 - 5
src/main/java/com/diagbot/facade/KlConceptFacade.java

@@ -2,8 +2,12 @@ package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.GetAllForRelationDTO;
+import com.diagbot.dto.IndexBatchDTO;
 import com.diagbot.dto.KllisDetailDTO;
 import com.diagbot.entity.KlConcept;
+import com.diagbot.entity.KlDisease;
+import com.diagbot.entity.TcmDisease;
+import com.diagbot.entity.TcmSyndrome;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconEnum;
 import com.diagbot.enums.StatusEnum;
@@ -16,6 +20,7 @@ import com.diagbot.vo.KllisDetailVO;
 import com.diagbot.vo.SearchConceptVO;
 import com.google.common.collect.Lists;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
@@ -32,18 +37,25 @@ import java.util.stream.Collectors;
 @Component
 public class KlConceptFacade extends KlConceptServiceImpl {
 
+    @Autowired
+    private KlDiseaseFacade klDiseaseFacade;
+    @Autowired
+    private TcmDiseaseFacade tcmDiseaseFacade;
+    @Autowired
+    private TcmSyndromeFacade tcmSyndromeFacade;
+
     /**
      * 批量校验标准术语
      *
      * @param conceptVO
      * @return
      */
-    public List<String> getConceptNames(ConceptVO conceptVO) {
+    public List<IndexBatchDTO> getConceptNames(ConceptVO conceptVO) {
         if (ListUtil.isEmpty(conceptVO.getNames())) {
             return new ArrayList<>();
         }
-        List<String> retList = Lists.newLinkedList();
-        //type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理
+        List<IndexBatchDTO> retList = Lists.newLinkedList();
+        //type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候
         Integer type = convertType(conceptVO.getType());
 
         QueryWrapper<KlConcept> queryWrapper = new QueryWrapper<>();
@@ -58,7 +70,55 @@ public class KlConceptFacade extends KlConceptServiceImpl {
         List<KlConcept> concepts = this.list(queryWrapper);
 
         if (ListUtil.isNotEmpty(concepts)) {
-            retList = concepts.stream().map(i -> i.getLibName()).distinct().collect(Collectors.toList());
+            for (KlConcept concept : concepts) {
+                IndexBatchDTO dto = new IndexBatchDTO();
+                dto.setId(concept.getId());
+                dto.setName(concept.getLibName());
+                retList.add(dto);
+            }
+        }
+
+        if (ListUtil.isEmpty(retList)) {
+            return retList;
+        }
+        List<Long> conceptIds = retList.stream().map(IndexBatchDTO::getId).collect(Collectors.toList());
+
+        if (type.equals(LexiconEnum.Disease.getKey())) {
+            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());
+                    }
+                }
+            }
+        } else if (type.equals(LexiconEnum.Tcmdisease.getKey())) {
+            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());
+                    }
+                }
+            }
+        } else if (type.equals(LexiconEnum.Tcmsyndrome.getKey())) {
+            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;
@@ -67,7 +127,7 @@ public class KlConceptFacade extends KlConceptServiceImpl {
 
     public Integer convertType(Integer type) {
         Integer retType = null;
-        //type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理
+        //type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候
         switch (type) {
             case 1:
                 retType = LexiconEnum.LisName.getKey();
@@ -98,6 +158,13 @@ public class KlConceptFacade extends KlConceptServiceImpl {
                 break;
             case 11:
                 retType = LexiconEnum.Nurse.getKey();
+                break;
+            case 12:
+                retType = LexiconEnum.Tcmdisease.getKey();
+                break;
+            case 13:
+                retType = LexiconEnum.Tcmsyndrome.getKey();
+                break;
             default:
                 break;
         }

+ 28 - 1
src/main/java/com/diagbot/facade/MedRetrievalFacade.java

@@ -1,5 +1,6 @@
 package com.diagbot.facade;
 
+import com.diagbot.dto.AnesthesiaInfoDTO;
 import com.diagbot.dto.DictionaryInfoDTO;
 import com.diagbot.dto.DiseaseInfoDTO;
 import com.diagbot.dto.DrugInfoDTO;
@@ -10,6 +11,8 @@ import com.diagbot.dto.OperationInfoDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.dto.ScaleInfoDTO;
 import com.diagbot.dto.StaticKnowledgeIndexDTO;
+import com.diagbot.dto.TcmdiseaseInfoDTO;
+import com.diagbot.dto.TcmsyndromeInfoDTO;
 import com.diagbot.enums.LexiconEnum;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.EntityUtil;
@@ -58,7 +61,7 @@ public class MedRetrievalFacade {
         List<IndexDTO> indexList = Lists.newLinkedList();
 
         /**
-         * 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、9-症状、10-量表、11-护理
+         * 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、9-症状、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉
          */
         switch (retrievalVO.getType()) {
             case 1:
@@ -162,6 +165,30 @@ public class MedRetrievalFacade {
                     retrievalDTO.setNursenames(BeanUtil.listCopyTo(indexList, NurseInfoDTO.class));
                 }
                 break;
+            case 12:
+                medRetrievalVO.setTypeId(LexiconEnum.Tcmdisease.getKey());
+                medRetrievalVO.getTypeIds().add(LexiconEnum.Tcmdisease.getKey());
+                indexList = klConceptFacade.index(medRetrievalVO);
+                if (ListUtil.isNotEmpty(indexList)) {
+                    retrievalDTO.setTcmdiseaseNames(BeanUtil.listCopyTo(indexList, TcmdiseaseInfoDTO.class));
+                }
+                break;
+            case 13:
+                medRetrievalVO.setTypeId(LexiconEnum.Tcmsyndrome.getKey());
+                medRetrievalVO.getTypeIds().add(LexiconEnum.Tcmsyndrome.getKey());
+                indexList = klConceptFacade.index(medRetrievalVO);
+                if (ListUtil.isNotEmpty(indexList)) {
+                    retrievalDTO.setTcmsyndromeNames(BeanUtil.listCopyTo(indexList, TcmsyndromeInfoDTO.class));
+                }
+                break;
+            case 14:
+                medRetrievalVO.setTypeId(LexiconEnum.Anesthesia.getKey());
+                medRetrievalVO.getTypeIds().add(LexiconEnum.Anesthesia.getKey());
+                indexList = klConceptFacade.index(medRetrievalVO);
+                if (ListUtil.isNotEmpty(indexList)) {
+                    retrievalDTO.setAnesthesiaInfonames(BeanUtil.listCopyTo(indexList, AnesthesiaInfoDTO.class));
+                }
+                break;
         }
         return retrievalDTO;
     }

+ 73 - 0
src/main/java/com/diagbot/facade/NLPFacade.java

@@ -0,0 +1,73 @@
+package com.diagbot.facade;
+
+import com.google.common.collect.Lists;
+import com.hankcs.hanlp.HanLP;
+import com.hankcs.hanlp.seg.common.Term;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/5/25 20:13
+ */
+@Component
+public class NLPFacade {
+
+    public String segment(String text) {
+        return HanLP.segment(text).toString();
+    }
+
+    /**
+     * 返回所有结果
+     *
+     * @param text
+     * @return
+     */
+    public Map<String, List<String>> getMap(String text) {
+        Map<String, List<String>> map = new LinkedHashMap<>();
+        List<Term> termList = HanLP.segment(text);
+        for (Term term : termList) {
+            String word = term.word;
+            String type = term.nature.toString();
+            List<String> splitTypeList = Lists.newArrayList(type.split(","));
+            for (String t : splitTypeList) {
+                if (map.get(t) != null) {
+                    map.get(t).add(word);
+                } else {
+                    List<String> wordList = Lists.newArrayList();
+                    wordList.add(word);
+                    map.put(t, wordList);
+                }
+            }
+        }
+        return map;
+    }
+
+    /**
+     * 根据指定指定返回结果
+     *
+     * @param text
+     * @param filterType
+     * @return
+     */
+    public List<String> getByType(String text, String filterType) {
+        List<String> res = Lists.newArrayList();
+        List<Term> termList = HanLP.segment(text);
+        for (Term term : termList) {
+            String word = term.word;
+            String type = term.nature.toString();
+            List<String> splitTypeList = Lists.newArrayList(type.split(","));
+            for (String splitType : splitTypeList) {
+                if (filterType.equals(splitType)) {
+                    res.add(word);
+                }
+            }
+        }
+        return res;
+    }
+
+}

+ 4 - 211
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -9,17 +9,12 @@ import com.diagbot.dto.DrugTypeCacheDTO;
 import com.diagbot.dto.DrugTypeDTO;
 import com.diagbot.dto.NeoPushDTO;
 import com.diagbot.dto.RuleDTO;
-import com.diagbot.dto.StandConvertCrfBatchDTO;
-import com.diagbot.dto.StandConvertCrfDTO;
 import com.diagbot.entity.KlDiseaseCorresponding;
 import com.diagbot.entity.SymptomFeature;
 import com.diagbot.entity.TranHospitalFilter;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.PushRelationTypeEnum;
 import com.diagbot.enums.RedisEnum;
-import com.diagbot.enums.StandConvertEnum;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
 import com.diagbot.model.entity.PD;
 import com.diagbot.service.KlDiseaseCorrespondingService;
 import com.diagbot.service.SymptomFeatureService;
@@ -30,8 +25,6 @@ import com.diagbot.util.RedisUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.DiseaseItemVO;
 import com.diagbot.vo.NeoPushVO;
-import com.diagbot.vo.StandConvert;
-import com.diagbot.vo.StandConvertCrfVO;
 import com.diagbot.vo.neoPushEntity.ChiefPushVo;
 import com.diagbot.vo.neoPushEntity.Diag;
 import com.diagbot.vo.neoPushEntity.PresentPushVo;
@@ -41,11 +34,9 @@ import com.google.common.collect.Maps;
 import org.apache.commons.collections.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 
-import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
@@ -72,8 +63,6 @@ public class NeoFacade {
     @Autowired
     @Qualifier("redisTemplateForSimilar")
     RedisTemplate redisTemplate;
-    @Value("${StandConvert.rate}")
-    String standConvertRate;
     @Autowired
     SymptomFeatureService symptomFeatureService;
     @Autowired
@@ -447,6 +436,10 @@ public class NeoFacade {
                 neoPushDTO.setDifferentialDis(items.get(PushRelationTypeEnum.DIFFDIAGNOSE.getKey())
                         .stream().map(x -> NeoUtil.updatePushInfo(x)).collect(Collectors.toList()));
             }
+            if (ListUtil.isNotEmpty(items.get(PushRelationTypeEnum.SCALE.getKey()))) {
+                neoPushDTO.setScales(items.get(PushRelationTypeEnum.SCALE.getKey())
+                        .stream().map(x -> NeoUtil.updatePushInfo(x)).collect(Collectors.toList()));
+            }
         }
         return neoPushDTO;
     }
@@ -485,206 +478,6 @@ public class NeoFacade {
         }
     }
 
-
-    /**
-     * 标准词转换
-     * 类型,疾病: disease,症状: symptom,手术和操作:operation,药品: drug,实验室检查:lis,辅助检查:pacs, 辅助检查:vital"
-     *
-     * @param standConvert
-     * @return Map<String,Map<String,String>> -->Map<类型, Map<原始词, 标准词>>
-     */
-    public Map<String, Map<String, String>> standConvertCrf(StandConvert standConvert) {
-        Map<String, Map<String, String>> map = new LinkedHashMap<>();
-
-        List<StandConvertCrfVO> standConvertCrfVOList = new ArrayList<>();
-        List<String> clinicalConList = getConvertList(standConvert.getClinicalList(), StandConvertEnum.symptom.toString(), standConvertCrfVOList);
-        List<String> operationConList = getConvertList(standConvert.getOperationList(), StandConvertEnum.operation.toString(), standConvertCrfVOList);
-        List<String> drugConList = getConvertList(standConvert.getDrugList(), StandConvertEnum.drug.toString(), standConvertCrfVOList);
-        List<String> vitallConList = getConvertList(standConvert.getVitalList(), StandConvertEnum.vital.toString(), standConvertCrfVOList);
-        List<String> diseaseConList = getConvertList(standConvert.getDiaglList(), StandConvertEnum.disease.toString(), standConvertCrfVOList);
-        List<String> pacsConList = getConvertList(standConvert.getPacsList(), StandConvertEnum.pacs.toString(), standConvertCrfVOList);
-        List<String> lisConList = getConvertList(standConvert.getLisList(), StandConvertEnum.lis.toString(), standConvertCrfVOList);
-        List<String> transfusionConList = getConvertList(standConvert.getTransfusionList(), StandConvertEnum.transfusion.toString(), standConvertCrfVOList);
-
-        StandConvertCrfBatchDTO standConvertCrfBatchDTO = new StandConvertCrfBatchDTO();
-        if (!(ListUtil.isEmpty(clinicalConList) && ListUtil.isEmpty(operationConList) && ListUtil.isEmpty(drugConList)
-                && ListUtil.isEmpty(vitallConList) && ListUtil.isEmpty(diseaseConList) && ListUtil.isEmpty(pacsConList)
-                && ListUtil.isEmpty(lisConList) && ListUtil.isEmpty(transfusionConList))) {
-            try {
-                standConvertCrfBatchDTO = standConvertServiceClient.similarityBatch(standConvertCrfVOList);
-            } catch (Exception e) {
-                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "标准词转换【服务器】挂了!" + e.getMessage());
-            }
-        }
-
-        Map<String, Map<String, StandConvertCrfDTO>> crfMap = standConvertCrfBatchDTO.getData();
-        getConvertMap(crfMap, StandConvertEnum.symptom.toString(), clinicalConList, standConvert.getClinicalList(), map);
-        getConvertMap(crfMap, StandConvertEnum.operation.toString(), operationConList, standConvert.getOperationList(), map);
-        getConvertMap(crfMap, StandConvertEnum.drug.toString(), drugConList, standConvert.getDrugList(), map);
-        getConvertMap(crfMap, StandConvertEnum.vital.toString(), vitallConList, standConvert.getVitalList(), map);
-        getConvertMap(crfMap, StandConvertEnum.disease.toString(), diseaseConList, standConvert.getDiaglList(), map);
-        getConvertMap(crfMap, StandConvertEnum.pacs.toString(), pacsConList, standConvert.getPacsList(), map);
-        getConvertMap(crfMap, StandConvertEnum.lis.toString(), lisConList, standConvert.getLisList(), map);
-        getConvertMap(crfMap, StandConvertEnum.transfusion.toString(), transfusionConList, standConvert.getTransfusionList(), map);
-
-        return map;
-    }
-
-    /**
-     * 入参数据处理
-     *
-     * @param wordList
-     * @param type
-     * @param standConvertCrfVOList
-     */
-    public List<String> getConvertList(List<String> wordList, String type, List<StandConvertCrfVO> standConvertCrfVOList) {
-        List<String> convertList = new ArrayList<>();
-        if (ListUtil.isEmpty(wordList)) {
-            return null;
-        }
-
-        if (ListUtil.isNotEmpty(wordList)) {
-            for (String s : wordList) {
-                String value = redisUtil.get(type + "Conv:" + s);
-                if (value == null) {
-                    StandConvertCrfVO standConvertCrfVO = new StandConvertCrfVO();
-                    standConvertCrfVO.setWord_type(type);
-                    standConvertCrfVO.setWord(s);
-                    standConvertCrfVOList.add(standConvertCrfVO);
-                    if (!convertList.contains(s)) {
-                        convertList.add(s);
-                    }
-                }
-            }
-        }
-        return convertList;
-    }
-
-    /**
-     * 获取标准词转换map结果,并更新redis
-     *
-     * @param crfDTO
-     * @param type
-     * @param convertList
-     * @param map
-     */
-    public void getConvertMap(Map<String, Map<String, StandConvertCrfDTO>> crfDTO, String type, List<String> convertList,
-                              List<String> originList, Map<String, Map<String, String>> map) {
-        Map<String, String> typeMap = new LinkedHashMap<>();
-
-        if (ListUtil.isNotEmpty(convertList)) {
-            Map<String, StandConvertCrfDTO> crfMap = crfDTO.get(type);
-            for (String s : convertList) {
-                String lastS = s;
-                if (StringUtil.isBlank(s)) {
-                    continue;
-                }
-                if (crfMap != null) {
-                    StandConvertCrfDTO standConvertCrfDTO = crfMap.get(s);
-                    if (standConvertCrfDTO != null) {
-                        List<Map<String, String>> list = standConvertCrfDTO.getStandard_words();
-                        if (ListUtil.isEmpty(list)) {
-                            redisUtil.updateValue(type + "Conv:" + s, s);
-                        } else {
-                            String rateStr = standConvertCrfDTO.getStandard_words().get(0).get("rate");
-                            if (StringUtil.isBlank(rateStr)) {
-                                redisUtil.updateValue(type + "Conv:" + s, s);
-                            } else {
-                                BigDecimal rate = new BigDecimal(rateStr);
-                                int flag = rate.compareTo(new BigDecimal(standConvertRate));
-                                if (flag < 0) {
-                                    redisUtil.updateValue(type + "Conv:" + s, s);
-                                } else {
-                                    redisUtil.updateValue(type + "Conv:" + s, standConvertCrfDTO.getStandard_words().get(0).get("standard_word"));
-                                    lastS = standConvertCrfDTO.getStandard_words().get(0).get("standard_word");
-                                }
-                            }
-                        }
-                    } else {
-                        redisUtil.updateValue(type + "Conv:" + s, s);
-                    }
-                } else {
-                    redisUtil.updateValue(type + "Conv:" + s, s);
-                }
-                typeMap.put(s, lastS);
-            }
-        }
-        // 将所有的词放入typeMap中
-        for (String s : originList) {
-            if (!typeMap.containsKey(s)) {
-                String value = redisUtil.get(type + "Conv:" + s);
-                typeMap.put(s, value);
-            }
-        }
-        map.put(type, typeMap);
-    }
-
-
-    /**
-     * 获取标准词转换map结果,并更新redis
-     *
-     * @param crfDTO
-     * @param type
-     * @param convertList
-     * @param map
-     */
-    public void getConvertMapDisease(Map<String, Map<String, StandConvertCrfDTO>> crfDTO, String type, List<String> convertList,
-                                     List<String> originList, Map<String, Map<String, String>> map) {
-        Map<String, String> typeMap = new LinkedHashMap<>();
-
-        if (ListUtil.isNotEmpty(convertList)) {
-            Map<String, StandConvertCrfDTO> crfMap = crfDTO.get(type);
-            for (String s : convertList) {
-                boolean convertFlag = false;
-                String lastS = s;
-                if (StringUtil.isBlank(s)) {
-                    continue;
-                }
-                if (crfMap != null) {
-                    StandConvertCrfDTO standConvertCrfDTO = crfMap.get(s);
-                    if (standConvertCrfDTO != null) {
-                        List<Map<String, String>> list = standConvertCrfDTO.getStandard_words();
-                        if (ListUtil.isEmpty(list)) {
-                            redisUtil.updateValue(type + "Conv:" + s, "");
-                        } else {
-                            String rateStr = standConvertCrfDTO.getStandard_words().get(0).get("rate");
-                            if (StringUtil.isBlank(rateStr)) {
-                                redisUtil.updateValue(type + "Conv:" + s, "");
-                            } else {
-                                BigDecimal rate = new BigDecimal(rateStr);
-                                int flag = rate.compareTo(new BigDecimal(standConvertRate));
-                                if (flag < 0) {
-                                    redisUtil.updateValue(type + "Conv:" + s, "");
-                                } else {
-                                    redisUtil.updateValue(type + "Conv:" + s, standConvertCrfDTO.getStandard_words().get(0).get("standard_word"));
-                                    lastS = standConvertCrfDTO.getStandard_words().get(0).get("standard_word");
-                                    convertFlag = true;
-                                }
-                            }
-                        }
-                    } else {
-                        redisUtil.updateValue(type + "Conv:" + s, "");
-                    }
-                } else {
-                    redisUtil.updateValue(type + "Conv:" + s, "");
-                }
-                if (convertFlag) {
-                    typeMap.put(s, lastS);
-                } else {
-                    typeMap.put(s, "");
-                }
-            }
-        }
-        // 将所有的词放入typeMap中
-        for (String s : originList) {
-            if (!typeMap.containsKey(s)) {
-                String value = redisUtil.get(type + "Conv:" + s);
-                typeMap.put(s, value);
-            }
-        }
-        map.put(type, typeMap);
-    }
-
     public void allRuleCache() {
         List<RuleDTO> ruleDTOList = klRuleFacade.getAllRule();
         if (ListUtil.isNotEmpty(ruleDTOList)) {

+ 63 - 26
src/main/java/com/diagbot/facade/PushFacade.java

@@ -1,5 +1,6 @@
 package com.diagbot.facade;
 
+import com.diagbot.biz.push.entity.Item;
 import com.diagbot.client.PushNewServiceClient;
 import com.diagbot.dto.PushBaseDTO;
 import com.diagbot.dto.PushDTO;
@@ -7,10 +8,10 @@ import com.diagbot.dto.PushNewDTO;
 import com.diagbot.dto.PushPlanDTO;
 import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.enums.DiagnoseTypeEnum;
-import com.diagbot.enums.DiseasePushTypeEnum;
 import com.diagbot.enums.RedisEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.model.entity.Diag;
 import com.diagbot.process.PushProcess;
 import com.diagbot.util.CoreUtil;
 import com.diagbot.util.ListUtil;
@@ -20,10 +21,10 @@ import com.diagbot.util.StringUtil;
 import com.diagbot.vo.PushNewVO;
 import com.diagbot.vo.PushPlanVO;
 import com.diagbot.vo.PushVO;
-import com.diagbot.vo.StandConvert;
 import com.google.common.collect.Lists;
 import io.github.lvyahui8.spring.facade.DataFacade;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.HashMap;
@@ -54,6 +55,8 @@ public class PushFacade {
     PushNewServiceClient pushNewServiceClient;
     @Autowired
     RedisUtil redisUtil;
+    @Value("${PushNew.url}")
+    String pushUrl;
 
     /**
      * 推送fac(兼容新版和5.0)
@@ -62,19 +65,36 @@ public class PushFacade {
      * @return
      */
     public PushDTO pushFac(PushVO pushVO) {
-        String pushVersion = redisUtil.getByKeyAndField(RedisEnum.pushVersion.getName(),
+        // 获取pushMode
+        Integer pushModel = redisUtil.getByKeyAndField(RedisEnum.pushModel.getName(),
                 RedisEnum.hospitalId_.getName() + pushVO.getHospitalId());
-        if (StringUtil.isNotBlank(pushVersion) && "old".equals(pushVersion)) {
-            // 使用5.0推送
-            return processAggreate(pushVO);
-        } else {
-            // 使用新版推送
-            return pushNewFac(pushVO);
+        switch (pushModel) {
+            case 0:  // 使用新版推送
+                return pushNewFac(pushVO, "0");
+            case 1: // 使用5.0推送
+                return processAggreate(pushVO);
+            case 2:  // 走科室对应的模型,如果找不到,使用5.0推理
+                List<Item> deptList = pushVO.getDept();
+                String modelType = "0";
+                if (ListUtil.isNotEmpty(deptList)) {
+                    if (StringUtil.isNotBlank(deptList.get(0).getUniqueName())) {
+                        modelType = redisUtil.getByKeyAndField(RedisEnum.deptPush.getName(),
+                                deptList.get(0).getUniqueName());
+                    }
+                }
+                if (modelType == null || "0".equals(modelType)) {
+                    return processAggreate(pushVO);
+                } else {
+                    return pushNewFac(pushVO, modelType);
+                }
+            default: // 默认使用新版推送
+                return pushNewFac(pushVO, "0");
         }
     }
 
     /**
      * 5.0 推送总入口
+     *
      * @param pushVo
      * @return
      */
@@ -84,7 +104,8 @@ public class PushFacade {
             pushVo.setAgeNum(CoreUtil.convertAge(pushVo.getAge()));
         }
         PushDTO pushDTO = new PushDTO();
-        Integer pushMode = tranHospitalInfoFacade.getPushMode(pushVo.getHospitalId());
+        pushDTO = this.pushFacIcss(pushVo);
+        /*Integer pushMode = tranHospitalInfoFacade.getPushMode(pushVo.getHospitalId());
         //全科推送,走5.0
         if (pushMode.equals(DiseasePushTypeEnum.gp.getKey())) {
             pushDTO = this.pushFacIcss(pushVo);
@@ -93,7 +114,7 @@ public class PushFacade {
             //pushDTO = this.pushFac(pushVo);
             // 2021/2/22 同老楼确认专科也走5.0
             pushDTO = this.pushFacIcss(pushVo);
-        }
+        }*/
 
         return pushDTO;
     }
@@ -119,20 +140,19 @@ public class PushFacade {
      * @param
      * @return
      */
-    public PushDTO pushNewFac(PushVO pushVo) {
+    public PushDTO pushNewFac(PushVO pushVo, String modelType) {
         PushDTO pushDTO = new PushDTO();
         Map<String, Object> debug = new LinkedHashMap<>();
+        debug.put("大数据推送地址", pushUrl);
 
-        // 模型处理数据
+        // CRF模型处理
         long start = System.currentTimeMillis();
-        WordCrfDTO wordCrfDTO = commonFacade.crf_process(pushVo);
+        WordCrfDTO wordCrfDTO = commonFacade.crf_process(pushVo, false);
         CoreUtil.getDebugStr(start, "模型处理耗时", debug);
 
-        // 标准词转换
+        // 同义词转换
         long standStart = System.currentTimeMillis();
-        StandConvert standConvert = commonFacade.dataTypeGet(wordCrfDTO);
-        Map<String, Map<String, String>> standConvertMap = neoFacade.standConvertCrf(standConvert);
-        commonFacade.dataTypeSet(wordCrfDTO, standConvertMap);
+        commonFacade.wordStandConvert(wordCrfDTO);
         CoreUtil.getDebugStr(standStart, "标准词转换耗时", debug);
         ParamUtil.dealLis(wordCrfDTO.getLis());
 
@@ -144,7 +164,7 @@ public class PushFacade {
             try {
                 Map<String, Object> invokeParams = new HashMap<>();
                 invokeParams.put("wordCrfDTO", wordCrfDTO);
-                invokeParams.put("pushNewVO", generatePushVo(wordCrfDTO));
+                invokeParams.put("pushNewVO", generatePushVo(wordCrfDTO, modelType));
                 pushDTO = DataFacade.get("pushAll", invokeParams, PushDTO.class);
             } catch (Exception e) {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "推送服务出错" + e.getMessage());
@@ -162,11 +182,30 @@ public class PushFacade {
         CoreUtil.getDebugStr(start, "总计耗时", debug);
         CoreUtil.getDebugObject("数据", debug, wordCrfDTO);
         pushDTO.getDebug().putAll(debug);
+
+        // 添加既往诊断,不参与业务
+        List<Diag> diagList = wordCrfDTO.getPastLabel().getDiags();
+        List<String> pastDiagList = Lists.newArrayList();
+        if (ListUtil.isNotEmpty(diagList)) {
+            List<PushBaseDTO> pushBaseDTOList = Lists.newArrayList();
+            for (Diag diag : diagList) {
+                String diagName = diag.getName();
+                if (diag.getNegative() == null && !pastDiagList.contains(diagName)) {
+                    PushBaseDTO pushBaseDTO = new PushBaseDTO();
+                    pushBaseDTO.setName(diagName);
+                    pushBaseDTOList.add(pushBaseDTO);
+                    pastDiagList.add(diagName);
+                }
+            }
+            pushDTO.getDis().put(DiagnoseTypeEnum.pastDisease.getName(), pushBaseDTOList);
+        }
+
         return pushDTO;
     }
 
     /**
      * 诊断去重、合并处理
+     *
      * @param pushDTO
      */
     public void dealDisease(PushDTO pushDTO, WordCrfDTO wordCrfDTO, int length, boolean hasDiseaseFlag) {
@@ -234,17 +273,17 @@ public class PushFacade {
      * 生成新版推送入参
      *
      * @param wordCrfDTO
+     * @param modelType  模型类型
      * @return
      */
-    public PushNewVO generatePushVo(WordCrfDTO wordCrfDTO) {
+    public PushNewVO generatePushVo(WordCrfDTO wordCrfDTO, String modelType) {
         PushNewVO pushNewVO = new PushNewVO();
         pushNewVO.setChief(wordCrfDTO.getChief());
         pushNewVO.setPresent(wordCrfDTO.getSymptom());
         pushNewVO.setAge(wordCrfDTO.getAgeNum());
         pushNewVO.setSex(wordCrfDTO.getSex());
-        String pushType = redisUtil.getByKeyAndField(RedisEnum.hospitalPushType.getName(), String.valueOf(wordCrfDTO.getHospitalId()));
-        if (StringUtil.isNotBlank(pushType)) {
-            pushNewVO.setHospitalType(pushType);
+        if (StringUtil.isNotBlank(modelType)) {
+            pushNewVO.setHospitalType(modelType);
         }
         return pushNewVO;
     }
@@ -264,9 +303,7 @@ public class PushFacade {
             wordCrfDTO.setOperationName(pushPlanVO.getOperationName());
             // 标准词转换
             long standStart = System.currentTimeMillis();
-            StandConvert standConvert = commonFacade.dataTypeGet(wordCrfDTO);
-            Map<String, Map<String, String>> standConvertMap = neoFacade.standConvertCrf(standConvert);
-            commonFacade.dataTypeSet(wordCrfDTO, standConvertMap);
+            commonFacade.wordStandConvert(wordCrfDTO);
             CoreUtil.getDebugStr(standStart, "标准词转换耗时", debug);
             // 推送随访计划
             long pushStart = System.currentTimeMillis();

+ 13 - 0
src/main/java/com/diagbot/facade/TcmDiseaseFacade.java

@@ -0,0 +1,13 @@
+package com.diagbot.facade;
+
+import com.diagbot.service.impl.TcmDiseaseServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/6/7 11:08
+ */
+@Component
+public class TcmDiseaseFacade extends TcmDiseaseServiceImpl {
+}

+ 13 - 0
src/main/java/com/diagbot/facade/TcmSyndromeFacade.java

@@ -0,0 +1,13 @@
+package com.diagbot.facade;
+
+import com.diagbot.service.impl.TcmSyndromeServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/6/7 11:08
+ */
+@Component
+public class TcmSyndromeFacade extends TcmSyndromeServiceImpl {
+}

+ 57 - 0
src/main/java/com/diagbot/facade/TranOperationConfigFacade.java

@@ -0,0 +1,57 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.TranOperationConfig;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.TranOperationConfigService;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/29 15:05
+ */
+@Component
+public class TranOperationConfigFacade {
+    @Autowired
+    private TranOperationConfigService tranOperationConfigService;
+
+    /**
+     * 获取映射关系-公表名
+     *
+     * @param hospitalId
+     * @param hisNames
+     * @param uniqueNames
+     * @return
+     */
+    public Map<String, Map<String, Long>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+        Map<String, Map<String, Long>> retMap = new HashMap<>();
+        QueryWrapper<TranOperationConfig> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", hospitalId);
+        if (ListUtil.isNotEmpty(hisNames)) {
+            queryWrapper.in("his_name", hisNames);
+        }
+        if (ListUtil.isNotEmpty(uniqueNames)) {
+            queryWrapper.in("unique_name", uniqueNames);
+        }
+        List<TranOperationConfig> records = tranOperationConfigService.list(queryWrapper);
+        if (ListUtil.isEmpty(records)) {
+            return retMap;
+        }
+        Map<String, List<TranOperationConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
+        for (Map.Entry<String, List<TranOperationConfig>> entry : configMap.entrySet()) {
+            if (ListUtil.isNotEmpty(entry.getValue())) {
+                retMap.put(entry.getKey(), EntityUtil.makeMapWithKeyValue(entry.getValue(), "uniqueName", "id"));
+            }
+        }
+        return retMap;
+    }
+}

+ 4 - 1
src/main/java/com/diagbot/mapper/ConceptInfoMapper.java

@@ -1,6 +1,7 @@
 package com.diagbot.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.dto.CustomDictionaryDTO;
 import com.diagbot.dto.ReverseDTO;
 import com.diagbot.entity.ConceptInfo;
 import com.diagbot.vo.ReverseVO;
@@ -17,5 +18,7 @@ import java.util.List;
  */
 public interface ConceptInfoMapper extends BaseMapper<ConceptInfo> {
 
-    public List<ReverseDTO> getReverse(ReverseVO reverseVO);
+    List<ReverseDTO> getReverse(ReverseVO reverseVO);
+
+    List<CustomDictionaryDTO> getAllWord();
 }

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

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.SysDeptPush;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 标准科室和推送模型映射 Mapper 接口
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-05-20
+ */
+public interface SysDeptPushMapper extends BaseMapper<SysDeptPush> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.TcmDisease;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 中医疾病表 Mapper 接口
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-06-07
+ */
+public interface TcmDiseaseMapper extends BaseMapper<TcmDisease> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.TcmSyndrome;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 中医证候表 Mapper 接口
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-06-07
+ */
+public interface TcmSyndromeMapper extends BaseMapper<TcmSyndrome> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.TranOperationConfig;
+
+/**
+ * <p>
+ * 手术映射表 Mapper 接口
+ * </p>
+ *
+ * @author gaodm
+ * @since 2020-12-22
+ */
+public interface TranOperationConfigMapper extends BaseMapper<TranOperationConfig> {
+
+}

+ 30 - 1
src/main/java/com/diagbot/process/PushProcess.java

@@ -193,6 +193,13 @@ public class PushProcess {
                         return pushBaseDTO;
                     }).collect(Collectors.toList()));
                 }
+                if (ruleTypeList.contains("13") && ListUtil.isNotEmpty(items.get(PushRelationTypeEnum.NURSE.getKey()))) {
+                    pushDTO.setNurse(items.get(PushRelationTypeEnum.NURSE.getKey()).stream().map(x -> {
+                        PushBaseDTO pushBaseDTO = new PushBaseDTO();
+                        pushBaseDTO.setName(x);
+                        return pushBaseDTO;
+                    }).collect(Collectors.toList()));
+                }
             }
         }
         //        if (reverseInfoByDisName != null) {
@@ -430,7 +437,7 @@ public class PushProcess {
             if (featureType.contains("9")) {
                 relationType.add(RelationshipEnum.R507.getKey()); // 手术
             }
-            if (featureType.contains("12")) {
+            if (featureType.contains("13")) {
                 relationType.add(RelationshipEnum.R510.getKey()); // 护理
             }
             reverseVO.setRelationType(relationType);
@@ -932,6 +939,16 @@ public class PushProcess {
                 }
             }
         }
+        // 量表
+        if (ruleTypeList.contains("12")) {
+            if (ListUtil.isNotEmpty(reversePush.getScales())) {
+                List<String> scales = reversePush.getScales().stream().map(x -> x.getName()).collect(Collectors.toList());
+                if (scales.size() > 0) {
+                    List<PushBaseDTO> filterpacs = getPackagePushBaseDTO(scales);
+                    pushDTO.setScale(filterpacs.subList(0, filterpacs.size() >= length ? length : filterpacs.size()));
+                }
+            }
+        }
 
     }
 
@@ -947,5 +964,17 @@ public class PushProcess {
                 }).collect(Collectors.toList());
         return symptomPush;
     }
+    private List<PushBaseDTO> getPackagePushBaseDTO(List<String> symptoms) {
+        List<PushBaseDTO> symptomPush = new ArrayList<>();
+        if(ListUtil.isNotEmpty(symptoms)){
+            symptomPush = symptoms.stream().map(x ->{
+                PushBaseDTO pushBaseDTO = new PushBaseDTO();
+                pushBaseDTO.setName(x);
+                return pushBaseDTO;
+            }).collect(Collectors.toList());
+        }
+
+        return symptomPush;
+    }
 }
 

+ 4 - 8
src/main/java/com/diagbot/rule/GroupRule.java

@@ -7,6 +7,7 @@ import com.diagbot.dto.RuleSimpleDTO;
 import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.util.CoreUtil;
 import com.diagbot.util.MsgUtil;
+import com.diagbot.util.RegexUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -14,8 +15,6 @@ import java.util.Arrays;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 /**
  * @description: 人群规则
@@ -88,12 +87,9 @@ public class GroupRule {
                 break;
             case "月经期":
                 String regex = "月经第(([零一二三四五六七八九十]{0,3})||([0-9]{0,2}))天";
-                Pattern pattern = Pattern.compile(regex);
-                Matcher matcher = pattern.matcher(symptom);
-                boolean rs = matcher.find();
-                Matcher matcher1 = pattern.matcher(menstrual);
-                boolean rs1 = matcher1.find();
-                if (rs || rs1 || symptom.contains("经期") || menstrual.contains("经期")) {
+                String regex2 = "(?<!上一次)经期";
+                if (RegexUtil.getRegexRes(symptom, regex) || RegexUtil.getRegexRes(menstrual, regex)
+                        || RegexUtil.getRegexRes(symptom, regex2) || RegexUtil.getRegexRes(menstrual, regex2)) {
                     flag = true;
                 }
                 break;

+ 4 - 1
src/main/java/com/diagbot/service/ConceptInfoService.java

@@ -1,6 +1,7 @@
 package com.diagbot.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.CustomDictionaryDTO;
 import com.diagbot.dto.ReverseDTO;
 import com.diagbot.entity.ConceptInfo;
 import com.diagbot.vo.ReverseVO;
@@ -17,5 +18,7 @@ import java.util.List;
  */
 public interface ConceptInfoService extends IService<ConceptInfo> {
 
-    public List<ReverseDTO> getReverse(ReverseVO reverseVO);
+    List<ReverseDTO> getReverse(ReverseVO reverseVO);
+
+    List<CustomDictionaryDTO> getAllWord();
 }

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.SysDeptPush;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 标准科室和推送模型映射 服务类
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-05-20
+ */
+public interface SysDeptPushService extends IService<SysDeptPush> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.TcmDisease;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 中医疾病表 服务类
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-06-07
+ */
+public interface TcmDiseaseService extends IService<TcmDisease> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.TcmSyndrome;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 中医证候表 服务类
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-06-07
+ */
+public interface TcmSyndromeService extends IService<TcmSyndrome> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.TranOperationConfig;
+
+/**
+ * <p>
+ * 手术映射表 服务类
+ * </p>
+ *
+ * @author gaodm
+ * @since 2020-12-22
+ */
+public interface TranOperationConfigService extends IService<TranOperationConfig> {
+
+}

+ 6 - 0
src/main/java/com/diagbot/service/impl/ConceptInfoServiceImpl.java

@@ -1,6 +1,7 @@
 package com.diagbot.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.CustomDictionaryDTO;
 import com.diagbot.dto.ReverseDTO;
 import com.diagbot.entity.ConceptInfo;
 import com.diagbot.mapper.ConceptInfoMapper;
@@ -24,4 +25,9 @@ public class ConceptInfoServiceImpl extends ServiceImpl<ConceptInfoMapper, Conce
     public List<ReverseDTO> getReverse(ReverseVO reverseVO) {
         return baseMapper.getReverse(reverseVO);
     }
+
+    @Override
+    public List<CustomDictionaryDTO> getAllWord(){
+        return baseMapper.getAllWord();
+    }
 }

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

@@ -0,0 +1,22 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.diagbot.entity.SysDeptPush;
+import com.diagbot.mapper.SysDeptPushMapper;
+import com.diagbot.service.SysDeptPushService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 标准科室和推送模型映射 服务实现类
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-05-20
+ */
+@Service
+@DS("cdss")
+public class SysDeptPushServiceImpl extends ServiceImpl<SysDeptPushMapper, SysDeptPush> implements SysDeptPushService {
+
+}

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

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.TcmDisease;
+import com.diagbot.mapper.TcmDiseaseMapper;
+import com.diagbot.service.TcmDiseaseService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 中医疾病表 服务实现类
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-06-07
+ */
+@Service
+public class TcmDiseaseServiceImpl extends ServiceImpl<TcmDiseaseMapper, TcmDisease> implements TcmDiseaseService {
+
+}

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

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.TcmSyndrome;
+import com.diagbot.mapper.TcmSyndromeMapper;
+import com.diagbot.service.TcmSyndromeService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 中医证候表 服务实现类
+ * </p>
+ *
+ * @author gaodm
+ * @since 2021-06-07
+ */
+@Service
+public class TcmSyndromeServiceImpl extends ServiceImpl<TcmSyndromeMapper, TcmSyndrome> implements TcmSyndromeService {
+
+}

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

@@ -0,0 +1,22 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.entity.TranOperationConfig;
+import com.diagbot.mapper.TranOperationConfigMapper;
+import com.diagbot.service.TranOperationConfigService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 手术映射表 服务实现类
+ * </p>
+ *
+ * @author gaodm
+ * @since 2020-12-22
+ */
+@Service
+@DS("cdss")
+public class TranOperationConfigServiceImpl extends ServiceImpl<TranOperationConfigMapper, TranOperationConfig> implements TranOperationConfigService {
+
+}

+ 17 - 0
src/main/java/com/diagbot/util/CoreUtil.java

@@ -254,6 +254,23 @@ public class CoreUtil {
 
     }
 
+    /**
+     * 将列表中uniqueName为空的值,用其他属性值赋值
+     *
+     * @param list
+     * @param targetProperty
+     * @param <T>
+     */
+    public static <T> void setUninameFromDetail(List<T> list, String targetProperty) {
+        for (T r : list) {
+            String value = (String)getFieldValue(r, "uniqueName");
+            if (StringUtil.isBlank(value)) {
+                String detailName = (String) getFieldValue(r, targetProperty);
+                ReflectUtil.setProperty(r, "uniqueName", detailName);
+            }
+        }
+    }
+
     /**
      * 将对象添加到列表中
      *

+ 49 - 11
src/main/java/com/diagbot/util/ReflectUtil.java

@@ -3,6 +3,8 @@ package com.diagbot.util;
 import com.google.common.collect.Lists;
 
 import java.lang.reflect.Field;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 
 /**
@@ -42,17 +44,6 @@ public class ReflectUtil {
         return res;
     }
 
-    /**
-     * 获取属性对应的值,以list形式返回——重载
-     *
-     * @param list
-     * @param <T>
-     * @return
-     */
-    public static <T> List<String> getPropertyList(List<T> list) {
-        return getPropertyList(list, "name");
-    }
-
     /**
      * 循环向上转型, 获取对象的 DeclaredField
      *
@@ -100,6 +91,53 @@ public class ReflectUtil {
         return null;
     }
 
+    /**
+     * 对象赋值
+     *
+     * @param object
+     * @param property
+     * @param value
+     */
+    public static void setProperty(Object object, String property, Object value) {
+        //根据 对象和属性名通过反射 调用上面的方法获取 Field对象
+        Field field = getDeclaredField(object, property);
+        //抑制Java对其的检查
+        field.setAccessible(true);
+        try {
+            field.set(object, value);
+        } catch (IllegalArgumentException e) {
+            e.printStackTrace();
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 根据指定字段按照字符串排序
+     *
+     * @param tList
+     * @param property
+     * @param <T>
+     */
+    public <T> void sort(List<T> tList, String property) {
+        if (ListUtil.isNotEmpty(tList) && tList.size() > 1) {
+            Collections.sort(tList, new Comparator<T>() {
+                @Override
+                public int compare(T o1, T o2) {
+                    String v1 = getProperty(o1, property);
+                    String v2 = getProperty(o2, property);
+                    if (StringUtil.isBlank(v1)) {
+                        return -1;
+                    }
+                    if (StringUtil.isBlank(v2)) {
+                        return 1;
+                    }
+                    return v1.compareTo(v2);
+                }
+            });
+        }
+    }
+
     public static void main(String[] args) {
 
     }

+ 3 - 1
src/main/java/com/diagbot/vo/PushNewVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 
+import com.diagbot.dto.WordCrfDTO;
 import lombok.Data;
 
 /**
@@ -9,10 +10,11 @@ import lombok.Data;
  */
 @Data
 public class PushNewVO {
-    private String hospitalType = "0"; // 医院类型, 0:全科,1:妇幼,2:精神
+    private String hospitalType = "0";
     private Double age; // 年龄
     private Integer sex; // 性别
     private String chief; // 主诉
     private String present; // 现病史
     private Integer num = 10; // 疾病个数
+    private WordCrfDTO wordCrfDTO = new WordCrfDTO();
 }

+ 27 - 6
src/main/java/com/diagbot/web/CacheController.java

@@ -3,6 +3,7 @@ package com.diagbot.web;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.CacheFacade;
+import com.diagbot.facade.ConceptInfoFacade;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -28,6 +29,8 @@ public class CacheController {
 
     @Autowired
     CacheFacade cacheFacade;
+    @Autowired
+    private ConceptInfoFacade conceptInfoFacade;
 
     @ApiOperation(value = "清除启动加载类缓存[by:zhoutg]",
             notes = "")
@@ -119,12 +122,30 @@ public class CacheController {
         }
     }
 
-    @ApiOperation(value = "加载大数据推送类型【字段:push_mode】和推送版本【字段:remark】[by:zhoutg]",
-            notes = "表:tran_hospital_info,【remark】字段:old表示使用原5.0推理,其他值:新版推理")
-    @PostMapping("/loadHostipalPush")
-    @SysLogger("loadHostipalPush")
-    public RespDTO<Boolean> loadHostipalPush() {
-        cacheFacade.loadHostipalPush();
+    @ApiOperation(value = "加载推送类型[by:zhoutg]",
+            notes = "表:tran_hospital_info,字段:push_mode")
+    @PostMapping("/loadPushModel")
+    @SysLogger("loadPushModel")
+    public RespDTO<Boolean> loadPushModel() {
+        cacheFacade.loadPushModel();
+        return RespDTO.onSuc(true);
+    }
+
+    @ApiOperation(value = "加载标准科室和推送类型的映射关系【sys_dept_push】",
+            notes = "")
+    @PostMapping("/loadDeptPush")
+    @SysLogger("loadDeptPush")
+    public RespDTO<Boolean> loadDeptPush() {
+        cacheFacade.loadDeptPush();
+        return RespDTO.onSuc(true);
+    }
+
+    @ApiOperation(value = "重新加载NLP分词字典[by:gaodm]",
+            notes = "")
+    @PostMapping("/reloadCustomDictionary")
+    @SysLogger("reloadCustomDictionary")
+    public RespDTO<Boolean> reloadCustomDictionary() {
+        conceptInfoFacade.loadCustomDictionary();
         return RespDTO.onSuc(true);
     }
 }

+ 38 - 0
src/main/java/com/diagbot/web/CrfController.java

@@ -0,0 +1,38 @@
+package com.diagbot.web;
+
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.WordCrfDTO;
+import com.diagbot.facade.IndicationFacade;
+import com.diagbot.vo.IndicationPushVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * @Description: crf转换控制层
+ * @author: zhoutg
+ * @time: 2018/8/30 10:12
+ */
+@RestController
+@RequestMapping("/crf")
+@Api(value = "crf转换API", tags = { "crf转换API" })
+@SuppressWarnings("unchecked")
+public class CrfController {
+
+    @Autowired
+    IndicationFacade indicationFacade;
+
+    @ApiOperation(value = "CRF转换[zhoutg]", notes = "ruleType(1:危急值提醒,2:开单合理项,3:高危药品、手术,4:其他提醒)")
+    @PostMapping("/getWordCrfDTO")
+    public RespDTO<WordCrfDTO> getWordCrfDTO(@Valid @RequestBody IndicationPushVO indicationPushVO) {
+        WordCrfDTO wordCrfDTO = indicationFacade.getWordCrfDTO(indicationPushVO);
+        return RespDTO.onSuc(wordCrfDTO);
+    }
+
+}

+ 44 - 0
src/main/java/com/diagbot/web/NLPController.java

@@ -0,0 +1,44 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.NLPFacade;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/5/25 20:09
+ */
+@RequestMapping("/nlp")
+@RestController
+@SuppressWarnings("unchecked")
+@Api(value = "NLP API", tags = { "NLP API" })
+public class NLPController {
+    @Autowired
+    private NLPFacade nlpFacade;
+
+    @ApiOperation(value = "NLP分词[by:gaodm]",
+            notes = "")
+    @PostMapping("/segment")
+    @SysLogger("segment")
+    public RespDTO<String> segment(String text){
+        return RespDTO.onSuc(nlpFacade.segment(text));
+    }
+
+    @ApiOperation(value = "NLP分词放入组[by:zhoutg]",
+            notes = "")
+    @PostMapping("/getMap")
+    @SysLogger("getMap")
+    public RespDTO<Map> getMap(String text){
+        return RespDTO.onSuc(nlpFacade.getMap(text));
+    }
+
+}

+ 5 - 4
src/main/java/com/diagbot/web/RetrievalController.java

@@ -1,5 +1,6 @@
 package com.diagbot.web;
 
+import com.diagbot.dto.IndexBatchDTO;
 import com.diagbot.dto.KllisDetailDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalDTO;
@@ -39,7 +40,7 @@ public class RetrievalController {
 
 
     @ApiOperation(value = "术语检索[zhaops]",
-            notes = "type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、9-症状、10-量表、11-护理 <br>" +
+            notes = "type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、9-症状、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉 <br>" +
                     "inputStr: 检索内容<br>" +
                     "sex: 性别:1-男、2-女、3-通用 <br>" +
                     "age: 年龄<br>")
@@ -59,11 +60,11 @@ public class RetrievalController {
     }
 
     @ApiOperation(value = "术语批量查询[zhaops]",
-            notes = "type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理<br>" +
+            notes = "type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候<br>" +
                     "names: 术语列表<br>")
     @PostMapping("/getConceptNames")
-    public RespDTO<List<String>> getConceptNames(@Valid @RequestBody ConceptVO conceptVO) {
-        List<String> data = klConceptFacade.getConceptNames(conceptVO);
+    public RespDTO<List<IndexBatchDTO>> getConceptNames(@Valid @RequestBody ConceptVO conceptVO) {
+        List<IndexBatchDTO> data = klConceptFacade.getConceptNames(conceptVO);
         return RespDTO.onSuc(data);
     }
 

+ 1 - 1
src/main/java/com/diagbot/web/TestController.java

@@ -185,7 +185,7 @@ public class TestController {
 
     @ApiOperation(value = "crf解析测试[zhoutg]", notes = "content:文本内容\n" +
             "modelType:模型类型,主诉、现病史:chief_present,既往史:PastFamily_cx,查体:Present_cx,个人史:PersonalHistory_cx,诊断:Diagnoses_cx")
-    @PostMapping("/testCrf")
+    @PostMapping("/A_testCrf")
     public RespDTO<Object> testCrf(@RequestBody TestCrfVO testCrfVO) {
         return RespDTO.onSuc(testFacade.testCrf(testCrfVO));
     }

+ 17 - 0
src/main/resources/mapper/ConceptInfoMapper.xml

@@ -72,4 +72,21 @@
         t.order_no
     </select>
 
+    <select id="getAllWord" resultType="com.diagbot.dto.CustomDictionaryDTO">
+        SELECT
+            a. NAME,
+            CONCAT_WS(" ",GROUP_CONCAT(a.type_id),1024) AS type
+        FROM
+            kl_library_info a,
+            kl_concept b
+        WHERE
+            a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND a.id = b.lib_id
+        AND b.`status` = 1
+        AND a.type_id IN (103, 122, 126, 129)
+        GROUP BY
+            a.`name`
+    </select>
+
 </mapper>

+ 75 - 0
src/main/resources/mapper/KlConceptMapper.xml

@@ -23,6 +23,12 @@
 		<if test="typeId!=null and typeId==100">
 			,t.icd10Code as icd10Code
 		</if>
+		<if test="typeId!=null and typeId==127">
+			,t.code as code
+		</if>
+		<if test="typeId!=null and typeId==128">
+			,t.code as code
+		</if>
 		<if test="typeId!=null and typeId==108">
 			,
 			t1.max_value as `maxValue`,
@@ -40,6 +46,12 @@
 		<if test="typeId!=null and typeId==100">
 			,c.icd10_code as icd10Code
 		</if>
+		<if test="typeId!=null and typeId==127">
+			,c.code as code
+		</if>
+		<if test="typeId!=null and typeId==128">
+			,c.code as code
+		</if>
 		FROM
 		kl_library_info a,
 		kl_concept b
@@ -48,16 +60,33 @@
 			on c.is_deleted = 'N'
 			and b.id = c.concept_id
 		</if>
+		<if test="typeId!=null and typeId==127">
+			left join kl_tcm_disease c
+			on c.is_deleted = 'N'
+			and b.id = c.concept_id
+		</if>
+		<if test="typeId!=null and typeId==128">
+			left join kl_tcm_syndrome c
+			on c.is_deleted = 'N'
+			and b.id = c.concept_id
+		</if>
 		WHERE
 		a.is_deleted = 'N'
 		AND b.is_deleted = 'N'
 		AND a.concept_id = b.id
 		AND a.id = b.lib_id
+		AND b.status = 1
 		<if test="inputStr!=null and inputStr!=''">
 			AND ( a.`name` = #{inputStr} OR LOWER(a.spell) = LOWER(#{inputStr})
 			<if test="typeId!=null and typeId==100">
 				OR LOWER(c.icd10_code) = LOWER(#{inputStr})
 			</if>
+			<if test="typeId!=null and typeId==127">
+				OR LOWER(c.code) = LOWER(#{inputStr})
+			</if>
+			<if test="typeId!=null and typeId==128">
+				OR LOWER(c.code) = LOWER(#{inputStr})
+			</if>
 			)
 		</if>
 		<if test="typeIds != null and typeIds.size > 0">
@@ -72,6 +101,12 @@
 		<if test="typeId!=null and typeId==100">
 			,c.icd10_code as icd10Code
 		</if>
+		<if test="typeId!=null and typeId==127">
+			,c.code as code
+		</if>
+		<if test="typeId!=null and typeId==128">
+			,c.code as code
+		</if>
 		FROM
 		kl_library_info a,
 		kl_concept b
@@ -80,16 +115,33 @@
 			on c.is_deleted = 'N'
 			and b.id = c.concept_id
 		</if>
+		<if test="typeId!=null and typeId==127">
+			left join kl_tcm_disease c
+			on c.is_deleted = 'N'
+			and b.id = c.concept_id
+		</if>
+		<if test="typeId!=null and typeId==128">
+			left join kl_tcm_syndrome c
+			on c.is_deleted = 'N'
+			and b.id = c.concept_id
+		</if>
 		WHERE
 		a.is_deleted = 'N'
 		AND b.is_deleted = 'N'
 		AND a.concept_id = b.id
 		AND a.id = b.lib_id
+		AND b.status = 1
 		<if test="inputStr!=null and inputStr!=''">
 			AND ( a.`name` LIKE concat(#{inputStr},'%') OR LOWER(a.spell) LIKE LOWER(concat(#{inputStr},'%'))
 			<if test="typeId!=null and typeId==100">
 				OR LOWER(c.icd10_code) LIKE LOWER(concat(#{inputStr},'%'))
 			</if>
+			<if test="typeId!=null and typeId==127">
+				OR LOWER(c.code) LIKE LOWER(concat(#{inputStr},'%'))
+			</if>
+			<if test="typeId!=null and typeId==128">
+				OR LOWER(c.code) LIKE LOWER(concat(#{inputStr},'%'))
+			</if>
 			)
 		</if>
 		<if test="typeIds != null and typeIds.size > 0">
@@ -104,6 +156,12 @@
 		<if test="typeId!=null and typeId==100">
 			,c.icd10_code as icd10Code
 		</if>
+		<if test="typeId!=null and typeId==127">
+			,c.code as code
+		</if>
+		<if test="typeId!=null and typeId==128">
+			,c.code as code
+		</if>
 		FROM
 		kl_library_info a,
 		kl_concept b
@@ -112,16 +170,33 @@
 			on c.is_deleted = 'N'
 			and b.id = c.concept_id
 		</if>
+		<if test="typeId!=null and typeId==127">
+			left join kl_tcm_disease c
+			on c.is_deleted = 'N'
+			and b.id = c.concept_id
+		</if>
+		<if test="typeId!=null and typeId==128">
+			left join kl_tcm_syndrome c
+			on c.is_deleted = 'N'
+			and b.id = c.concept_id
+		</if>
 		WHERE
 		a.is_deleted = 'N'
 		AND b.is_deleted = 'N'
 		AND a.concept_id = b.id
 		AND a.id = b.lib_id
+		AND b.status = 1
 		<if test="inputStr!=null and inputStr!=''">
 			AND ( a.`name` LIKE concat('%',#{inputStr},'%') OR LOWER(a.spell) LIKE LOWER( concat('%',#{inputStr},'%'))
 			<if test="typeId!=null and typeId==100">
 				OR LOWER(c.icd10_code) LIKE LOWER( concat('%',#{inputStr},'%'))
 			</if>
+			<if test="typeId!=null and typeId==127">
+				OR LOWER(c.code) LIKE LOWER( concat('%',#{inputStr},'%'))
+			</if>
+			<if test="typeId!=null and typeId==128">
+				OR LOWER(c.code) LIKE LOWER( concat('%',#{inputStr},'%'))
+			</if>
 			)
 		</if>
 		<if test="typeIds != null and typeIds.size > 0">

+ 1 - 1
src/main/resources/mapper/KlRelationMapper.xml

@@ -89,7 +89,7 @@
                         AND t1.id = t2.start_id
                         AND t3.id = t2.end_id
                         AND t2.id = t4.t_relation_id
-                        AND t2.relation_id IN (501,502,503,504,505,506,507,508)
+                        AND t2.relation_id IN (501,502,503,504,505,506,507,508,509,510)
                         AND t1.lib_name = #{diseaseName}
                         AND t1.`status` = 1
                         AND t3.`status` = 1

+ 18 - 0
src/main/resources/mapper/SysDeptPushMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.SysDeptPushMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.SysDeptPush">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="dept_name" property="deptName" />
+        <result column="push" property="push" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 18 - 0
src/main/resources/mapper/TcmDiseaseMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.TcmDiseaseMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TcmDisease">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="concept_id" property="conceptId" />
+        <result column="code" property="code" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 18 - 0
src/main/resources/mapper/TcmSyndromeMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.TcmSyndromeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TcmSyndrome">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="concept_id" property="conceptId" />
+        <result column="code" property="code" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 19 - 0
src/main/resources/mapper/TranOperationConfigMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.TranOperationConfigMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TranOperationConfig">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="his_name" property="hisName" />
+        <result column="unique_name" property="uniqueName" />
+        <result column="unique_code" property="uniqueCode" />
+    </resultMap>
+
+</mapper>

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

@@ -49,14 +49,14 @@ public class CodeGeneration {
         dsc.setDriverName("com.mysql.cj.jdbc.Driver");
         dsc.setUsername("root");
         dsc.setPassword("lantone");
-        dsc.setUrl("jdbc:mysql://192.168.2.236:3306/med_2021?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8");
+        dsc.setUrl("jdbc:mysql://192.168.2.236:3306/cdss?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8");
         mpg.setDataSource(dsc);
 
         // 策略配置
         StrategyConfig strategy = new StrategyConfig();
         // strategy.setTablePrefix(new String[] { "demo_" });// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "kl_diagnose","kl_diagnose_base","kl_diagnose_condition"}); // 需要生成的表
+        strategy.setInclude(new String[] { "sys_dept_push"}); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);

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

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