Java 如何向dicom文件添加元数据?

Java 如何向dicom文件添加元数据?,java,dicom,dcm4che,Java,Dicom,Dcm4che,这是在继续与其他。我试图从一个jpg图像和一些我自己在java程序中编写的元数据中获得一个dicom文件。我有这个添加元数据的代码,但它似乎不完整,所以我不知道还需要包括什么 我尝试了一个简单的代码来添加一些属性,但是我得到了一些错误,所以我发现有一些必需的标记 Attributes attribs = new Attributes(); attribs.setString(Tag.StudyDate,VR.DA,“20110404”); 属性设置字符串(Tag.StudyTime,VR.TM

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

我尝试了一个简单的代码来添加一些属性,但是我得到了一些错误,所以我发现有一些必需的标记

Attributes attribs = new Attributes();
attribs.setString(Tag.StudyDate,VR.DA,“20110404”);
属性设置字符串(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文件有两个主要组件:

  • 描述编码(和其他元方面)的元头 DICOM对象
  • DICOM对象(数据集)本身由“标题数据”组成 和“像素数据”(实际上,像素数据只是一个特定属性, 所以“标题数据”和“像素数据”是一种口语
元标头的所有属性都属于组0x0002。错误消息表示您正在尝试将属于数据集的属性写入元数据,这是不允许的

我不能说更多,因为您发布的代码没有告诉“Attributes”对象属于哪里。但是很明显,您正在尝试将“Attributes”添加到“meta”中

关于“哪些属性是必需的”:相当多,这取决于您正在创建的对象的类型,即它是否是计算机X射线摄影、内窥镜视频


DICOM第3部分是您获取DICOM称为“SOP类”的特定类型对象的强制可选属性的参考。如何判断缺少哪些属性?缺少哪些属性?您试图创建什么类型的DICOM对象(SOP类)?是meta.setXXX()按预期设置属性值还是失败?您是从头开始实施DICOM还是使用DICOM工具包?我发现此错误:(00080030)不属于组(0002,eeee)任何时候我添加一个属性。这就是为什么我想知道哪些属性是强制性的。我使用一个DICOM工具包。谢谢,我有两个问题:1.我必须向DICOM对象添加元数据吗?2.我必须在添加我想要的属性之前添加所有的元标题属性吗?谢谢1.是的2.取决于工具包,但很可能不是。我可以吗你能给我看一个创建dicom对象的例子吗?我想所有的库都能使dicom对象正确吗?我有3.2.1,不能导入数据。dicom对象是库的旧版本,现在可以很容易地添加一些属性