我正在使用 GDCM 库来创建DICOMDIR文件。我实施了代码,如 GDCM docs:
所示http://gdcm.sourceforge.net/html/GenerateDICOMDIR_8cs-example.html
在代码中:
private int GenerateDicomDir(string directory, string outFileName)
{
gdcm.Directory d = new gdcm.Directory();
uint nfiles = d.Load(directory, true);
if (nfiles == 0) return 1;
string descriptor = "Descriptor";
FilenamesType filenames = d.GetFilenames();
gdcm.Trace.DebugOn();
gdcm.DICOMDIRGenerator gen = new DICOMDIRGenerator();
gen.SetFilenames(filenames);
gen.SetDescriptor(descriptor);
if (!gen.Generate())
{
return 1;
}
gdcm.FileMetaInformation.SetSourceApplicationEntityTitle("GenerateDICOMDIR");
gdcm.Writer writer = new Writer();
writer.SetFile(gen.GetFile());
writer.SetFileName(outFileName);
if (!writer.Write())
{
return 1;
}
return 0;
}
该函数返回并且不生成 DICOMDIR 文件。我已经添加了跟踪调试,但仍然无法调试或获取任何输出消息。
有没有办法为一堆DICOM文件生成DICOMDIR文件?
答案 0 :(得分:0)
根据documentation,您确定了:
警告:: PS 3.11 - 2008 / D.3.1 SOP类和传输语法 复合图像&独立存储需要存储为 显式VR Little Endian Uncompressed(1.2.840.10008.1.2.1)。当一个 使用生成器将使用的另一个传输语法找到DICOM文件 简单地停下来输入文件应为Explicit VR Little Endian 文件名应该是有效的VR :: CS值(16字节,大写......)
如果您打开详细调试,您可以记录确切的错误消息,请参阅gdcm::Trace了解使用情况。
根据gdcm :: Trace的文档,您需要注意以下事项:
警告:在编译期间删除所有字符串消息 编译时将CMAKE_BUILD_TYPE设置为:Release MinSizeRel 建议在使用RelWithDebInfo和/或Debug时进行编译 应用程序的原型设计。
您还可以使用gdcm::Trace::SetStreamToFile将任何邮件正确地重定向到文件(默认情况下不是stdout)。
由于你使用了gdcm.Directory的递归选项,你还需要注意子目录名是有效的(VR :: CS,16bytes,大写......)。
有关详细信息,另请参阅gdcmgendir man page。