我已经使用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?
发布于 2021-06-25 17:45:01
您尝试过Delete方法吗?
dicomDir.File.Delete();发布于 2021-06-29 02:12:23
你的要求很不寻常。fo-dicom在DicomDirectory中不提供从现有DICOMDIR中删除条目的方法。
DICOM中的文件集是不可变的。这样的文件集是例如在CD上刻录的文件的集合,然后用DICOMDIR文件进行索引。那么什么时候应该创建一个DICOMDIR呢?当您有一组文件要刻录到CD上时,您需要为这些文件创建DICOMDIR文件。
此外,在内部,DicomDirectoryRecords是具有相互引用的偏移量的条目列表。因此,删除一个条目意味着在内部完全重建记录结构。因此,与重新创建DICOMDIR相比,删除条目并没有太大的优势。
在什么情况下,您需要删除条目,并且无法重新创建DICOMDIR?如果有一个有效的用例,那么你必须在github的fo-dicom项目中创建一个问题。
https://stackoverflow.com/questions/68115536
复制相似问题