我一直在尝试找到一种使用fo-dicom创建DICOMDIR文件的方法,并使其引用多个包含图像系列的文件,但到目前为止我还不能。
我已经成功阅读了DICOMDIR,系列甚至渲染图像。由此,我了解到DicomDirectory为患者提供了RootDirectoryRecordCollection
,从那里您可以获得LowerLevelDirectoryRecordCollection用于研究,然后是Series,然后是Image。但是,当要构建该结构时(例如,为新研究创建DICOMDIR和Series文件),我找不到找到设置那些LowerLeverDirectoryRecords
的方法。 RootDirectoryRecordCollection
有一个Add
方法,但是它需要一个DicomItem
,所以我认为它是针对DicomDataset
或DicomTag / Value的,其属性LowerLevelDirectoryRecordCollection
是一个IEnumerable
,因此那里没有Add
。我也看到过AddFile
方法,但是那里没有层次结构,所以我认为这是针对系列文件的。
有人成功创建了DICOMDIR并用fo-dicom引用了几个系列文件吗?怎么样?谢谢
答案 0 :(得分:1)
它应该像这样简单:
var dicomDir = new DicomDirectory();
foreach (var file in dirInfo.GetFiles("*.*", SearchOption.AllDirectories))
{
var dicomFile = Dicom.DicomFile.Open(file.FullName);
dicomDir.AddFile(dicomFile, String.Format(@"000001\{0}", file.Name));
}
dicomDir.Save(dicomDirPath);
所有内部层级结构都会自动添加。 我从fo-dicom-samples存储库中获取了以下示例: https://github.com/fo-dicom/fo-dicom-samples/blob/master/Desktop/DICOM%20Media/Program.cs