X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=gdcmPython%2Fdemo%2FPrintDicomDir.py.in;h=341df43d0cfe802c12136b3ef423d52dabd9d16f;hb=f6746d3627f7272556973738450a89b3f92f2e9a;hp=4b016d43037842c6537d315290154d69e22bfd7d;hpb=f51f3cf0f4013935c1d93a828779e5ca285a31fc;p=gdcm.git diff --git a/gdcmPython/demo/PrintDicomDir.py.in b/gdcmPython/demo/PrintDicomDir.py.in index 4b016d43..341df43d 100644 --- a/gdcmPython/demo/PrintDicomDir.py.in +++ b/gdcmPython/demo/PrintDicomDir.py.in @@ -1,3 +1,5 @@ +import sys +import os.path from gdcmConfigDemo import * from gdcmPython.core import * @@ -10,11 +12,21 @@ def PrintUse(): print "" print "" +### Progress methods +def startMethod(): + print "Start" +def progressMethod(): + print "Progress",dicomdir.GetProgress() +def endMethod(): + print "End" + ### Get filename from command line or default it 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 +34,47 @@ except IndexError: printLevel = 1 ### Build the DicomDir element list -dicomdir = gdcm.DicomDir(fileName) +dicomdir = gdcm.DicomDir() + +dicomdir.SetStartMethod(startMethod) +dicomdir.SetProgressMethod(progressMethod) +dicomdir.SetEndMethod(endMethod) + +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.GetValEntry(0x0004,0x1500).GetValue() + 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