clearcanvas проверяет, является ли файл dicomdir - PullRequest
1 голос
/ 01 октября 2010

Я хочу прочитать теги dicom из dicomdir. Как я могу проверить, является ли файл dicomdir? Теперь я пытаюсь так, но я знаю, что в некоторых файлах нет имени dicomdir.

     if (fi_name.Contains("DICOMDIR"))
            {


                DicomDirectory fi_dicomdir = new DicomDirectory(fi);
                fi_dicomdir.Load(fi);
             }

Ответы [ 2 ]

2 голосов
/ 13 октября 2010

Поскольку DICOMDIR является специализированным экземпляром файла DICOM Part 10, вы можете прочитать только тег UID класса SOP Media Storage этого файла (который будет составлять всего несколько сотен байтов файла), а затем определить,файл является DICOMDIR.Код, подобный этому, будет работать:


DicomFile file = new DicomFile(fi);
file.Load(DicomTags.MediaStorageSopClassUid, DicomReadOptions.Default);
if (file.MediaStorageSopClassUid.Equals(SopClass.MediaStorageDirectoryStorageUid))
{
    DicomDirectory fi_dicomdir = new DicomDirectory("AETITLE");
    fi_dicomdir.Load(fi);                
}

Это должно работать быстро и было бы надежным способом определить, является ли файл DICOMDIR.

2 голосов
/ 11 октября 2010

В публикации NEMA говорится, что имя файла должно быть DICOMDIR . тип файла DICOM также можно определить по уникальному идентификатору класса SOP: 1.2.840.10008.1.3.10, который зарезервирован для этих типов файлов.

мягкую копию стандарта можно найти здесь

...