Наиболее эффективный способ изменить значение определенного тега в файле DICOM с помощью GDCM - PullRequest
0 голосов
/ 06 июля 2018

Мне нужно просмотреть набор файлов DICOM и изменить некоторые теги, чтобы они соответствовали данным, хранящимся в базе данных внешней системы. Я ищу использовать GDCM. Я новичок в GDCM. Поиск по сообщениям переполнения стека показывает, что класс anonymizer можно использовать для изменения значений тегов.

Генерация простого изображения CT DICOM с использованием GDCM

Мой вопрос заключается в том, является ли это наилучшим использованием API GDCM или есть ли лучший подход для изменения значений отдельных тегов, таких как имя пациента или номер доступа. Я не знаком со всеми параметрами API, но у меня есть ссылка на документацию API. Похоже, можно использовать член DataElement SetValue, но не похоже, что для этого есть действительный конструктор в классе Value. Любая помощь будет оценена. Это мой текущий подход:

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

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Существует два разных способа заполнения тегов 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());
    
0 голосов
/ 14 августа 2018

Довольно поздно, но, возможно, это все равно будет полезно. Вы не упомянули, пишете ли вы на C ++ или C #, но я предполагаю последнее, поскольку вы не используете указатели. Как правило, ваш подход правильный (если вы не используете System.IO.File вместо gdcm.File). Значение (второй параметр функции Replace) должно быть простой строкой, поэтому специальный конструктор не требуется. Вероятно, вам следует начать с документации по доксигену gdcm , и в особенности есть один полный пример . Это на C ++, но с переводом проблем быть не должно.

...