import gdcm
import sys
filename = sys.argv[1]
outname = sys.argv[2]
r = gdcm.Reader()
r.SetFileName( filename )
if not r.Read():
print "not valid"
sys.exit(1)
file = r.GetFile()
dataset = file.GetDataSet()
ano = gdcm.Anonymizer()
ano.SetFile( file )
tags = [
gdcm.Tag(0x0018,0x1164),
gdcm.Tag(0x0018,0x0088),
gdcm.Tag(0x0018,0x0050),
gdcm.Tag(0x0028,0x0030),
]
for tag in tags:
print tag
if dataset.FindDataElement( tag ):
pixelspacing = dataset.GetDataElement( tag )
bv = pixelspacing.GetByteValue()
str = bv.GetBuffer()
new_str = str.replace(",",".")
ano.Replace( tag, new_str, bv.GetLength() )
w = gdcm.Writer()
w.SetFile( file )
w.SetFileName( outname )
if not w.Write():
print "Cannot write"
sys.exit(1)
image_reader = gdcm.ImageReader()
image_reader.SetFileName( outname )
if not image_reader.Read():
print "there is still a comma"
sys.exit(1)
print "Success!"
sys.exit(0)