一个DICOM对象中的几个特定字符集属性

4
我发现DICOM对象中包含私有标签序列;该序列中的每个项目都包含其自己的具体字符集(0008,0005)。所有具体字符集元素都具有相同的值。 我还发现,这些额外的具体字符集在某些应用程序中会引起问题。 DICOM标准允许在单个对象中拥有多个具体字符集吗?如果允许,那么作用范围规则是什么? 我无法在Nema文档中找到答案。我还检查了几个DICOM一致性声明,结果相同。
2个回答

2
DICOM明确允许包含特定字符集。参考文献如下:DICOM PS3.5。具体来说,标准规定:
封装的数据集只有在IOD为该项序列定义了属性特定字符集时,才能包括特定字符集(0008,0005)数据元素。
注意:封装的数据集不包括特定字符集数据元素,除非特定字符集属性作为该序列的一部分在IOD中定义。
如果封装的数据集包括特定字符集属性,则仅适用于封装的数据集。如果未在封装的数据集中显式包含属性特定字符集,则应用封装数据集的特定字符集值。
在这种情况下,“封装的数据集”是DICOM序列。从技术上讲,由于您看到私有序列中的属性,因此这是不合法的,尽管这可能发生在IOD定义它时(特别是对于DICOMDIRs)。

谢谢Steve,我想我没有表达清楚我的问题。在我的情况下,特定字符集元素嵌入到私有数据序列中。这些未在任何IOD中定义。由于引用文本中的条件“仅在IOD中定义了该项序列中的属性特定字符集时才包括...”在任何私有数据序列的情况下都不满足,因此不应在此类数据序列中包括特定字符集。 - dmitry
啊,好的,这样就有意义了,Dmitry。我已经编辑了答案,说明它是非法的,实际情况确实如此。 - Steve Wranovsky
嗯,一般来说,私有数据序列从不具有IOD,还是应该被视为遵守各自供应商所知道的“未知IOD”?在这种情况下,他们可以指定“私有IOD”包含“特定字符集”属性。问题是是否需要总体上预期和处理它?从技术上讲,似乎是可行的。 - Tilman Vogel
我不知道有类似于“私有数据序列IOD”的东西。在PS3.3附录A中也没有这样的内容。我猜测,对私有数据的操作仅限于私有创建者规则。问题是,解析库不知道要忽略哪个私有创建者;同时我怀疑无法解释特定字符集可能会导致进一步的解析失败。 - dmitry

0

关于序列编码的所有内容都写在PS3.5第7.5章和PS3.3中,适用于每个单独的序列。在这些文档中,您都不会找到包括属性“特定字符集”的参考。

长话短说:这是明显错误的。


谢谢,但我的问题不是关于多值特定字符集的。它是关于序列中的几个特定字符集属性的。即:顶层有一个,然后有一个私有属性VR SQ,其中项目包含自己的特定字符集属性。不是多值的。 - dmitry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接