]> Creatis software - gdcm.git/blob - gdcmPython/demo/PrintDicomDir.py.in
Fix VR processing, to be CP-288 conform.
[gdcm.git] / gdcmPython / demo / PrintDicomDir.py.in
1 import sys
2 import os.path
3 from gdcmConfigDemo import *
4 from gdcmPython.core import *
5
6 def PrintUse():
7    print ""
8    print "Use :"
9    print "-----"
10    print "%s <dicomDir>" % sys.argv[0]
11    print "   dicomDir : path to the DICOMDIR to parse"
12    print ""
13    print ""
14
15 ### Get filename from command line or default it
16 try:
17    fileName = sys.argv[1]
18 except IndexError:
19    fileName = os.path.join(GDCM_DATA_ROOT, "DICOMDIR")
20    if( not os.path.isfile(fileName) ):
21       fileName=os.path.join(os.path.split(sys.argv[0])[0],"DICOMDIR")
22
23 try:
24    printLevel = int(sys.argv[2])
25 except IndexError:
26    printLevel = 1
27
28 ### Build the DicomDir element list
29 dicomdir = gdcm.DicomDir(fileName)
30 if not dicomdir.IsReadable():
31    PrintUse()
32    raise RuntimeError,"The '%s' DicomDir is not readable with gdcm." % fileName
33
34 print "DICOMDIR -->",fileName
35 print "##############################################################"
36 print "## Display all the elements and their respective values"
37 print "## found in the ", fileName, " file."
38 print "##############################################################"
39 dicomdir.SetPrintLevel(-1)
40 dicomdir.Print()
41
42 print ""
43 patient=dicomdir.GetFirstPatient()
44 while(patient):
45    print "Patient"
46    study=patient.GetFirstStudy()
47    while(study):
48       print "   Study"
49       serie=study.GetFirstSerie()
50       while(serie):
51          print "      Serie"
52          image=serie.GetFirstImage()
53          while(image):
54             print "         Image"
55             print "         ---",image.GetValEntry(0x0004,0x1500).GetValue()
56             image=serie.GetNextImage()
57          serie=study.GetNextSerie()
58       study=patient.GetNextStudy()
59    patient=dicomdir.GetNextPatient()
60