import gdcm
import os,sys
def TestModifyFields(filename):
outfilename = filename + ".rewrite"
r = gdcm.Reader()
r.SetFileName( filename )
success = r.Read()
ds = r.GetFile().GetDataSet()
removetag = gdcm.Tag(0x0043,0x106f)
if ds.FindDataElement( removetag ):
ds.Remove( removetag )
replacetag = gdcm.Tag(0x0010,0x0010)
if ds.FindDataElement( replacetag ):
de = ds.GetDataElement( replacetag )
patname = b"This^is^an^example"
de.SetByteStringValue( patname )
pir = gdcm.DataElement( gdcm.Tag(0x0012,0x0062) )
pir.SetVR( gdcm.VR( gdcm.VR.CS ) ) yes = b"YES"
pir.SetByteStringValue( yes )
ds.Insert( pir )
deidmethod = gdcm.Tag(0x0012,0x0063)
dicomdicts = gdcm.GlobalInstance.GetDicts()
dictel = dicomdicts.GetDictEntry( deidmethod )
deid = gdcm.DataElement( deidmethod )
deid.SetVR( dictel.GetVR() )
methodstr = b"Well known Company"
deid.SetByteStringValue( methodstr )
ds.Insert( deid )
return success
if __name__ == "__main__":
success = 0
try:
filename = os.sys.argv[1]
success += TestModifyFields( filename )
except:
t = gdcm.Testing()
nfiles = t.GetNumberOfFileNames()
for i in range(0,nfiles):
filename = t.GetFileName(i)
success += TestModifyFields( filename )
sys.exit(success == 0)