0

我使用 fo-dicom 创建了 DICOMDIR,如下所示。

var dicomDir = new DicomDirectory();
var dicomFile = Dicom.DicomFile.Open(dicomFilePath);
dicomDir.AddFile(dicomFile, filePathForDicomDir);
DicomWriteOptions options = DicomWriteOptions.Default;
options.ExplicitLengthSequenceItems = false;
dicomDir.Save(dicomDirPath, options);

我必须从现有的 DICOMDIR 中删除已添加的文件,但在 DicomDirectory.cs 类中找不到方法。

如何使用 fo-dicom 从 DICOMDIR 成功删除文件引用,而不是重新创建整个 DICOMDIR?

4

2 回答 2

0

你的要求很不寻常。fo-dicom 没有在 DicomDirectory 中提供从现有 DICOMDIR 中删除条目的方法。

DICOM 中的文件集是不可变的。此类文件集是文件的集合,例如刻录在 CD 上,然后使用 DICOMDIR 文件进行索引。那么什么时候应该创建一个DICOMDIR?当您有一组要刻录在 CD 上的文件时,您可以为这些文件创建 DICOMDIR 文件。

DicomDirectoryRecords 在内部也是具有相互引用的偏移量的条目列表。所以删除一个条目意味着在内部完全重建记录结构。因此,与重新创建 DICOMDIR 相比,删除条目并没有太大的优势。

您需要删除条目并且无法重新创建 DICOMDIR 的用例是什么?如果有一个有效的用例,那么你必须在 github 上的 fo-dicom 项目中创建一个问题。

于 2021-06-28T18:12:22.613 回答
0

您是否尝试过删除方法?

dicomDir.File.Delete();
于 2021-06-25T09:45:01.090 回答