]> Creatis software - gdcm.git/blobdiff - gdcmPython/demo/PrintDicomDir.py.in
* gdcmPython/ : amelioration to load Version with the library
[gdcm.git] / gdcmPython / demo / PrintDicomDir.py.in
index 1f74e5435d6b2172c3b7aabab6b17ac82e9dfe70..a6aa6d74d096447fb1715702186dbd29afbebdfe 100644 (file)
@@ -1,33 +1,37 @@
 import sys
-import os
-
-sys.path.append('${GDCM_BINARY_DIR}')
-if os.name == 'posix':
-   sys.path.append('${GDCM_BINARY_DIR}/bin')
-else:
-   sys.path.append('${GDCM_BINARY_DIR}/bin/Release')
-   sys.path.append('${GDCM_BINARY_DIR}/bin/Debug')
-
+import os.path
+from gdcmConfigDemo import *
 from gdcmPython.core import *
 
+def PrintUse():
+   print ""
+   print "Use :"
+   print "-----"
+   print "%s <dicomDir>" % sys.argv[0]
+   print "   dicomDir : path to the DICOMDIR to parse"
+   print ""
+   print ""
+
 ### Get filename from command line or default it
 try:
    fileName = sys.argv[1]
 except IndexError:
-   fileName = os.path.join(GDCM_DATA_PATH, "DICOMDIR")
+   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])
 except IndexError:
    printLevel = 1
 
-### Build the header element list
+### Build the DicomDir element list
 dicomdir = gdcm.DicomDir(fileName)
 if not dicomdir.IsReadable():
-   print
+   PrintUse()
    raise RuntimeError,"The '%s' DicomDir is not readable with gdcm." % fileName
-   #sys.exit()
 
+print "DICOMDIR -->",fileName
 print "##############################################################"
 print "## Display all the elements and their respective values"
 print "## found in the ", fileName, " file."
@@ -35,3 +39,22 @@ 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.GetValEntry(0x0004,0x1500).GetValue()
+            image=serie.GetNextImage()
+         serie=study.GetNextSerie()
+      study=patient.GetNextStudy()
+   patient=dicomdir.GetNextPatient()
+