解析 DICOMDIR 以获取图像文件路径
Parse DICOMDIR to get image filepaths
我正在尝试通过解析 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
{
}
}
}
}
这会遍历每个 study/sequence/series/image
,但似乎没有一个包含 .dcm
文件的文件路径。
P.S。我使用 ClearCanvas 库创建 DicomDirectory 对象
看来,如果你转到最低级别(图像级别),dicomfile 有一个属性 ReferencedFileId,它保存相对路径,所以只需要:
Console.inner3Elem.GetAttribute(DicomTags.ReferencedFileId).ToString();
此 returns dicom 文件的路径相对于 DICOMDIR 所在的位置
我正在尝试通过解析 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
{
}
}
}
}
这会遍历每个 study/sequence/series/image
,但似乎没有一个包含 .dcm
文件的文件路径。
P.S。我使用 ClearCanvas 库创建 DicomDirectory 对象
看来,如果你转到最低级别(图像级别),dicomfile 有一个属性 ReferencedFileId,它保存相对路径,所以只需要:
Console.inner3Elem.GetAttribute(DicomTags.ReferencedFileId).ToString();
此 returns dicom 文件的路径相对于 DICOMDIR 所在的位置