Parsing 解析DICOMDIR以获取图像文件路径

Parsing 解析DICOMDIR以获取图像文件路径,parsing,dicom,clearcanvas,file-location,Parsing,Dicom,Clearcanvas,File Location,我试图通过解析DICOMDIR来定位DICOM文件路径 但似乎不知道如何找到他们。我通过DICOMDIR解析如下: DicomDirectory dir = new DicomDirectory("AE_TITLE"); dir.Load(dirPath); foreach(DirectoryRecordSequenceItem elem in dir.RootDirectoryRecordCollection){//study foreach(DirectoryRecordSequen

我试图通过解析DICOMDIR来定位DICOM文件路径

但似乎不知道如何找到他们。我通过DICOMDIR解析如下:

DicomDirectory dir = new DicomDirectory("AE_TITLE");
dir.Load(dirPath);
foreach(DirectoryRecordSequenceItem elem in dir.RootDirectoryRecordCollection){//study
    foreach(DirectoryRecordSequenceItem innerElem in elem.LowerLevelDirectoryRecordCollection){//sequence
        foreach(DirectoryRecordSequenceItem inner2Elem in innerElem.LowerLevelDirectoryRecordCollection){//series
            foreach (DirectoryRecordSequenceItem inner3Elem in lastElem.LowerLevelDirectoryRecordCollection) // img
            {

            } 
        }
    }
}
这将在每个
研究/序列/系列/图像中循环,但其中没有一个似乎包含指向
.dcm
文件的文件路径


注意:我使用ClearCanvas库创建DicomDirectory对象

如果您转到最低级别(图像级别),dicomfile似乎有一个属性ReferencedFileId,它保存相对路径,因此所需的只是:

Console.inner3Elem.GetAttribute(DicomTags.ReferencedFileId).ToString();

这将返回dicom文件相对于DICOMDIR所在位置的路径

请注意,表示引用SOP实例的文件ID的有序组件的引用文件ID(00041500)可以是多值组件。它最多可以包含8个组件,每个组件可以包含1到8个字符。字符5CH(对于DICOM默认指令集为反斜杠“\”)用作每个组件之间的分隔符。例如,由反斜杠分隔的四分量DICOM文件ID为:SUBDIR1\SUBDIR2\SUBDIR3\XYZ-ABCD