我想从dicomdir中读取dicom标签。我怎样才能检查文件是否是dicomdir?现在,我正在尝试这样,但我知道有些文件名称中没有dicomdir。
if (fi_name.Contains("DICOMDIR"))
{
DicomDirectory fi_dicomdir = new DicomDirectory(fi);
fi_dicomdir.Load(fi);
}
答案 0 :(得分:2)
NEMA出版物规定文件名必须为 DICOMDIR 。 DICOM文件类型也可以由唯一的SOP类ID标识:1.2.840.10008.1.3.10,它是为这些文件类型保留的。
可以找到标准的软拷贝here
答案 1 :(得分:2)
由于DICOMDIR是DICOM Part 10文件的专用实例,因此您只能读取文件的Media Storage SOP Class UID标记(该文件只有几百个字节),然后确定是否该文件是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的简单方法。