using System;
using gdcm;
public class MyWatcher : SimpleSubjectWatcher
{
public MyWatcher(Subject s):base(s,"Override String"){}
protected override void StartFilter() {
System.Console.WriteLine( "This is my start" );
}
protected override void EndFilter(){
System.Console.WriteLine( "This is my end" );
}
protected override void ShowProgress(Subject caller, Event evt){
ProgressEvent pe = ProgressEvent.Cast(evt);
System.Console.WriteLine( "This is my progress: " + pe.GetProgress() );
}
protected override void ShowIteration(){
System.Console.WriteLine( "This is my iteration" );
}
protected override void ShowAnonymization(Subject caller, Event evt){
AnonymizeEvent ae = AnonymizeEvent.Cast(evt);
if( ae != null )
{
Tag t = ae.GetTag();
System.Console.WriteLine( "This is my Anonymization. Processing Tag #" + t.toString() );
}
else
{
System.Console.WriteLine( "This is my Anonymization. Unhandled Event type: " + evt.GetEventName() );
}
}
protected override void ShowAbort(){
System.Console.WriteLine( "This is my abort" );
}
}
public class Cleaner
{
public static int Main(string[] args)
{
gdcm.Global global = gdcm.Global.GetInstance();
if( !global.LoadResourcesFiles() )
{
System.Console.WriteLine( "Could not LoadResourcesFiles" );
return 1;
}
string file1 = args[0];
string file2 = args[1];
Reader reader = new Reader();
reader.SetFileName( file1 );
bool ret = reader.Read();
if( !ret )
{
return 1;
}
SmartPtrCleaner scleaner = gdcm.Cleaner.New();
gdcm.Cleaner cleaner = scleaner.__ref__();
MyWatcher watcher = new MyWatcher(cleaner);
cleaner.SetFile( reader.GetFile() );
cleaner.Empty( new gdcm.VR(gdcm.VR.VRType.PN) );
gdcm.DPath dpath = new gdcm.DPath();
dpath.ConstructFromString( "/0010,0010" );
cleaner.Preserve( dpath );
gdcm.Tag t1 = new gdcm.Tag(0x10, 0x30);
cleaner.Empty( t1 );
gdcm.PrivateTag pt0 = new gdcm.PrivateTag( new gdcm.Tag(0x29,0x60), "SIEMENS MEDCOM HEADER2" );
cleaner.Remove( pt0 );
gdcm.PrivateTag pt1 = new gdcm.PrivateTag( new gdcm.Tag(0x29,0x10), "SIEMENS CSA HEADER" );
gdcm.PrivateTag pt2 = new gdcm.PrivateTag( new gdcm.Tag(0x29,0x20), "SIEMENS CSA HEADER" );
cleaner.Scrub( pt1 );
cleaner.Scrub( pt2 );
if( !cleaner.Clean() )
{
return 1;
}
Writer writer = new Writer();
writer.SetFileName( file2 );
writer.SetFile( cleaner.GetFile() );
ret = writer.Write();
if( !ret )
{
return 1;
}
return 0;
}
}