3. 医学影像数据获取与合规
医学影像预测模型的第一道工程门槛,不是建模,而是“把影像合规地拿到手”。影像数据从设备产生到进入训练集,通常要穿过 DICOM 文件、PACS/RIS 系统、伦理审查、脱敏与多中心协作五道关口。任何一道关口处理不当,都会导致数据不可用、模型不可复现,甚至引发合规风险。本节按数据实际流动的顺序,讲清每一环的关键对象与操作要点。
一、DICOM:影像数据的标准载体
DICOM(医学数字成像与通信标准)既是文件格式,也是网络通信协议。一个 DICOM 文件由文件头(128 字节前导 + “DICM”标识)和数据集组成,数据集由一个个数据元素(Tag)构成,每个元素包含标签、值表示(VR)和值长度。理解 Tag 是理解脱敏的前提。
与建模最相关的 Tag 可分为四类:
- 像素数据:
(7FE0,0010) Pixel Data,存放原始像素;(0028,0010) Rows、(0028,0011) Columns定义矩阵尺寸;(0028,0100) Bits Allocated、(0028,0103) Pixel Representation决定位深与有无符号。 - 灰度映射:
(0028,1050) Window Center、(0028,1051) Window Width、(0028,1052) Rescale Intercept、(0028,1053) Rescale Slope。CT 的 HU 值必须用HU = 像素值 × Rescale Slope + Rescale Intercept还原,直接读像素值会得到错误特征。 - 几何信息:
(0020,0032) Image Position Patient、(0020,0037) Image Orientation Patient、(0020,003E) Number of Frames、(0018,0050) Slice Thickness、(0020,1041) Slice Location。这些决定体素间距与三维重建方向。 - 隐私信息:
(0010,0010) Patient Name、(0010,0020) Patient ID、(0008,0020) Study Date、(0008,0080) Institution Name等,是脱敏的主要目标。
需要特别提醒:DICOM 的像素数据可能被压缩(如 JPEG Lossless、JPEG2000),(0002,0010) Transfer Syntax UID 指明压缩方式。若用普通图像库直接读取,可能解出错误像素。工程上建议用 pydicom + SimpleITK 或 GDCM 组合读取,并在读取后校验 Rows/Columns 与数组形状是否一致。
二、PACS/RIS:数据从哪里来
PACS(影像归档与通信系统)负责影像的存储与调阅,RIS(放射信息系统)负责检查申请、预约与报告。二者通过 HL7 与 DICOM 互联:RIS 产生检查信息(患者、检查号、检查部位),PACS 接收并归档影像。对建模团队而言,数据获取通常有三条路径:
- DICOM 查询/检索(C-FIND/C-MOVE):向 PACS 的 Query/Retrieve SCP 发起查询,按 Study Date、Modality、Body Part 等条件筛选,再拉取到本地。适合批量导出。
- 厂商导出:由 PACS 管理员按检查列表导出为 DICOM 目录或压缩包,附带 CSV 索引。适合一次性科研数据集。
- 数据库直连:从 PACS 底层数据库或影像归档接口读取,效率高但风险大,需严格权限控制。
无论哪条路径,都必须先明确“检索条件”和“纳排标准”的对应关系。例如研究“肺结节良恶性预测”,检索条件应包含 Modality=CT、BodyPart=LUNG、StudyDate 区间,并排除增强扫描、层厚>3mm、含金属伪影的检查。这些条件应写成可执行的查询语句或筛选脚本,而不是口头约定。
三、伦理审查与数据脱敏
伦理审查(IRB/EC)是数据使用的合法性前提。申请材料通常需要说明:研究目的、数据范围、是否涉及可识别信息、数据存储与销毁方式、是否豁免知情同意。若使用回顾性数据且不接触患者,多数机构可申请免除知情同意,但必须通过伦理审批并保留批件编号。
脱敏的核心是去除或替换 18 类 HIPAA 规定的可识别信息。工程上分两步:
- 直接标识符清除:删除或替换 PatientName、PatientID、BirthDate、InstitutionName、ReferringPhysicianName 等。PatientID 建议替换为研究编号(如
STUDY001_001),并保留映射表在受控环境。 - 像素级脱敏:超声、X 光、CT 定位像中常烧录有姓名、日期、医院名称。需用 OCR 检测 + 区域遮盖,或直接裁剪边缘区域。仅改 Tag 不改像素,是常见的合规漏洞。
四、隐私保护与多中心协作
多中心协作的难点在于:各中心数据不能直接出域,但模型需要跨中心训练。常见方案有三类:
- 数据不出域 + 联邦学习:各中心本地训练,只上传模型参数或梯度,由协调方聚合。适合网络条件好、算力均衡的中心。
- 集中式脱敏汇聚:各中心按统一脱敏规范处理后上传至可信第三方或数据平台,再统一训练。关键是脱敏规范与质量校验必须一致。
- 模型出域 + 数据留域:训练好的模型到各中心做外部验证,只回传评估指标。适合验证阶段。
无论哪种方案,都需要统一的数据字典:检查类型、序列命名、层厚范围、重建核、标注规范。否则各中心数据在特征层面不可比,模型性能会被中心间差异淹没。
五、工程落地要点
把上述环节串成可执行流程,建议至少落实以下四点:
- 建立数据字典:明确每个字段的含义、来源、脱敏规则和允许值。例如
PatientID替换规则、StudyDate是否保留年份、SeriesDescription是否保留。 - 脱敏脚本化:用 pydicom 遍历 Tag,对敏感字段执行删除或替换;对像素区域用 OpenCV 做 OCR 检测与遮盖。脚本需版本管理,每次处理记录日志。
- 质量校验:检查 DICOM 可读性、像素与 Tag 一致性、脱敏完整性、序列完整性(层数、层厚、间距)。建议输出校验报告,异常文件单独隔离。
- 权限与审计:原始数据与脱敏数据分域存储,访问需审批与日志记录。多中心协作时,数据传输使用加密通道,映射表由专人保管。
数据获取与合规不是建模前的“杂活”,而是决定模型能否落地、能否通过审查、能否在多中心复现的基础工程。把 DICOM 读对、把 PACS 查准、把伦理走完、把脱敏做净、把协作规则定清,后续的特征提取与模型训练才有可靠的地基。