使用GDCM更改DICOM文件中特定标签值的最有效方法

时间:2018-07-06 14:09:53

标签: gdcm

我需要浏览一组DICOM文件并修改某些标签,使其与外部系统数据库中维护的数据保持最新。我希望使用GDCM。我是GDCM的新手。通过对堆栈溢出帖子的搜索表明,匿名器类可用于更改标签值。

Generating a simple CT DICOM image using GDCM

我的问题是,这是否是GDCM API的最佳用法,或者是否有更好的方法来更改单个标签的值,例如患者姓名或登记号。我不熟悉所有API选项,但是有指向API文档的链接。看起来可以使用DataElement SetValue成员,但在Value类中似乎没有有效的构造函数来执行此操作。任何帮助,将不胜感激。这是我目前的方法:

Anonymizer anon = new Anonymizer();
 anon.SetFile(myFile);
 anon.Replace(new Tag(0x0010, 0x0010), "BUGS^BUNNY");

2 个答案:

答案 0 :(得分:1)

很晚了,但也许仍然有用。您没有提到是用C ++还是C#编写的,但是我假设后者是C ++,因为您不使用指针。通常,您的方法是正确的(除非您使用System.IO.File而不是gdcm.File)。值(Replace函数的第二个参数)必须为纯字符串,因此不需要特殊的构造函数。您可能应该从doxygen documentation of gdcm开始,尤其是one complete example。它是C ++语言,但翻译应该没有问题。

答案 1 :(得分:0)

有两种方法填充 dicom标签

  1. 匿名器

    gdcm::Anonymizer anon;
    anon.SetFile(file);   
    anon.Replace(gdcm::Tag(0x0002, 0x0013), "Implementation Version Name"); 
    //Implementation Version Name
    
  2. DatsElement

    gdcm::Attribute<0x0018, 0x0088> ss;
    ss.SetValue(10.0);
    ds.Insert(ss.GetAsDataElement());