import gdcm
import os,sys
def TestAnonymizer(filename, verbose = False):
r = gdcm.Reader()
r.SetFileName( filename )
success = r.Read()
if( not success ): return 1
ano = gdcm.Anonymizer()
ano.SetFile( r.GetFile() )
ano.Replace( gdcm.Tag(0x0010,0x0010), "Test^Anonymize" )
ano.Remove( gdcm.Tag(0x0008,0x2112) )
ano.Empty( gdcm.Tag(0x0008,0x0070) )
success = ano.RemovePrivateTags() if( not success ): return 1
if verbose:
print(ano.GetFile().GetDataSet())
subdir = "TestAnonymizerPython"
tmpdir = gdcm.Testing.GetTempDirectory( subdir )
if not gdcm.System.FileIsDirectory( tmpdir ):
gdcm.System.MakeDirectory( tmpdir )
outfilename = gdcm.Testing.GetTempFilename( filename, subdir )
w = gdcm.Writer()
w.SetFileName( outfilename )
w.SetFile( r.GetFile() )
w.SetCheckFileMetaInformation( False )
success = w.Write()
if( not success ): return 1
if verbose:
print("Success to write: %s"%outfilename)
return success
if __name__ == "__main__":
success = 0
try:
filename = os.sys.argv[1]
success += TestAnonymizer( filename, True )
except:
t = gdcm.Testing()
nfiles = t.GetNumberOfFileNames()
for i in range(0,nfiles):
filename = t.GetFileName(i)
success += TestAnonymizer( filename )
sys.exit(success == 0)