]> Creatis software - gdcm.git/blobdiff - gdcmPython/demo/PrintDicomDir.py.in
First stage to rotate and flip upside down images
[gdcm.git] / gdcmPython / demo / PrintDicomDir.py.in
index 4b016d43037842c6537d315290154d69e22bfd7d..266adb19dfdbe1047734df02a01b6ebaccb42a01 100644 (file)
@@ -1,3 +1,5 @@
+import sys
+import os.path
 from gdcmConfigDemo import *
 from gdcmPython.core import *
 
@@ -15,6 +17,8 @@ try:
    fileName = sys.argv[1]
 except IndexError:
    fileName = os.path.join(GDCM_DATA_ROOT, "DICOMDIR")
+   if( not os.path.isfile(fileName) ):
+      fileName=os.path.join(os.path.split(sys.argv[0])[0],"DICOMDIR")
 
 try:
    printLevel = int(sys.argv[2])
@@ -22,7 +26,43 @@ except IndexError:
    printLevel = 1
 
 ### Build the DicomDir element list
-dicomdir = gdcm.DicomDir(fileName)
+dicomdir = gdcm.DicomDir.New()
+
+dicomdir.SetFileName(fileName)
+dicomdir.Load()
+if not dicomdir.IsReadable():
+   PrintUse()
+   raise RuntimeError,"The '%s' DicomDir is not readable with gdcm." % fileName
+
+print "DICOMDIR -->",fileName
+print "##############################################################"
+print "## Display all the elements and their respective values"
+print "## found in the ", fileName, " file."
+print "##############################################################"
+dicomdir.SetPrintLevel(-1)
+dicomdir.Print()
+
+print ""
+patient=dicomdir.GetFirstPatient()
+while(patient):
+   print "Patient"
+   study=patient.GetFirstStudy()
+   while(study):
+      print "   Study"
+      serie=study.GetFirstSerie()
+      while(serie):
+         print "      Serie"
+         image=serie.GetFirstImage()
+         while(image):
+            print "         Image"
+            print "         ---",image.GetDataEntry(0x0004,0x1500).GetString()
+            image=serie.GetNextImage()
+         serie=study.GetNextSerie()
+      study=patient.GetNextStudy()
+   patient=dicomdir.GetNextPatient()
+
+dicomdir.SetDirectoryName(os.path.dirname(fileName))
+dicomdir.Load()
 if not dicomdir.IsReadable():
    PrintUse()
    raise RuntimeError,"The '%s' DicomDir is not readable with gdcm." % fileName