【发布时间】:2014-10-18 19:56:24
【问题描述】:
我正在尝试确定在 DICOM 处理模块之间传播权限的正确方法。其中一个步骤是“将数据集从信封中取出”,我的意思是根据传输语法对属性进行解码。两件事我无法理解:
- DICOM 表 6.2-1。 DICOM 值表示给出了一个要求,即值代码必须满足才能保证有效(例如,AE 中没有控制字符)。然而,一些 VR 依赖于由 (0008,0005) 定义的字符集 - 也是“信封”的成员。是不是很矛盾?
- “数据元素 (7FE0,0010) 像素数据,其中分配的位 (0028,0100) 的值小于或等于 8,应具有值表示 OB 或 OW,并应以 Little Endian 编码。”这句话在标准中出现了好几次。如何确定是否交换字节? (不看 BitsAllocated - 信封的成员)
我是否遗漏了什么,或者是否真的有必要解释数据集中的一些数据元素以验证 DICOM 文件和数据结构中的其他元素?
编辑: 让我重新提出我的问题:
大多数情况下,传输语法足以解码(解压缩)像素数据并将字节序扁平化为首选格式。那是在任何高位/位分配/位存储转换和以下模态之前-> voi)。
但是对于存储在 VR=OW 中的像素数据 - 我们不知道是否交换字节,因为我们不知道图像是否分配了 8 位或更多位(它现在也正在解码(endian交换,vr 验证))。
字符串的故事类似。
编辑: OW问题的答案在这里:Is the "Other Word" VR legal for an 8-bit RGB image?
我的最后一个问题是: 如何在不知道 (0008,0005) 字符集是什么的情况下检查 VR=LO 元素是否不包含任何控制字符? (因为它可能还没有被编码)
【问题讨论】:
-
您的问题是否仅限于解码 PixelData,还是涵盖整个文件的 DICOM 验证?
-
实际上它仅限于传输语法Big Endian,8bit的Pixel Data,存储在VR=OW中。还有当我想验证字符串 VRs 时的情况,这些字符串应该以中文字符集显示。
-
@WitoldKsiążek 字符串与其他数据类型一起存储,从不与 OW 一起存储(例如:PN 代表患者姓名,UT 代表无限文本等)
-
查看此答案stackoverflow.com/questions/8820965/…。标准的第 5 部分附件 D 有一些使用 OW 处理图像的好例子
-
这解决了我的 OW 问题!非常感谢。使用特定字符集编码的文本问题仍然存在......我会尽快更新问题。
标签: syntax decoding transfer dicom