2015-08-21 50 views
1

我試圖通過解析DICOMDIR來查找DICOM文件路徑。解析DICOMDIR獲取圖像文件路徑

但似乎無法弄清楚如何找到它們。我通過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 
      { 

      } 
     } 
    } 
} 

這個遍歷每個study/sequence/series/image但這些非似乎含有文件路徑爲.dcm文件。

P.S.我用的是ClearCanvas庫來創建DicomDirectory對象

回答

1

看來,如果你去的最低水平(圖像電平)dicomfile有一個屬性ReferencedFileId持有的相對路徑,以便在需要的一切:

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

這將返回的路徑相對DICOM文件的DICOMDIR位於其中

+1

請注意,引用文件ID(0004,1500)表示引用的SOP實例的文件ID的有序組件可以是多價值成分。它最多可以有8個組件,每個組件可以有1到8個字符。字符5CH(在DICOM缺省庫中爲反斜槓「\」)用作每個組件之間的分隔符。例如,用反斜線分隔的四分量DICOM文件ID是:SUBDIR1 \ SUBDIR2 \ SUBDIR3 \ XYZ-ABCD –