data_management_tables.sql 5.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. -- ============================================================
  2. -- 数据管理功能表结构扩展
  3. -- ============================================================
  4. USE `qconline`;
  5. -- 1. 扩展患者信息表,添加手机号和身份证号
  6. ALTER TABLE `patient_info`
  7. ADD COLUMN `phone` varchar(20) DEFAULT NULL COMMENT '手机号' AFTER `age`,
  8. ADD COLUMN `id_card` varchar(18) DEFAULT NULL COMMENT '身份证号' AFTER `phone`;
  9. -- 2. 扩展检查信息表,添加数据管理相关字段
  10. ALTER TABLE `study_info`
  11. ADD COLUMN `check_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '检查状态:0待检查 1检查中 2已完成' AFTER `institution_id`,
  12. ADD COLUMN `upload_time` datetime DEFAULT NULL COMMENT '数据上传时间' AFTER `create_time`,
  13. ADD COLUMN `govern_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '治理状态:0未治理 1已治理 2治理中' AFTER `upload_time`,
  14. ADD COLUMN `confirm_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '确认状态:0待确认 1已确认 2已驳回' AFTER `govern_status`,
  15. ADD COLUMN `is_split` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否拆分:0否 1是(多部位检查拆分)' AFTER `confirm_status`,
  16. ADD COLUMN `parent_study_id` varchar(64) DEFAULT NULL COMMENT '父检查ID(拆分后的记录指向原始检查)' AFTER `is_split`;
  17. -- 3. 创建检查项目拆分记录表
  18. DROP TABLE IF EXISTS `study_split_record`;
  19. CREATE TABLE `study_split_record` (
  20. `id` varchar(32) NOT NULL COMMENT '主键ID',
  21. `original_study_id` varchar(64) NOT NULL COMMENT '原始检查ID',
  22. `original_study_description` varchar(255) DEFAULT NULL COMMENT '原始检查描述(多部位)',
  23. `split_study_id` varchar(64) NOT NULL COMMENT '拆分后的检查ID',
  24. `split_study_description` varchar(255) DEFAULT NULL COMMENT '拆分后的检查描述(单部位)',
  25. `body_part` varchar(50) DEFAULT NULL COMMENT '检查部位',
  26. `image_count` int DEFAULT '0' COMMENT '该部位的图像数量',
  27. `split_reason` varchar(500) DEFAULT NULL COMMENT '拆分原因说明',
  28. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  29. PRIMARY KEY (`id`),
  30. KEY `idx_original_study` (`original_study_id`),
  31. KEY `idx_split_study` (`split_study_id`)
  32. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='检查项目拆分记录表';
  33. -- 4. 创建数据治理记录表
  34. DROP TABLE IF EXISTS `data_govern_record`;
  35. CREATE TABLE `data_govern_record` (
  36. `id` varchar(32) NOT NULL COMMENT '主键ID',
  37. `study_id` varchar(64) NOT NULL COMMENT '检查ID',
  38. `govern_type` varchar(50) NOT NULL COMMENT '治理类型:数据标准/多部位拆分/缺失值补充等',
  39. `before_value` text COMMENT '治理前值(JSON格式)',
  40. `after_value` text COMMENT '治理后值(JSON格式)',
  41. `govern_rule` varchar(500) DEFAULT NULL COMMENT '治理规则说明',
  42. `govern_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '治理状态:0待治理 1已治理 2失败',
  43. `operator` varchar(50) DEFAULT NULL COMMENT '操作人',
  44. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  45. PRIMARY KEY (`id`),
  46. KEY `idx_study` (`study_id`),
  47. KEY `idx_type` (`govern_type`),
  48. KEY `idx_status` (`govern_status`)
  49. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='数据治理记录表';
  50. -- 5. 创建DICOM文件存储记录表(如果需要保存DICOM文件信息)
  51. DROP TABLE IF EXISTS `dicom_file_info`;
  52. CREATE TABLE `dicom_file_info` (
  53. `id` varchar(32) NOT NULL COMMENT '主键ID',
  54. `study_id` varchar(64) NOT NULL COMMENT '检查ID',
  55. `file_name` varchar(255) NOT NULL COMMENT '文件名',
  56. `file_path` varchar(500) NOT NULL COMMENT '文件存储路径',
  57. `file_size` bigint DEFAULT '0' COMMENT '文件大小(字节)',
  58. `file_md5` varchar(32) DEFAULT NULL COMMENT '文件MD5值',
  59. `series_instance_uid` varchar(128) DEFAULT NULL COMMENT '序列实例UID',
  60. `sop_instance_uid` varchar(128) DEFAULT NULL COMMENT 'SOP实例UID',
  61. `instance_number` int DEFAULT NULL COMMENT '实例号',
  62. `body_part_examined` varchar(50) DEFAULT NULL COMMENT '检查部位',
  63. `view_position` varchar(50) DEFAULT NULL COMMENT '体位',
  64. `upload_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
  65. PRIMARY KEY (`id`),
  66. KEY `idx_study` (`study_id`),
  67. KEY `idx_series` (`series_instance_uid`)
  68. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='DICOM文件信息表';
  69. -- 6. 创建影像预览缩略图表(用于快速预览)
  70. DROP TABLE IF EXISTS `image_thumbnail`;
  71. CREATE TABLE `image_thumbnail` (
  72. `id` varchar(32) NOT NULL COMMENT '主键ID',
  73. `study_id` varchar(64) NOT NULL COMMENT '检查ID',
  74. `series_instance_uid` varchar(128) DEFAULT NULL COMMENT '序列实例UID',
  75. `sop_instance_uid` varchar(128) NOT NULL COMMENT 'SOP实例UID',
  76. `thumbnail_path` varchar(500) NOT NULL COMMENT '缩略图路径',
  77. `instance_number` int DEFAULT NULL COMMENT '实例号',
  78. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  79. PRIMARY KEY (`id`),
  80. UNIQUE KEY `uk_sop` (`sop_instance_uid`),
  81. KEY `idx_study` (`study_id`)
  82. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='影像缩略图表';
  83. -- 7. 添加索引优化
  84. ALTER TABLE `study_info`
  85. ADD INDEX `idx_check_status` (`check_status`),
  86. ADD INDEX `idx_govern_status` (`govern_status`),
  87. ADD INDEX `idx_confirm_status` (`confirm_status`),
  88. ADD INDEX `idx_upload_time` (`upload_time`);