使用 GDCM 更改 DICOM 文件中特定标签值的最有效方法
Most efficient way to change the value of a specific tag in a DICOM file using GDCM
我需要检查一组 DICOM 文件并修改某些标签,使其与外部系统数据库中维护的数据保持一致。我正在寻找使用 GDCM。我是 GDCM 的新手。通过堆栈溢出帖子的搜索表明匿名器 class 可用于更改标签值。
Generating a simple CT DICOM image using GDCM
我的问题是这是否是 GDCM 的最佳用途 API 或者是否有更好的方法来更改单个标签的值,例如患者姓名或登录号。我不熟悉所有 API 选项,但对 API 文档有一个 link。看起来可以使用 DataElement SetValue 成员,但在 Value class 中似乎没有用于执行此操作的有效构造函数。任何帮助将不胜感激。这是我目前的做法:
Anonymizer anon = new Anonymizer();
anon.SetFile(myFile);
anon.Replace(new Tag(0x0010, 0x0010), "BUGS^BUNNY");
很晚了,但也许它仍然有用。你没有提到你是用 C++ 还是 C# 编写的,但我假设是后者,因为你不使用指针。通常,您的方法是正确的(除非您使用 System.IO.File
而不是 gdcm.File
)。值(Replace
函数的第二个参数)必须是纯字符串,因此不需要特殊的构造函数。您可能应该从 doxygen documentation of gdcm, and there is especially one complete example 开始。是C++写的,不过翻译应该没有问题。
有两种不同的填充方式 dicom 标签:
匿名器
gdcm::Anonymizer anon;
anon.SetFile(file);
anon.Replace(gdcm::Tag(0x0002, 0x0013), "Implementation Version Name");
//Implementation Version Name
DatsElement
gdcm::Attribute<0x0018, 0x0088> ss;
ss.SetValue(10.0);
ds.Insert(ss.GetAsDataElement());
我需要检查一组 DICOM 文件并修改某些标签,使其与外部系统数据库中维护的数据保持一致。我正在寻找使用 GDCM。我是 GDCM 的新手。通过堆栈溢出帖子的搜索表明匿名器 class 可用于更改标签值。
Generating a simple CT DICOM image using GDCM
我的问题是这是否是 GDCM 的最佳用途 API 或者是否有更好的方法来更改单个标签的值,例如患者姓名或登录号。我不熟悉所有 API 选项,但对 API 文档有一个 link。看起来可以使用 DataElement SetValue 成员,但在 Value class 中似乎没有用于执行此操作的有效构造函数。任何帮助将不胜感激。这是我目前的做法:
Anonymizer anon = new Anonymizer();
anon.SetFile(myFile);
anon.Replace(new Tag(0x0010, 0x0010), "BUGS^BUNNY");
很晚了,但也许它仍然有用。你没有提到你是用 C++ 还是 C# 编写的,但我假设是后者,因为你不使用指针。通常,您的方法是正确的(除非您使用 System.IO.File
而不是 gdcm.File
)。值(Replace
函数的第二个参数)必须是纯字符串,因此不需要特殊的构造函数。您可能应该从 doxygen documentation of gdcm, and there is especially one complete example 开始。是C++写的,不过翻译应该没有问题。
有两种不同的填充方式 dicom 标签:
匿名器
gdcm::Anonymizer anon; anon.SetFile(file); anon.Replace(gdcm::Tag(0x0002, 0x0013), "Implementation Version Name"); //Implementation Version Name
DatsElement
gdcm::Attribute<0x0018, 0x0088> ss; ss.SetValue(10.0); ds.Insert(ss.GetAsDataElement());