首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用fo-dicom修改Dicom标签

如何使用fo-dicom修改Dicom标签
EN

Stack Overflow用户
提问于 2019-11-07 05:41:56
回答 1查看 1.4K关注 0票数 1

我正在创建一个控制台应用程序,它将修改dicom标签。我将加载一个单独的dicom文件并更新PatientID标记。

我似乎不能得到任何东西来修改。我可以阅读标签,但更新/添加似乎对我不起作用。以前我在powershell上使用过DICOM ToolKit,它非常简单明了,但是我想开始在c#中进行开发,到目前为止,我失败了。

代码语言:javascript
复制
using System;
using System.IO;
using SpiromicsImporterPrep.FileMethods;
using Dicom;

namespace SpiromicsImporterPrep
{
    class Program
    {
        static void Main(string[] args)
        {
            string filename = @"Z:\SPIROMICS\Human_Scans\Dispatch_Received\NO_BACKUP_DONE_HERE\MIFAR\FORCE\JH114062-FU4\119755500\Non_Con_FRC__0.75__Qr40__5_7094\IM001139";
            var file = DicomFile.Open(filename, readOption: FileReadOption.ReadAll);
            var dicomDataset = file.Dataset;
            dicomDataset.AddOrUpdate(DicomTag.PatientID, "TEST-PATIENT");

        }
    }
}

我希望在运行代码后,当我使用ImageJ或其他Dicom阅读器查看此文件的dicom头标记时,PatientID标记的值将为"TEST-PATIENT“,代码运行时没有错误,但当我查看dicom头时,似乎没有任何更新或更改。

EN

回答 1

Stack Overflow用户

发布于 2019-11-07 15:28:19

您应该调用DicomFile.Save()方法。

代码语言:javascript
复制
            string[] files = System.IO.Directory.GetFiles(@"D:\AcquiredImages\20191107\1.2.826.0.1.3680043.2.461.11107149.3266627937\1.2.276.0.7230010.3.1.3.3632557514.6848.1573106796.739");

            foreach (var item in files)
            {
                DicomFile dicomFile = DicomFile.Open(item,FileReadOption.ReadAll);             

                dicomFile.Dataset.AddOrUpdate<string>(DicomTag.PatientName, "abc");

                dicomFile.Save(item);
            }

FileReadOption.ReadAll是必需的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58738919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档