-- ============================================================
-- 数据管理功能表结构扩展
-- ============================================================
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`);
