using Kitware.VTK;
using vtkgdcm;
using gdcm;
public class MetaImageMD5Activiz
{
public static int ProcessOneMHDMD5(string filename)
{
reader.FileLowerLeftOn();
reader.DebugOff();
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;
}
return 0;
}
reader.SetFileName( filename );
reader.Update();
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 );
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 );
}
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;
}
}