如何将元数据添加到dicom文件?

时间:2019-07-19 09:12:23

标签: java dicom dcm4che

这与其他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");

谢谢

1 个答案:

答案 0 :(得分:0)

根据您提供的信息(请参阅评论),我怀疑存在以下情况:

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

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

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

我无法透露更多信息,因为您发布的代码无法告诉您“属性”对象所属的位置。但显然,您正在某处尝试将“属性”添加到“元”。

关于“哪些属性是强制性的”:很多,这取决于您要创建的对象的类型,即它是否是计算机射线照相术,内窥镜视频......

DICOM第3部分是为特定类型的对象(DICOM称为“ SOP类”)获取必需的可选属性的参考。