GDCM 2.2.1

- Main Page
- Related Pages
- Namespaces
- Classes
- Files
- Examples

MetaImageMD5Activiz.cs
/*=========================================================================
Program: GDCM (Grassroots DICOM). A DICOM library
Copyright (c) 2006-2011 Mathieu Malaterre
All rights reserved.
See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
using Kitware.VTK;
using Kitware.VTK.GDCM;
using gdcm;
/*
* $ export MONO_PATH=/usr/lib/cli/ActiViz.NET/:/usr/lib/cli/Kitware.mummy.Runtime-1.0
* $ mono ./bin/MetaImageMD5Activiz.exe gdcmData/012345.002.050.dcm
*/
public class MetaImageMD5Activiz
{
public static int ProcessOneMHDMD5(string filename)
{
vtkGDCMImageReader reader = vtkGDCMImageReader.New();
reader.FileLowerLeftOn();
reader.DebugOff();
int canread = reader.CanReadFile( filename );
if( canread == 0 )
{
string refms = gdcm.Testing.GetMediaStorageFromFile(filename);
if( gdcm.MediaStorage.IsImage( gdcm.MediaStorage.GetMSType(refms) ) )
{
System.Console.Write( "Problem with file: " + filename + "\n" );
return 1;
}
// not an image
return 0;
}
reader.SetFileName( filename );
reader.Update();
// System.Console.Write(reader.GetOutput());
vtkMetaImageWriter writer = vtkMetaImageWriter.New();
writer.SetCompression( false );
writer.SetInput( reader.GetOutput() );
string subdir = "MetaImageMD5Activiz";
string tmpdir = gdcm.Testing.GetTempDirectory( subdir );
if( !gdcm.PosixEmulation.FileIsDirectory( tmpdir ) )
{
gdcm.PosixEmulation.MakeDirectory( tmpdir );
}
string mhdfile = gdcm.Testing.GetTempFilename( filename, subdir );
string rawfile = mhdfile;
mhdfile += ".mhd";
rawfile += ".raw";
writer.SetFileName( mhdfile );
writer.Write();
string digestmhd = gdcm.Testing.ComputeFileMD5( mhdfile );
string digestraw = gdcm.Testing.ComputeFileMD5( rawfile );
string mhdref = vtkGDCMTesting.GetMHDMD5FromFile(filename);
string rawref = vtkGDCMTesting.GetRAWMD5FromFile(filename);
if( mhdref != digestmhd )
{
System.Console.Write( "Problem with mhd file: " + filename + "\n" );
System.Console.Write( digestmhd );
System.Console.Write( "\n" );
System.Console.Write( mhdref );
System.Console.Write( "\n" );
return 1;
}
if( rawref != digestraw )
{
System.Console.Write( "Problem with raw file: " + filename + "\n" );
System.Console.Write( digestraw );
System.Console.Write( "\n" );
System.Console.Write( rawref );
System.Console.Write( "\n" );
return 1;
}
return 0;
}
public static int Main(string[] args)
{
if ( args.Length == 1 )
{
string filename = args[0];
return ProcessOneMHDMD5( filename );
}
// Loop over all gdcmData
gdcm.Trace.DebugOff();
gdcm.Trace.WarningOff();
gdcm.Trace.ErrorOff();
uint n = gdcm.Testing.GetNumberOfFileNames();
int ret = 0;
for( uint i = 0; i < n; ++i )
{
string filename = gdcm.Testing.GetFileName( i );
ret += ProcessOneMHDMD5( filename );
}
return ret;
}
}