GDCM: NewSequence.py

GDCM 3.2.11

NewSequence.py
"""
Usage:
python NewSequence.py input.dcm output.dcm
Thanks to Robert Irie for code
"""
import sys
import gdcm
if __name__ == "__main__":
file1 = sys.argv[1]
file2 = sys.argv[2]
r = gdcm.Reader()
r.SetFileName( file1 )
if not r.Read():
sys.exit(1)
f = r.GetFile()
ds = f.GetDataSet()
#tsis = gdcm.Tag(0x0008,0x2112) # SourceImageSequence
# Create a dataelement
de = gdcm.DataElement(gdcm.Tag(0x0010, 0x2180))
de.SetByteStringValue("Occupation")
de.SetVR(gdcm.VR(gdcm.VR.SH))
# Create an item
it=gdcm.Item()
it.SetVLToUndefined() # Needed to not popup error message
#it.InsertDataElement(de)
nds=it.GetNestedDataSet()
nds.Insert(de)
# Create a Sequence
sq=gdcm.SequenceOfItems().New()
sq.SetLengthToUndefined()
sq.AddItem(it)
# Insert sequence into data set
des=gdcm.DataElement(gdcm.Tag(0x0400,0x0550))
des.SetVR(gdcm.VR(gdcm.VR.SQ))
des.SetValue(sq.__ref__())
des.SetVLToUndefined()
ds.Insert(des)
w = gdcm.Writer()
w.SetFile( f )
w.SetFileName( file2 )
if not w.Write():
sys.exit(1)
gdcm::DataElement
Class to represent a Data Element either Implicit or Explicit.
Definition gdcmDataElement.h:59
gdcm::Item
Class to represent an Item.
Definition gdcmItem.h:46
gdcm::Reader
Reader ala DOM (Document Object Model).
Definition gdcmReader.h:54
gdcm::SequenceOfItems
Class to represent a Sequence Of Items.
Definition gdcmSequenceOfItems.h:40
gdcm::Tag
Class to represent a DICOM Data Element (Attribute) Tag (Group, Element).
Definition gdcmTag.h:39
gdcm::VR
VR class.
Definition gdcmVR.h:55
gdcm::Writer
Writer ala DOM (Document Object Model).
Definition gdcmWriter.h:49