"""
Usage:
python ManipulateSequence.py input.dcm output.dcm
This was tested using:
python ManipulateSequence.py gdcmData/D_CLUNIE_CT1_J2KI.dcm myoutput.dcm
This is a dummy example on how to modify a value set in a nested-nested dataset
WARNING:
Do not use as-is in production, this is just an example
This example works in an undefined length Item only (you need to explicitely recompute the length otherwise)
"""
import sys
import gdcm
if __name__ == "__main__":
file1 = sys.argv[1]
file2 = sys.argv[2]
r.SetFileName( file1 )
if not r.Read():
sys.exit(1)
f = r.GetFile()
ds = f.GetDataSet()
if ds.FindDataElement( tsis ):
sis = ds.GetDataElement( tsis )
sqsis = sis.GetValueAsSQ()
if sqsis.GetNumberOfItems():
item1 = sqsis.GetItem(1)
nestedds = item1.GetNestedDataSet()
if nestedds.FindDataElement( tprcs ):
prcs = nestedds.GetDataElement( tprcs )
sqprcs = prcs.GetSequenceOfItems()
if sqprcs.GetNumberOfItems():
item2 = sqprcs.GetItem(1)
nestedds2 = item2.GetNestedDataSet()
if nestedds2.FindDataElement( tcm ):
cm = nestedds2.GetDataElement( tcm )
mystr = "GDCM was here"
cm.SetByteValue( mystr,
gdcm.VL( len(mystr) ) )
w.SetFile( f )
w.SetFileName( file2 )
if not w.Write():
sys.exit(1)