我正在使用GDCM库创建一个DICOMDIR文件。我实现了代码,如GDCM文档中所示:
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文件?
发布于 2015-01-08 09:50:14
根据文档,您是否确保:
警告:PS3.11-2008/ D.3.1 SOP类和传输语法复合映像和独立存储需要存储为显式VR小终端未压缩(1.2.840.10008.1.2.1)。当使用另一个传输语法找到DICOM文件时,生成器将简单地停止。输入文件应该是显式的VR小端点文件名应该是有效的VR::CS值(16字节,大写)
如果您打开详细的调试,您可以记录确切的错误消息,请参阅gdcm::跟踪的使用情况。
根据gdcm::Trace的文档,您需要注意以下几点:
警告:在编译时,所有字符串消息都会被删除,而CMAKE_BUILD_TYPE被设置为: Release,建议在应用程序原型化期间使用RelWithDebInfo和/或Debug进行编译。
您还可以使用gdcm::跟踪::SetStreamToFile将任何消息正确地重定向到文件(而不是默认的stdout )。
由于您使用了gdcm.Directory的递归选项,您还需要注意子目录名称是有效的(VR::CS,16字节,大写.)。
有关更多信息,请参见gdcmgendir手册页。
https://stackoverflow.com/questions/27821843
复制相似问题