单个 DICOM 对象中的几个特定字符集属性
Posted
技术标签:
【中文标题】单个 DICOM 对象中的几个特定字符集属性【英文标题】:Several Specific Character Set attributes in a single DICOM object 【发布时间】:2017-11-15 07:12:28 【问题描述】:我遇到了在私有标签中包含序列的 DICOM 对象;该序列中的每个项目都包含其自己的特定字符集 (0008,0005)。所有特定字符集元素都具有相同的值。 我还发现这些额外的特定字符集在某些应用程序中会产生问题。 DICOM 标准是否允许在单个对象中有多个特定字符集?如果是,范围规则是什么?
我在 Nema 文档中找不到答案。我还检查了几个 DICOM 一致性声明,结果相同。
【问题讨论】:
【参考方案1】:在 DICOM 中明确允许包含特定字符集。参考在这里:
DICOM PS3.5
具体来说,标准说:
如果在 IOD 中为该项目序列定义了属性特定字符集,则封装数据集应仅包含特定字符集 (0008,0005) 数据元素。
注意:封装的数据集不包括特定字符集数据元素,除非特定字符集属性被定义为该序列的 IOD 的一部分。
如果封装数据集包含特定字符集属性,则它应仅适用于封装数据集。如果属性特定字符集未明确包含在封装数据集中,则应用封装数据集的特定字符集值。
在这种情况下,“封装数据集”是一个 DICOM 序列。从技术上讲,因为您看到的是私有序列中的属性,所以这是不合法的,尽管这可能在 IOD 定义它时发生(特别是对于 DICOMDIR)。
【讨论】:
谢谢史蒂夫,我想我的问题没有说清楚。就我而言,特定字符集元素嵌入在私有数据序列中。这些在任何 IOD 中都没有定义。由于引用文本中的条件“应仅包括……如果在 IOD 中在该项目序列中定义了属性特定字符集”在任何私有数据序列的情况下不满足,因此不应包括特定字符集在这样的数据序列中。 啊,好吧,德米特里说得有道理。我已经编辑了答案,说它实际上是非法的。 嗯,一般来说,私有数据序列从不具有 IOD 还是应该被视为遵循只有相应供应商知道的“未知 IOD”?在这种情况下,他们可以指定“私有 IOD”以包含“特定字符集”属性。问题是一个人是否必须总体上期待并处理它?从技术上讲,这似乎是可行的。 我不知道像“私有数据序列 IOD”这样的东西。 PS3.3 附件 A 中没有类似的东西。我猜对私人数据的操作仅限于 Private Creator 规则。问题是,解析库不知道要忽略哪个 Private Creator;我还怀疑无法解释特定字符集可能无法进一步解析。【参考方案2】:关于序列编码的所有内容都写在 PS3.5 的第 7.5 章和 PS3.3 中,用于每个单独的序列。在这两个文档中,您都可以找到包含属性特定字符集的参考。
长话短说:这显然是错误的。
【讨论】:
谢谢,但我的问题不是关于多值特定字符集。它是关于序列中的几个特定字符集属性。那就是:一个在顶层。然后是私有属性VR SQ,其中item包含自己的Specific Character Set属性。不是多值的。以上是关于单个 DICOM 对象中的几个特定字符集属性的主要内容,如果未能解决你的问题,请参考以下文章