вы действительно нашли ошибку в fo-dicom. Это билет: https://github.com/fo-dicom/fo-dicom/issues/1045
В этом билете также есть обходной путь, пока не будет доступен следующий выпуск:
var dd = new DicomDirectory();
var directoryEntry = dd.AddFile(datasetWithReport);
// now directoryEntry has 4 properties that link to the 4 datasets in each hierachy. there you can change or add values
if (directoryEntry.InstanceRecord.GetString(DicomTag.DirectoryRecordType) == "IMAGE")
{
directoryEntry.InstanceRecord.AddOrUpdate(DicomTag.DirectoryRecordType, "REPORT");
// reports remore some more entries
directoryEntry.InstanceRecord.AddOrUpdate(DicomTag.CompletionFlag, 1);
directoryEntry.InstanceRecord.AddOrUpdate(DicomTag.VerificationFlag, 0);
// ....
}
Итак, после звонка AddFile
вы получаете объект входа, который указывает на все записи на всех 4 уровнях. так что вы можете потом изменить / обновить некоторые вещи.
Пожалуйста, также добавляйте свои комментарии и мысли в выпуск github.