【问题标题】:Limiting DICOM tags限制 DICOM 标签
【发布时间】:2020-06-11 18:08:16
【问题描述】:

我正在尝试使用

限制保留的 DICOM 标签
for key in keys:
    if key.upper() not in {'0028|0010','0028|0011'}:
        image_slice.EraseMetaData(key)

在 Python 3.6 中 image_slice 的类型为 SimpleITK.SimpleITK.Image

然后我用

image_slice.GetMetaDataKeys()

查看剩下的标签,它们是我选择的标签。然后我用

保存图像
writer.SetFileName(outputDir+os.path.basename(sliceFileNames[i]))
writer.Execute(image_slice)

其中 outputDir 是输出目录名称,os.path.basename(sliceFileNames[i]) 是 DICOM 图像名称。但是,当我使用 Wea​​sis 或 MIPAV 打开图像时,我注意到标签比 image_slice 中的要多得多。比如有

(0002,0001) [OB] FileMetaInformationVersion: binary data
(0002,0002) [UI] MediaStorageSOPClassUID:
(0002,0003) [UI] MediaStorageSOPInstanceUID:
(0008,0020) [DA] StudyDate: (which is given the date that the file was created)

我想知道这些附加标签是如何以及在何处添加的。

【问题讨论】:

    标签: python-3.x dicom simpleitk


    【解决方案1】:

    您看到的第 2 组标签是元数据标签,它们总是在写入数据集时写入。除非以第 8 组开头的“常规”标签,否则这些第 2 组标签不属于数据集本身,但包含有关数据集编码/写入的信息,例如传输语法 - 更多信息可以在 @987654321 中找到@。它们将在将数据集保存到文件时重新创建,否则 DICOM 文件将无效。

    关于其余的标签我只能猜测,但它们可能是由软件编写的,因为它们是强制性的 DICOM 标签,并且在数据集中丢失了。 StudyDate 肯定是一个强制标签,因此如果数据被视为派生数据(如果您使用 ITK 操作它通常是这样),则添加它是正确的。我猜你没有提到的其他标签也是强制标签。

    拥有更多SimpleITK 知识的人可能会添加更多具体信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多