【问题标题】:How can I add metadata to a dicom file?如何将元数据添加到 dicom 文件?
【发布时间】:2019-07-19 09:12:23
【问题描述】:

这是与其他question 的延续。我正在尝试从 jpg 图像和一些我自己在 java 程序中编写的元数据中获取 dicom 文件。我有这个添加元数据的代码,但它似乎不完整,所以我不知道我还需要包括什么。

我尝试了一个简单的代码添加一些属性,但我得到了一些错误,所以我发现有一些强制标签。

Attributes attribs = new Attributes();

attribs.setString(Tag.StudyDate, VR.DA, "20110404"); attribs.setString(Tag.StudyTime, VR.TM, "15");

之后我尝试了这个,但我仍然缺少一些属性:

meta.setInt(Tag.FileMetaInformationGroupLength, VR.UL, data.length);
meta.setString(Tag.TransferSyntaxUID, VR.UI, "1.2.840.10008.1.2.1");

谢谢

【问题讨论】:

  • 如何判断缺少属性?缺少哪些属性?您要创建什么类型的 DICOM 对象(SOP 类)? meta.setXXX() 是按预期设置属性值还是失败?您是从头开始实施 DICOM 还是使用 DICOM 工具包?
  • 我得到这个错误:(0008,0030)不属于组(0002,eeee)任何时候我添加一个属性。这就是为什么我想知道哪些属性是强制性的。我使用 DICOM 工具包。谢谢

标签: java dicom dcm4che


【解决方案1】:

根据您提供的信息(见评论),我怀疑以下情况适用:

DICOM 文件有两个主要组成部分:

  • 描述编码(和其他 META 方面)的 Meta-Header DICOM 对象
  • DICOM 对象(数据集)本身由“标题数据”组成 和“像素数据”(实际上,像素数据只是一个特定的属性, 所以“标题数据”和“像素数据”是一种口语化的语言。

元头的所有属性都属于组 0x0002。错误消息说您正在尝试将属于数据集的属性写入不允许的元数据。

我无法提供更多信息,因为您发布的代码没有说明“属性”对象所属的位置。但显然,您正试图将“属性”添加到“元”中。

关于“哪些属性是强制性的”:很多,这取决于您正在创建的对象的类型,即它是否是计算机放射成像、内窥镜视频……

DICOM 第 3 部分是您为特定类型的对象获取强制性可选属性的参考,DICOM 将其称为“SOP 类”。

【讨论】:

  • 所以,我有两个问题: 1.我必须将元数据添加到 dicom 对象吗? 2. 我必须在添加我想要的之前添加所有的元标题属性吗?谢谢
  • 1.是 2. 取决于工具包,但很可能不是。
  • 你能给我看一个创建dicom对象的例子吗?我想所有的库都可以使 dicom 对象正确吗?我有 3.2.1,我无法导入 data.dicomObject
  • 那是旧版本的库,现在很容易添加一些属性
猜你喜欢
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-27
相关资源
最近更新 更多