1

我需要检查一组 DICOM 文件并修改某些标签,使其与外部系统数据库中维护的数据保持一致。我正在寻找使用GDCM。我是 GDCM 的新手。搜索堆栈溢出帖子表明匿名器类可用于更改标记值。

使用 GDCM 生成简单的 CT DICOM 图像

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

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

2 回答 2

1

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

于 2018-08-14T06:55:07.093 回答
0

填充dicom 标签有两种不同的方法:

  1. 匿名者

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

    gdcm::Attribute<0x0018, 0x0088> ss;
    ss.SetValue(10.0);
    ds.Insert(ss.GetAsDataElement());
    
于 2018-10-15T08:18:06.657 回答