import sys
import gdcm
if __name__ == "__main__":
if (len(sys.argv) < 2):
print "No input filename found"
quit()
filename = sys.argv[1]
reader.SetFileName(filename)
if (not reader.Read()):
print "Unable to read %s" % (filename)
quit()
file = reader.GetFile()
fileMetaInformation = file.GetHeader()
print fileMetaInformation
dataSet = file.GetDataSet()
mediaStorage.SetFromFile(file)
print "This file is not a DICOMDIR (Media storage type: %s)" % (str(mediaStorage))
quit()
if (fileMetaInformation.FindDataElement(
gdcm.Tag(0x0002, 0x0002))):
sopClassUid = str(fileMetaInformation.GetDataElement(
gdcm.Tag(0x0002, 0x0002)).GetValue())
if (sopClassUid != "1.2.840.10008.1.3.10"):
print "This file is not a DICOMDIR"
else:
print "Media Storage SOP Class not present"
quit()
iterator = dataSet.GetDES().begin()
while (not iterator.equal(dataSet.GetDES().end())):
dataElement = iterator.next()
if (dataElement.GetTag() ==
gdcm.Tag(0x004, 0x1220)):
sequence = dataElement.GetValueAsSQ()
itemNr = 1
while (itemNr < sequence.GetNumberOfItems()):
item = sequence.GetItem(itemNr)
if (item.FindDataElement(
gdcm.Tag(0x0004, 0x1430))):
value = str(item.GetDataElement(
gdcm.Tag(0x0004, 0x1430)).GetValue())
while (value.strip() == "PATIENT"):
print value.strip()
if (item.FindDataElement(
gdcm.Tag(0x0010, 0x0010))):
value = str(item.GetDataElement(
gdcm.Tag(0x0010, 0x0010)).GetValue())
print value
if (item.FindDataElement(
gdcm.Tag(0x0010, 0x0020))):
value = str(item.GetDataElement(
gdcm.Tag(0x0010, 0x0020)).GetValue())
print value
itemNr = itemNr + 1
item = sequence.GetItem(itemNr)
if (item.FindDataElement(
gdcm.Tag(0x0004, 0x1430))):
value = str(item.GetDataElement(
gdcm.Tag(0x0004, 0x1430)).GetValue())
while (value.strip() == "STUDY"):
print value.strip()
if (item.FindDataElement(
gdcm.Tag(0x0020, 0x000d))):
value = str(item.GetDataElement(
gdcm.Tag(0x0020, 0x000d)).GetValue())
print value
if (item.FindDataElement(
gdcm.Tag(0x0008, 0x0020))):
value = str(item.GetDataElement(
gdcm.Tag(0x0008, 0x0020)).GetValue())
print value
if (item.FindDataElement(
gdcm.Tag(0x0008, 0x1030))):
value = str(item.GetDataElement(
gdcm.Tag(0x0008, 0x1030)).GetValue())
print value
itemNr = itemNr + 1
item = sequence.GetItem(itemNr)
if (item.FindDataElement(
gdcm.Tag(0x0004, 0x1430))):
value = str(item.GetDataElement(
gdcm.Tag(0x0004, 0x1430)).GetValue())
while (value.strip() == "SERIES"):
print value.strip()
if (item.FindDataElement(
gdcm.Tag(0x0020, 0x000e))):
value = str(item.GetDataElement(
gdcm.Tag(0x0020, 0x000e)).GetValue())
print value
if (item.FindDataElement(
gdcm.Tag(0x0008, 0x0060))):
value = str(item.GetDataElement(
gdcm.Tag(0x0008, 0x0060)).GetValue())
print "Modality"
print value
if (item.FindDataElement(
gdcm.Tag(0x0008, 0x103e))):
value = str(item.GetDataElement(
gdcm.Tag(0x0008, 0x103e)).GetValue())
print "Description"
print value
itemNr = itemNr + 1
item = sequence.GetItem(itemNr)
if (item.FindDataElement(
gdcm.Tag(0x0004, 0x1430))):
value = str(item.GetDataElement(
gdcm.Tag(0x0004, 0x1430)).GetValue())
while (value.strip() == "IMAGE"):
print value.strip()
if (item.FindDataElement(
gdcm.Tag(0x0004, 0x1511))):
value = str(item.GetDataElement(
gdcm.Tag(0x0004, 0x1511)).GetValue())
print value
if (itemNr < sequence.GetNumberOfItems()):
itemNr = itemNr + 1
else:
break
item = sequence.GetItem(itemNr)
if (item.FindDataElement(
gdcm.Tag(0x0004, 0x1430))):
value = str(item.GetDataElement(
gdcm.Tag(0x0004, 0x1430)).GetValue())
itemNr = itemNr + 1