4. 数据导入与工程化数据管理
在3D Slicer中,影像数据能否被正确加载、组织与复用,直接决定后续分割、配准、建模和测量的可靠性。本节围绕DICOM导入、NIfTI/NRRD/MHA格式转换、多序列加载、Subject Hierarchy组织以及场景保存与MRB打包展开,目标是让读者建立“数据进入—结构组织—工程封装”的完整工作链。
DICOM导入:从原始目录到可浏览序列
DICOM是临床影像最常见的原始格式,通常以目录形式存在,一个检查包含多个序列,每个序列由若干切片组成。3D Slicer的DICOM模块提供两种主要入口:Import DICOM files用于将外部目录中的DICOM文件复制或链接到Slicer内部数据库;DICOM Browser用于浏览已导入数据库中的患者、研究、序列三级结构。
实际操作中,先点击“Import DICOM files”,选择包含DICOM的文件夹,Slicer会解析文件头并建立索引。导入完成后,在DICOM Browser中按Patient→Study→Series展开,勾选目标序列后点击“Load”即可加载到场景。需要注意:若同一目录下混有多个检查,应按Study分别确认;若序列方向或层厚异常,可在加载前查看Series Description、Modality、Slice Thickness等标签。对于CT、MR、PET等多模态数据,建议先导入全部序列,再在Subject Hierarchy中统一命名,避免后续混淆。
NIfTI/NRRD/MHA转换:面向工程流程的格式选择
DICOM适合临床归档,但在算法开发、配准和批量处理中,NIfTI、NRRD、MHA更常用。三者的核心差异在于:NIfTI通常为单文件(.nii或.nii.gz),适合体积数据;NRRD支持多分量、方向矩阵和压缩,适合分割标签与DTI;MHA是ITK原生格式,元数据保留较完整,适合与ITK/SimpleITK互操作。
在Slicer中转换格式最直接的方式是:加载DICOM序列后,在Data模块中右键选择“Export to file”,或使用“Save Data”对话框,在文件格式下拉框中选择目标格式。若需要批量转换,可使用命令行工具:
# 示例:将DICOM序列转换为NIfTI
Slicer --no-main-window --python-script convert.py
# convert.py 核心逻辑(示例)
import slicer
from DICOMLib import DICOMUtils
DICOMUtils.importDICOM('C:/data/dicom')
volume = slicer.util.getNode('CT_1')
slicer.util.saveNode(volume, 'C:/data/ct.nii.gz')
转换后应检查:图像方向是否一致、原点是否偏移、像素间距是否保留。若发现方向翻转,可在Volumes模块中查看IJK到RAS矩阵,必要时用“Resample Scalar Volume”统一到目标空间。
多序列加载与Subject Hierarchy组织
多序列加载不是简单地把多个Volume堆进场景,而是要让它们在同一空间参照下可比较、可叠加。Subject Hierarchy是Slicer中组织数据树的核心机制,它把患者、研究、序列、分割、模型、变换等节点统一挂到一棵树上,并支持拖拽、重命名、颜色标记和显示控制。
建议的组织策略是:以患者或受试者为根节点,其下按Study或时间点分组,再按序列类型(T1、T2、DWI、CT、PET)建立子节点。对于同一空间的分割结果,应挂到对应Volume下,并设置相同的Reference Volume。若存在配准变换,将Transform节点放在序列与分割之间,使显示和后续处理自动继承变换。
图中展示了以患者为根、研究为中间层、序列为叶节点的典型结构。T1作为参考体积,Tumor_Seg分割和T1_to_CT变换都挂在其下,保证显示与计算时空间一致。实际工程中,建议对每个节点使用可读命名,如“T1_AX_3D”“Tumor_Seg_v1”,避免默认的“Volume_1”“Segmentation_1”。
场景保存与MRB打包
场景保存有两种粒度:Save Scene保存为.mrml文件,仅记录节点路径和参数,不复制原始数据;Save Data可将场景中所有节点导出为独立文件;MRB(Medical Reality Bundle)则是将场景、数据、变换、分割等打包为单个.mrb文件,适合迁移、归档和分享。
MRB打包的操作路径是:File→Save Data,在保存对话框中选择“Medical Reality Bundle (*.mrb)”,指定路径后保存。MRB内部实际是一个zip容器,包含.mrml场景文件和所有引用的数据文件。加载时直接拖入Slicer或File→Open即可完整还原,包括节点层级、颜色、显示状态和变换关系。
工程化数据管理检查清单
| 环节 | 关键检查项 | 判断依据 |
|---|---|---|
| DICOM导入 | 患者/研究/序列层级正确 | DICOM Browser中无重复或错位 |
| 格式转换 | 方向、原点、间距保留 | Volumes模块中IJK到RAS矩阵一致 |
| 多序列加载 | Reference Volume统一 | 叠加显示时解剖结构对齐 |
| Subject Hierarchy | 命名可读、层级清晰 | 节点树无默认名称堆积 |
| MRB打包 | 数据完整、路径无外部依赖 | 重新加载后节点与显示状态还原 |
完成上述流程后,一个可复用的工程化数据包就形成了:原始DICOM保留在数据库中,工作场景以MRB封装,中间格式按需导出。这样既满足临床回溯,也支持算法迭代和团队协作。