如何使用 fo-dicom 正确创建 DICOMDIR?

How to create a DICOMDIR properly with fo-dicom?

我一直在尝试找到一种方法来使用 fo-dicom 创建一个 DICOMDIR 文件,并让它引用几个包含图像系列的文件,但到目前为止我做不到。

我已经成功阅读了 DICOMDIR、系列甚至渲染图像。从那里,我能够理解 DicomDirectory 有一个 RootDirectoryRecordCollection 用于患者,从那里你有 LowerLevelDirectoryRecordCollection 用于研究,然后是系列,然后是图像。但是在构建该结构时(例如,为新研究创建 DICOMDIR 和系列文件)我找不到设置这些的方法 LowerLeverDirectoryRecords; RootDirectoryRecordCollection 有一个 Add 方法,但它需要一个 DicomItem,所以我认为它是用于 DicomDataset 或 DicomTag/Value,它的 属性 LowerLevelDirectoryRecordCollection 是一个 IEnumerable,所以那里没有 Add。我也看到了 AddFile 方法,但那里没有层次结构,所以我认为这是针对系列文件的。

有没有人成功创建了一个 DICOMDIR 并用 fo-dicom 引用了几个系列文件?如何?谢谢

应该很简单:

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