Как изменить теги Dicom с помощью fo-dicom - PullRequest
0 голосов
/ 07 ноября 2019

Я создаю консольное приложение, которое будет изменять теги dicom. Я загружу один файл dicom и обновлю тег PatientID.

Кажется, я ничего не могу изменить. Я могу читать теги, но обновление / добавление не похоже на меня. Ранее я использовал DICOM ToolKit на powershell, и это очень просто и легко, но я хочу начать разработку на c # и пока у меня не получается.

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");

        }
    }
}

Я ожидаю после запуска кода, когда япосмотрите на теги заголовка Dicom для этого файла с ImageJ или другим читателем dicom, что значение для тега PatientID будет «TEST-PATIENT». Код выполняется без ошибок, но, кажется, ничего не обновляется и не изменяется, когда я смотрю на dicomзаголовок.

1 Ответ

0 голосов
/ 07 ноября 2019

Вы должны вызвать метод DicomFile.Save ().

            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.

...