-- ============================================================ -- 数据管理功能表结构扩展 -- ============================================================ USE `qconline`; -- 1. 扩展患者信息表,添加手机号和身份证号 ALTER TABLE `patient_info` ADD COLUMN `phone` varchar(20) DEFAULT NULL COMMENT '手机号' AFTER `age`, ADD COLUMN `id_card` varchar(18) DEFAULT NULL COMMENT '身份证号' AFTER `phone`; -- 2. 扩展检查信息表,添加数据管理相关字段 ALTER TABLE `study_info` ADD COLUMN `check_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '检查状态:0待检查 1检查中 2已完成' AFTER `institution_id`, ADD COLUMN `upload_time` datetime DEFAULT NULL COMMENT '数据上传时间' AFTER `create_time`, ADD COLUMN `govern_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '治理状态:0未治理 1已治理 2治理中' AFTER `upload_time`, ADD COLUMN `confirm_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '确认状态:0待确认 1已确认 2已驳回' AFTER `govern_status`, ADD COLUMN `is_split` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否拆分:0否 1是(多部位检查拆分)' AFTER `confirm_status`, ADD COLUMN `parent_study_id` varchar(64) DEFAULT NULL COMMENT '父检查ID(拆分后的记录指向原始检查)' AFTER `is_split`; -- 3. 创建检查项目拆分记录表 DROP TABLE IF EXISTS `study_split_record`; CREATE TABLE `study_split_record` ( `id` varchar(32) NOT NULL COMMENT '主键ID', `original_study_id` varchar(64) NOT NULL COMMENT '原始检查ID', `original_study_description` varchar(255) DEFAULT NULL COMMENT '原始检查描述(多部位)', `split_study_id` varchar(64) NOT NULL COMMENT '拆分后的检查ID', `split_study_description` varchar(255) DEFAULT NULL COMMENT '拆分后的检查描述(单部位)', `body_part` varchar(50) DEFAULT NULL COMMENT '检查部位', `image_count` int DEFAULT '0' COMMENT '该部位的图像数量', `split_reason` varchar(500) DEFAULT NULL COMMENT '拆分原因说明', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`), KEY `idx_original_study` (`original_study_id`), KEY `idx_split_study` (`split_study_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='检查项目拆分记录表'; -- 4. 创建数据治理记录表 DROP TABLE IF EXISTS `data_govern_record`; CREATE TABLE `data_govern_record` ( `id` varchar(32) NOT NULL COMMENT '主键ID', `study_id` varchar(64) NOT NULL COMMENT '检查ID', `govern_type` varchar(50) NOT NULL COMMENT '治理类型:数据标准/多部位拆分/缺失值补充等', `before_value` text COMMENT '治理前值(JSON格式)', `after_value` text COMMENT '治理后值(JSON格式)', `govern_rule` varchar(500) DEFAULT NULL COMMENT '治理规则说明', `govern_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '治理状态:0待治理 1已治理 2失败', `operator` varchar(50) DEFAULT NULL COMMENT '操作人', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`), KEY `idx_study` (`study_id`), KEY `idx_type` (`govern_type`), KEY `idx_status` (`govern_status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='数据治理记录表'; -- 5. 创建DICOM文件存储记录表(如果需要保存DICOM文件信息) DROP TABLE IF EXISTS `dicom_file_info`; CREATE TABLE `dicom_file_info` ( `id` varchar(32) NOT NULL COMMENT '主键ID', `study_id` varchar(64) NOT NULL COMMENT '检查ID', `file_name` varchar(255) NOT NULL COMMENT '文件名', `file_path` varchar(500) NOT NULL COMMENT '文件存储路径', `file_size` bigint DEFAULT '0' COMMENT '文件大小(字节)', `file_md5` varchar(32) DEFAULT NULL COMMENT '文件MD5值', `series_instance_uid` varchar(128) DEFAULT NULL COMMENT '序列实例UID', `sop_instance_uid` varchar(128) DEFAULT NULL COMMENT 'SOP实例UID', `instance_number` int DEFAULT NULL COMMENT '实例号', `body_part_examined` varchar(50) DEFAULT NULL COMMENT '检查部位', `view_position` varchar(50) DEFAULT NULL COMMENT '体位', `upload_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间', PRIMARY KEY (`id`), KEY `idx_study` (`study_id`), KEY `idx_series` (`series_instance_uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='DICOM文件信息表'; -- 6. 创建影像预览缩略图表(用于快速预览) DROP TABLE IF EXISTS `image_thumbnail`; CREATE TABLE `image_thumbnail` ( `id` varchar(32) NOT NULL COMMENT '主键ID', `study_id` varchar(64) NOT NULL COMMENT '检查ID', `series_instance_uid` varchar(128) DEFAULT NULL COMMENT '序列实例UID', `sop_instance_uid` varchar(128) NOT NULL COMMENT 'SOP实例UID', `thumbnail_path` varchar(500) NOT NULL COMMENT '缩略图路径', `instance_number` int DEFAULT NULL COMMENT '实例号', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_sop` (`sop_instance_uid`), KEY `idx_study` (`study_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='影像缩略图表'; -- 7. 添加索引优化 ALTER TABLE `study_info` ADD INDEX `idx_check_status` (`check_status`), ADD INDEX `idx_govern_status` (`govern_status`), ADD INDEX `idx_confirm_status` (`confirm_status`), ADD INDEX `idx_upload_time` (`upload_time`);