文章

DICOM Modality 代码速查:从 DX、XA 到 SEG、REG

DICOM Modality 代码速查:从 DX、XA 到 SEG、REG

DICOM Modality 代码速查:从 DX、XA 到 SEG、REG

从一个真实的兼容性事故说起

同一台 C 形臂,换个厂商,导出的 DICOM 里 Modality 字段可能是 XA,可能是 RF,单帧拍摄模式下甚至可能是 DX。

这件事本身不算问题,问题出在软件怎么用它。如果解析逻辑写成”Modality 等于 XA 就走透视序列的分支,否则按静态片处理”,那么换一台设备,同样的图像就会走进错误的分支。更麻烦的是这类故障往往不会崩溃报错——图像照常加载,只是后续的几何参数取错了,或者帧序处理方式不对。等到有人发现导航结果偏了,回溯起来会很费劲。

所以 Modality 这个看起来最基础的字段,值得专门整理一遍:它到底代表什么,有哪些取值,以及哪些地方不能想当然。

Modality 是什么

Modality 是 DICOM 数据集中的一个必填字段(标签 0008,0060),用一个简短的代码说明这份数据是由哪一类设备、哪一种成像方式产生的。它定义在 DICOM 标准的 PS3.3 部分,属于 General Series 模块。

它的作用主要有三个层面。在 PACS 里,它是检索和分类的主要维度,医生按 CT、MR 筛选检查靠的就是它。在阅片软件里,它决定默认的窗宽窗位预设、默认布局、默认的测量工具集。在专用软件里,它常常被用来判断该走哪条解析路径。

第三种用法就是风险所在——前两种用错了顶多是显示不合适,第三种用错了会影响计算结果。

下面按类别整理常见取值。需要说明的是,DICOM 标准中的完整代码集比这里列的要长,且包含若干已废止(retired)的历史代码,实际项目中以 PS3.3 的现行版本为准。这里收录的是日常会遇到的部分。

X 射线类

代码全称说明
DXDigital Radiography数字化 X 射线摄影,平板探测器直接成像,单帧静态片
CRComputed Radiography计算机 X 射线摄影,IP 影像板经激光扫描读出,DX 的前代技术
XAX-Ray AngiographyX 射线血管造影,C 形臂产出的实时序列图像
RFRadiofluoroscopyX 射线透视,实时连续成像
RGRadiographic Imaging传统屏片式 X 射线摄影
MGMammography乳腺 X 射线摄影
PXPanoramic X-Ray口腔全景 X 射线摄影
IOIntra-Oral Radiography口内牙片
BMDBone Mineral Densitometry骨密度测量,常见实现为双能 X 射线吸收法(DXA)

断层与三维成像

代码全称说明
CTComputed Tomography计算机断层扫描
MRMagnetic Resonance磁共振成像
PTPositron Emission Tomography正电子发射断层,即通称的 PET
NMNuclear Medicine核医学,含 SPECT
USUltrasound超声
OPTOphthalmic Tomography眼科断层成像,主要是 OCT

放疗相关

代码全称说明
RTIMAGERadiotherapy Image放疗影像,如射野验证片
RTDOSERadiotherapy Dose剂量分布数据
RTSTRUCTRadiotherapy Structure Set结构集,存放靶区与危及器官的轮廓
RTPLANRadiotherapy Plan放疗计划
RTRECORDRT Treatment Record治疗实施记录

这一组的特点是:除 RTIMAGE 外,其余几个装的都不是图像,而是几何与计划数据。这一点提醒我们,Modality 不等于”图像类型”。

非影像与辅助类

代码全称说明
SCSecondary Capture二次捕获,由其他来源转换成 DICOM 的图像
SRStructured Report结构化报告
PRPresentation State显示状态,记录窗宽窗位、标注、缩放、翻转等
KOKey Object Selection关键图像标记
SEGSegmentation分割结果
REGRegistration配准变换数据
PLANPlan计划数据
DOCDocument封装文档,例如内嵌的 PDF
OTOther其他,未归入已有类别

其他专科

