帧数标记出现在数据集中但不在 DICOMDIR C# 中
The number of frames tag appears in the dataset but is not in the DICOMDIR C#
我使用 AddFile(dicomFile,name) 方法添加 dicom 文件,但没有出现帧数标签。
var sourcePath = Path.Combine(tempDirectory, "DICOM", $"PATIENT{i + 1}", $"STUDY{j + 1}", $"SERIES{k + 1}", $"SUBSERIES{l + 1}");
var dicomDir = new DicomDirectory { AutoValidate = false };
foreach (var file in new DirectoryInfo(tempDirectory).GetFiles("*.*", SearchOption.AllDirectories))
{
try
{
var dicomFile = DicomFile.Open(file.FullName);
if (dicomFile != null)
{
var referenceField = file.FullName.Replace(tempDirectory, string.Empty).Trim('\');
dicomDir.AddFile(dicomFile, referenceField);
}
}
catch (Exception ex)
{
Log.Error(ex, ex.Message);
}
}
var dicomDirPath = Path.Combine(tempDirectory, "DICOMDIR");
dicomDir.Save(dicomDirPath);
resultDirectories.Add(dicomDirPath);
我也试过addorupdate方法,但是不行。
我使用 fo-dicom 库 4.0.7
当通过为每个文件迭代调用 AddFile
来使用 fo-dicom 构建 DICOMDIR 时,您将获得一个包含所有必需的 DicomTag 的 DICOMDIR。但是当然有很多标签是可选的,你可以自己添加。
方法 AddFile
returns 类型 DicomDirectoryEntry
的实例,它为您提供对患者记录条目、研究记录条目、系列记录条目和实例记录条目的引用。您可以在那里添加任意数量的附加可选数据。在你的情况下它看起来像
[...]
if (dicomFile != null)
{
var referenceField = file.FullName.Replace(tempDirectory, string.Empty).Trim('\');
var entries = dicomDir.AddFile(dicomFile, referenceField);
// now you can add some additional data.
// but before adding values, make sure that those values are available
// in your original DicomFile to avoid NullReferenceExceptions.
if (dicomFile.Dataset.Contains(DicomTag.NumberOfFrames))
{
entries.InstanceRecord.AddOrUpdate(DicomTag.NumberOfFrames, dicomFile.Dataset.GetSingleValue<int>(DicomTag.NumberOfFrames));
}
}
我使用 AddFile(dicomFile,name) 方法添加 dicom 文件,但没有出现帧数标签。
var sourcePath = Path.Combine(tempDirectory, "DICOM", $"PATIENT{i + 1}", $"STUDY{j + 1}", $"SERIES{k + 1}", $"SUBSERIES{l + 1}");
var dicomDir = new DicomDirectory { AutoValidate = false };
foreach (var file in new DirectoryInfo(tempDirectory).GetFiles("*.*", SearchOption.AllDirectories))
{
try
{
var dicomFile = DicomFile.Open(file.FullName);
if (dicomFile != null)
{
var referenceField = file.FullName.Replace(tempDirectory, string.Empty).Trim('\');
dicomDir.AddFile(dicomFile, referenceField);
}
}
catch (Exception ex)
{
Log.Error(ex, ex.Message);
}
}
var dicomDirPath = Path.Combine(tempDirectory, "DICOMDIR");
dicomDir.Save(dicomDirPath);
resultDirectories.Add(dicomDirPath);
我也试过addorupdate方法,但是不行。
我使用 fo-dicom 库 4.0.7
当通过为每个文件迭代调用 AddFile
来使用 fo-dicom 构建 DICOMDIR 时,您将获得一个包含所有必需的 DicomTag 的 DICOMDIR。但是当然有很多标签是可选的,你可以自己添加。
方法 AddFile
returns 类型 DicomDirectoryEntry
的实例,它为您提供对患者记录条目、研究记录条目、系列记录条目和实例记录条目的引用。您可以在那里添加任意数量的附加可选数据。在你的情况下它看起来像
[...]
if (dicomFile != null)
{
var referenceField = file.FullName.Replace(tempDirectory, string.Empty).Trim('\');
var entries = dicomDir.AddFile(dicomFile, referenceField);
// now you can add some additional data.
// but before adding values, make sure that those values are available
// in your original DicomFile to avoid NullReferenceExceptions.
if (dicomFile.Dataset.Contains(DicomTag.NumberOfFrames))
{
entries.InstanceRecord.AddOrUpdate(DicomTag.NumberOfFrames, dicomFile.Dataset.GetSingleValue<int>(DicomTag.NumberOfFrames));
}
}