代码全称说明
ESEndoscopy内窥镜
XCExternal-Camera Photography体表摄影
OPOphthalmic Photography眼科摄影
SMSlide Microscopy玻片显微镜,数字病理
ECGElectrocardiography心电
EPSCardiac Electrophysiology心脏电生理
IVUSIntravascular Ultrasound血管内超声

摄影与透视:不要都叫”X 光”

中文里习惯把一切 X 射线成像统称”X 光”或”拍片子”,但在技术文档和代码里,这种笼统会直接导致理解偏差。

Radiography(摄影) 是曝光一次得到一张静态图像。DX、CR、RG、MG 都属于这一类。特征是单帧、高分辨率、剂量相对集中在一次曝光。

Fluoroscopy(透视) 是连续出像,屏幕上能看到实时画面。RF 是它的直接对应代码,XA 也属于实时成像这一类。特征是多帧序列、单帧剂量低但累积时间长、分辨率通常不如摄影。

这两者的差别不只是”一张”和”一串”。它们的图像特性、几何信息的完整程度、以及后处理方式都不同。写文档时,radiography 译”X 射线摄影”,fluoroscopy 译”X 射线透视”,别混成一个词。

对做术中导航的人来说,这个区分尤其重要。C 形臂属于透视设备,它产出的图像在几何标定、畸变校正、帧间一致性上都有自己的一套要求,和拿一张术前的 DX 平片完全是两回事。

三个实战坑点

一、XA 的字面含义与实际用法不一致

XA 全称是 X-Ray Angiography,字面是血管造影。但在骨科、脊柱外科这类不打造影剂的场景里,C 形臂产出的透视序列同样经常被标成 XA。

原因是厂商的固件大多沿用了介入设备的输出配置,而不是按每次检查的实际用途去区分。所以看到 XA 不能推断做过造影,看到没打造影剂也不能推断 Modality 一定不是 XA。

如果软件里有任何逻辑依赖”是否造影”这个判断,不要用 Modality 去推。

二、同类设备的标法在厂商之间不统一

这是开篇那个场景的根源。同样是术中 C 形臂:

  • 多数厂商的连续透视输出标 XA
  • 部分设备标 RF
  • 单帧”拍照”模式下,有的标 DX,有的仍标 XA 并输出单帧序列

没有哪一种标法违反标准,标准本身给的就是一个可选值域,厂商按自己的理解选。

三、只按 Modality 分支是脆弱的

以上两点合起来的结论是:Modality 适合用来做分类和展示,不适合作为解析逻辑的唯一依据。

更稳的做法是结合几个字段一起判断:

  • SOP Class UID(0008,0016) 比 Modality 精确得多。它明确指出这是哪一类信息对象,例如 X-Ray Angiographic Image Storage 与 Digital X-Ray Image Storage 是两个不同的 UID,不会像 Modality 那样混用。
  • Number of Frames(0028,0008) 直接告诉你是单帧还是多帧,不用靠 Modality 去猜。
  • 具体的几何标签,比如距离源到探测器、距离源到患者这类字段是否存在、是否有值。

判断逻辑写成”先看 SOP Class UID,再用帧数和关键几何标签兜底,Modality 只作参考”,比单靠一个字段健壮得多。

顺带说说 SEG 和 REG

这两个代码在做三维重建和导航的团队里值得单独关注,因为它们正好对应两件我们天天在做的事。

SEG 对应的是 Segmentation Storage,用来存放分割结果。很多软件习惯把分割结果存成自定义格式,或者干脆存成一套 mask 图像。用 DICOM SEG 的好处是:它和原始图像的空间关系是标准化描述的,每个分段的含义可以挂标准术语编码,别的系统拿到能直接理解。

REG 对应的是 Spatial Registration Storage,用来存放配准变换。同理,把一个变换矩阵存成自定义的 txt 或 json,只有自家软件认;存成 REG,任何支持的系统都能用。

这件事在注册申报时也有实际价值。审评关注数据的互操作性和可追溯性,用标准对象类型比自定义格式更容易说清楚。如果产品将来要和医院的 PACS 或第三方工作站对接,这一步省下的沟通成本很可观。