import unittest
import os
from gdcmPython import *
+if os.name == 'posix':
+ from libvtkgdcmPython import *
+else:
+ from vtkgdcmPython import *
class gdcmTestCase(unittest.TestCase):
# The files whose name starts with a modality (e.g. CR-MONO1-10-chest.dcm)
# http://www.barre.nom.fr/medical/samples/index.html
BarreFiles = [
####################################
- # CR modality examples:
- ####################################
- ["CR-MONO1-10-chest.dcm",
- [ ["Modality", "CR"],
- #"Transfer Syntax UID" is absent.
- ["Rows", "440"],
- ["Columns", "440"],
- ["Bits Stored", "10"],
- ["Bits Allocated", "16"],
- ["High Bit", "9"],
- ["Pixel Representation", "0"],
- ["Manufacturer", "FUJI PHOTO FILM CO. LTD."],
- ["Manufacturer Model Name", "9000"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:776 Length:387200"] ] ],
- ####################################
# CT modality examples:
####################################
- ["CT-MONO2-16-brain.dcm",
- [ ["Transfer Syntax UID", "1.2.840.10008.1.2.1"], # Explicit VR, LE
- ["Modality", "CT"],
- ["Rows", "512"],
- ["Columns", "512"],
- ["Bits Stored", "16"],
- ["Bits Allocated", "16"],
- ["High Bit", "15"],
- ["Pixel Representation", "1"],
- ["Manufacturer", "Picker International, Inc."],
- ["Manufacturer Model Name", "PQ5000"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:1680 Length:524288"] ] ],
["CT-MONO2-16-ort.dcm",
[ ["Transfer Syntax UID", "1.2.840.10008.1.2"], # Implicit VR, LE
["Modality", "CT"],
["High Bit", "15"],
["Pixel Representation", "1"],
["Manufacturer", "GE MEDICAL SYSTEMS"],
- ["Manufacturer Model Name", "HiSpeed CT/i"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:1674 Length:524288"] ] ],
+ ["Manufacturer's Model Name", "HiSpeed CT/i"],
+ ["Pixel Data", "gdcm::NotLoaded. Address:1674 Length:524288 x(80000)"]
+ ] ],
["CT-MONO2-16-ankle.dcm",
[ ["Transfer Syntax UID", "1.2.840.10008.1.2"], # Implicit, little
["Modality", "CT"],
["High Bit", "15"],
["Pixel Representation", "1"],
["Manufacturer", "GE MEDICAL SYSTEMS"],
- ["Manufacturer Model Name", "GENESIS_ZEUS"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:1148 Length:524288"] ] ],
+ ["Manufacturer's Model Name", "GENESIS_ZEUS"],
+ ["Pixel Data", "gdcm::NotLoaded. Address:1148 Length:524288 x(80000)"]
+ ] ],
["CT-MONO2-8-abdo.dcm",
[ ["Transfer Syntax UID", "1.2.840.10008.1.2"], # Implicit, little
["Modality", "CT"],
["High Bit", "7"],
["Pixel Representation", "0"],
["Manufacturer", "FUJI"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:796 Length:262144"] ] ],
- ["CT-MONO2-12-lomb-an2.acr2",
+ ["Pixel Data", "gdcm::NotLoaded. Address:796 Length:262144 x(40000)"]
+ ] ],
+ ["CT-MONO2-12-lomb-an2.acr",
[ ["Modality", "CT"],
#"Transfer Syntax UID" and "Photometric Interpretation" are absent.
["Rows", "512"],
["High Bit", "11"],
["Pixel Representation", "0"],
["Manufacturer", "SIEMENS"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:1230 Length:524288"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:1230 Length:524288 x(80000)"]
+ ] ],
["CT-MONO2-16-chest.dcm",
[ ["Transfer Syntax UID", "1.2.840.10008.1.2.4.70"], # jpeg...
["Modality", "CT"],
["High Bit", "15"],
["Pixel Representation", "1"],
["Manufacturer", "GE MEDICAL SYSTEMS"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:1638 Length:143498"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:1638 Length:143498 x(2308a)"]
+ ] ],
####################################
### MR modality examples:
####################################
- ["MR-MONO2-12-angio-an1.acr1",
- [ ["Recognition Code", "ACR-NEMA 1.0"],
+ ["MR-MONO2-12-angio-an1.acr",
+ [ ["Recognition Code (RET)", "ACR-NEMA 1.0"],
["Modality", "MR"],
#"Transfer Syntax UID" and "Photometric Interpretation" are absent.
["Rows", "256"],
["Pixel Representation", "0"],
["Manufacturer", "Philips"],
# Note: 256*256*12/8 = 98304
- ["7fe0|0010", "gdcm::NotLoaded. Address:650 Length:98304"] ] ],
- ["MR-MONO2-12-an2.acr2",
+ ["Pixel Data", "gdcm::NotLoaded. Address:650 Length:98304 x(18000)"]
+ ] ],
+ ["MR-MONO2-12-an2.acr",
[ ["Modality", "MR"],
["Photometric Interpretation", "MONOCHROME2"],
["Rows", "256"],
["High Bit", "11"],
["Pixel Representation", "0"],
["Manufacturer", "SIEMENS"],
- ["Manufacturer Model Name", "MAGNETOM VISION"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:1866 Length:131072"] ] ],
+ ["Manufacturer's Model Name", "MAGNETOM VISION"],
+ ["Pixel Data", "gdcm::NotLoaded. Address:1866 Length:131072 x(20000)"]
+ ] ],
["MR-MONO2-16-head.dcm",
[ ["Transfer Syntax UID", "1.2.840.10008.1.2"], # Imp VR, LE
["Modality", "MR"],
["High Bit", "15"],
["Pixel Representation", "1"],
["Manufacturer", "GE MEDICAL SYSTEMS"],
- ["Manufacturer Model Name", "GENESIS_SIGNA"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:1804 Length:131072"] ] ],
+ ["Manufacturer's Model Name", "GENESIS_SIGNA"],
+ ["Pixel Data", "gdcm::NotLoaded. Address:1804 Length:131072 x(20000)"]
+ ] ],
# MR-MONO2-12-shoulder example is present in the Jpeg section.
# MR-MONO2-16-knee is not present in the test suite since it is too
# closely related to MR-MONO2-16-head.dcm to be of interest.
["Bits Allocated", "8"],
["High Bit", "7"],
["Pixel Representation", "0"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:1654 Length:307200"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:1654 Length:307200 x(4b000)"]
+ ] ],
# OT-MONO2-8-colon is not present in the test suite since it is too
# closely related to OT-MONO2-8-a7 to be of interest.
["OT-MONO2-8-a7.dcm",
["High Bit", "7"],
["Pixel Representation", "0"],
["Manufacturer", "Philips Medical Systems"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:438 Length:262144"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:438 Length:262144 x(40000)"]
+ ] ],
####################################
# US (Ultra Sound) modality examples:
####################################
["Manufacturer", "Acme Products"],
# FIXME: 92160 / (120*256) = 3 bytes per pixel NOT 1. Maybe
# it has something to do with [Samples Per Pixel] = [3] ???
- ["7fe0|0010", "gdcm::NotLoaded. Address:904 Length:92160"] ] ],
+ # You said it, puffy (tu l'as dit, bouffi, in french language)
+ # RGB is 3 bytes per pixel
+ # + Planar configuration (0028,0006) = 0 --> Pixels RGB
+ ["Pixel Data", "gdcm::NotLoaded. Address:904 Length:92160 x(16800)"]
+ ] ],
["US-RGB-8-epicard.dcm",
# Interest: Big endian transfert syntax
[ ["Transfer Syntax UID", "1.2.840.10008.1.2.2"], # Big endian
+ # But ... group 0000 is LE .
["Modality", "US"],
["Photometric Interpretation", "RGB"],
["Rows", "480"],
["High Bit", "7"],
["Pixel Representation", "0"],
["Manufacturer", "G.E. Medical Systems"],
- ["Manufacturer Model Name", "LOGIQ 700"],
- # FIXME: 921600/(480*640) = 3 bytes per pixel NOT 1. Maybe
- # it has something to do with [Samples Per Pixel] = [3] ???
+ ["Manufacturer's Model Name", "LOGIQ 700"],
+ # + Planar configuration (0028,0006) = 1 --> Plane R, Plane G, Plane B
["Implementation Version Name", "OFFIS-DCMTK-311"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:1012 Length:921600"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:1012 Length:921600 x(e1000)"]
+ ] ],
]
MultiFrameFiles = [
["Pixel Representation", "0"],
["Manufacturer", "Philips"],
# Note: 256*256*16=1048576 (16 is the number of Frames)
- ["7fe0|0010", "gdcm::NotLoaded. Address:920 Length:1048576"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:920 Length:1048576 x(100000)"]
+ ] ],
["NM-MONO2-16-13x-heart.dcm",
# Interest: NM modality, multi-frame
[ ["Transfer Syntax UID", "1.2.840.10008.1.2.1"], # ExpVR, LE
["Pixel Representation", "0"],
["Manufacturer", "ACME Products"],
# Note: 64*64*13*2=106496
- ["7fe0|0010", "gdcm::NotLoaded. Address:1234 Length:106496"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:1234 Length:106496 x(1a000)"]
+ ] ],
["US-MONO2-8-8x-execho.dcm",
# Interest: multi-frame
[ ["Transfer Syntax UID", "1.2.840.10008.1.2.1"], # ExpVR, LE
["High Bit", "7"],
["Pixel Representation", "0"],
["Manufacturer", "Acme Products"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:976 Length:122880"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:976 Length:122880 x(1e000)"]
+ ] ],
["US-PAL-8-10x-echo.dcm",
# Interest: RLE (Run Length Encoded) compression, multiframe
[ ["Transfer Syntax UID", "1.2.840.10008.1.2.5"], # RLE
["High Bit", "7"],
["Pixel Representation", "0"],
["Manufacturer", "ACME Products"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:2428 Length:481182"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:2428 Length:481182 x(7579e)"]
+ ] ],
["XA-MONO2-8-12x-catheter.dcm",
# Interest: XA modality, multi-frame
- [ ["Transfer Syntax UID", "1.2.840.10008.1.2.4.70"], # jpeg
+ [ #["Transfer Syntax UID", "1.2.840.10008.1.2.4.70"], # jpeg
["Number of Frames", "12"], # 12 images
["Modality", "XA"],
["Photometric Interpretation", "MONOCHROME2"],
["High Bit", "7"],
["Pixel Representation", "0"],
["Manufacturer", "Acme Products"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:1006 Length:920072"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:1006 Length:920072 x(e0a08)"]
+ ] ],
]
GdcmFiles = [
- ["gdcm-MR-SIEMENS-16.acr1",
+ ["gdcm-MR-SIEMENS-16-1.acr",
# Interest: good old Acr-Nema Version 1, see also Oddities below
- [ ["Recognition Code", "ACR-NEMA 1.0"],
+ [ ["Recognition Code (RET)", "ACR-NEMA 1.0"],
["Modality", "MR"],
["Rows", "256"],
["Columns", "256"],
["High Bit", "11"],
["Pixel Representation", "0"],
["Manufacturer", "SIEMENS"],
- ["Manufacturer Model Name", "GBS III"],
+ ["Manufacturer's Model Name", "GBS III"],
# FIXME: this image looks padded at the end. The length of the file
# is 140288. Notice that, 256*256*2 + 1024 = 131072 + 1024 = 132096
- ["7fe0|0010", "gdcm::NotLoaded. Address:8192 Length:132096"],
+ ["Pixel Data", "gdcm::NotLoaded. Address:8192 Length:132096 x(20400)"],
# Oddities: "Study ID" and "Series Number" are empty
["Study ID", ""],
["Series Number", ""] ] ],
# Oddities: "Study" and "Serie Instance UID" are not present
- ["gdcm-MR-SIEMENS-16.acr2",
+ ["gdcm-MR-SIEMENS-16-2.acr",
# Interest: Acr-Nema Version 2
- [ ["Recognition Code", "ACR-NEMA 2.0"],
+ [ ["Recognition Code (RET)", "ACR-NEMA 2.0"],
["Modality", "MR"],
["Rows", "512"],
["Columns", "512"],
["High Bit", "11"],
["Pixel Representation", "0"],
["Manufacturer", "SIEMENS"],
- ["Manufacturer Model Name", "MAGNETOM VISION"],
+ ["Manufacturer's Model Name", "MAGNETOM VISION"],
["Study Instance UID",
"1.3.12.2.1107.5.2.4.7630.20000918174641000"],
["Study ID", "1"],
["Series Instance UID",
"1.3.12.2.1107.5.2.4.7630.20000918175714000007"],
["Series Number", "7"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:6052 Length:524288"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:6052 Length:524288 x(80000)"]
+ ] ],
["gdcm-US-ALOKA-16.dcm",
# Interest: - possesses 3 LUTS: a Green (checked), a Red and BLue.
# - announced as implicit VR, but really explicit VR.
[ ["Transfer Syntax UID", "1.2.840.10008.1.2"], # Implicit VR, LE
["Modality", "US"],
["Photometric Interpretation", "PALETTE COLOR"],
- ["Segmented Green Palette Color LUT Data",
- "gdcm::NotLoaded. Address:89576 Length:113784"],
+ ["Segmented Green Palette Color Lookup Table Data",
+ "gdcm::NotLoaded. Address:89576 Length:113784 x(1bc78)"],
["Rows", "480"],
["Columns", "640"],
["Bits Stored", "16"],
["High Bit", "15"],
["Pixel Representation", "0"],
["Manufacturer", "ALOKA CO., LTD."],
- ["Manufacturer Model Name", "SSD-4000"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:258740 Length:614400"] ] ],
+ ["Manufacturer's Model Name", "SSD-4000"],
+ ["Pixel Data", "gdcm::NotLoaded. Address:258740 Length:614400 x(96000)"]
+ ] ],
["gdcm-MR-PHILIPS-16.dcm",
# Interest: - possesses a sequence
# - dicom file, with a recognition code of ACR-NEMA1
[ ["Transfer Syntax UID", "1.2.840.10008.1.2"], # Implicit VR, LE
- ["Recognition Code", "ACR-NEMA 1.0"],
+ ["Recognition Code (RET)", "ACR-NEMA 1.0"],
["Modality", "MR"],
["Photometric Interpretation", "MONOCHROME2"],
["Rows", "256"],
["High Bit", "7"],
["Pixel Representation", "0"],
["Manufacturer", "Philips Medical Systems"],
- ["Manufacturer Model Name", "Gyroscan Intera"],
+ ["Manufacturer's Model Name", "Gyroscan Intera"],
["Sequence Variant", "OTHER"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:6584 Length:131072"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:6584 Length:131072 x(20000)"]
+ ] ],
["gdcm-MR-PHILIPS-16-Multi-Seq.dcm",
# Interest: - possesses many sequences in group 0x0029
# - Big sequence 28808 bytes at (0x0029, 0x263d)
# - dicom file, with a recognition code of ACR-NEMA1
[ ["Transfer Syntax UID", "1.2.840.10008.1.2.1"],
- ["Recognition Code", "ACR-NEMA 1.0"],
+ ["Recognition Code (RET)", "ACR-NEMA 1.0"],
["Modality", "MR"],
["Photometric Interpretation", "MONOCHROME2"],
["Rows", "128"],
["High Bit", "11"],
["Pixel Representation", "0"],
["Manufacturer", "Philips Medical Systems"],
- ["Manufacturer Model Name", "Gyroscan Intera"],
+ ["Manufacturer's Model Name", "Gyroscan Intera"],
["Sequence Variant", "OTHER"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:35846 Length:32768"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:35846 Length:32768 x(8000)"]
+ ] ],
["gdcm-MR-PHILIPS-16-NonRectPix.dcm",
# Interest: - pixels are non rectangular
# - private elements are in explicit VR (which is normal)
["High Bit", "11"],
["Pixel Representation", "0"],
["Manufacturer", "Philips Medical Systems"],
- ["Manufacturer Model Name", "Gyroscan Intera"],
+ ["Manufacturer's Model Name", "Gyroscan Intera"],
["Pixel Spacing", "0.487416\\0.194966"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:5010 Length:20480"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:5010 Length:20480 x(5000)"]
+ ] ],
["gdcm-CR-DCMTK-16-NonSamplePerPix.dcm",
# Interest: - Misses the "Samples Per Pixel" element which prevents
# e-film from reading it.
["High Bit", "7"],
["Pixel Representation", "0"],
["Implementation Version Name", "OFFIS_DCMTK_341"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:740 Length:562500"] ] ],
+ ["Pixel Data", "gdcm::NotLoaded. Address:740 Length:562500 x(89544)"]
+ ] ],
]
GdcmJpegFiles = [
["High Bit", "11"],
["Pixel Representation", "0"],
["Manufacturer", "SIEMENS"],
- ["Manufacturer Model Name", "Volume Zoom"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:2946 Length:192218"] ] ],
+ ["Manufacturer's Model Name", "Volume Zoom"],
+ ["Pixel Data", "gdcm::NotLoaded. Address:2946 Length:192218 x(2eeda)"]
+ ] ],
["MR-MONO2-12-shoulder.dcm",
# Interest: Jpeg compression [Lossless, non-hierar. (14)]
[ ["Transfer Syntax UID", "1.2.840.10008.1.2.4.57"],
["High Bit", "11"],
["Pixel Representation", "0"],
["Manufacturer", "Philips Medical Systems"],
- ["Manufacturer Model Name", "Gyroscan NT"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:1580 Length:718948"] ] ],
+ ["Manufacturer's Model Name", "Gyroscan NT"],
+ ["Pixel Data", "gdcm::NotLoaded. Address:1580 Length:718948 x(af864)"]
+ ] ],
["gdcm-JPEG-LossLess3a.dcm",
# Interest: - Jpeg compression [Lossless, hierar., first-order
# pred. 14, Select. Val. 1]
["High Bit", "11"],
["Pixel Representation", "0"],
["Manufacturer", "SIEMENS"],
- ["Manufacturer Model Name", "Volume Zoom"] ] ],
+ ["Manufacturer's Model Name", "Volume Zoom"] ] ],
# FIXME: the pixel data looks like corrupted. As stated by "od -A d -c"
# 0002528 à 177 020 \0 O B \0 \0 ÿ ÿ ÿ ÿ þ ÿ \0 à
# 0002544 \0 \0 \0 \0 þ ÿ \0 à 202 ? 003 \0 ÿ Ø ÿ Ã
# 0215424 ¶ 016 P Ñ 002 016
# and (\f °, ¶ 016) is NOT an OB item TAG which is required to be
# present (at least there should be a sequence delimiter), refer to
- # PS 3.5-2001 page 50.
- ["gdcm-JPEG-LossLess3b.dcm",
+ # PS 3.5-2001 page 50.
+ #
+ # That's right :
+ # at 9ec : ItemTag : fffe,e000
+ # at 9f0 : Basic Offset Table Item Lentgh (??) 0 x(00000000)
+ # at 9f4 : ItemTag : fffe,e000
+ # at 9f8 : fragment length 212866 x(00033f82)
+ # at 3497e : ItemTag b00c,0eb6 (should be fffe,e000 or fffe,e0dd):
+
+ ["gdcm-JPEG-LossLessThoravision.dcm",
# Interest: - Jpeg compression [Lossless, hierar., first-order
# pred. 14, Select. Val. 1]
# - encoding is sligthly different from LossLess3a.dcm ???
["High Bit", "14"],
["Pixel Representation", "0"],
["Manufacturer", "Philips Medical Systems"],
- ["Manufacturer Model Name", "Cassette Holder Type 9840 500 35201"],
- ["7fe0|0010", "gdcm::NotLoaded. Address:3144 Length:4795668"] ] ],
+ ["Manufacturer's Model Name", "Cassette Holder Type 9840 500 35201"],
+ ["Pixel Data", "gdcm::NotLoaded. Address:3144 Length:4795668 x(492d14)"]
+ ] ],
]
def _BaseTest(self, FileSet):
for entry in FileSet:
- fileName = os.path.join(GDCM_DATA_PATH, entry[0])
- toRead = gdcmHeader(fileName)
- valDict = toRead.GetPubElVal()
+ fileName = os.path.join(GDCM_TEST_DATA_PATH, entry[0])
+ reader = gdcmHeader(fileName)
+ assert reader.IsReadable(),\
+ "File '%s' is not readable by gdcmHeader" % fileName
+
+ valDict = reader.GetEntry()
for subEntry in entry[1]:
element = subEntry[0]
value = subEntry[1]
- self.assertEqual(valDict[element], value,
+ self.assertEqual(valDict[element], value,
("Wrong %s for file %s (got %s, shoud be %s)"
- % (element,fileName, valDict[element], value)) )
+ % (element,fileName, valDict[element], value)) )
def testBarre(self):
gdcmTestCase._BaseTest(self, gdcmTestCase.BarreFiles)
def testJpeg(self):
gdcmTestCase._BaseTest(self, gdcmTestCase.GdcmJpegFiles)
- def testWrite(self):
+ def ZOBtestWrite(self):
import md5
- SourceFileName = os.path.join(GDCM_DATA_PATH,
+ SourceFileName = os.path.join(GDCM_TEST_DATA_PATH,
'gdcm-MR-PHILIPS-16-Multi-Seq.dcm')
Source = gdcmFile(SourceFileName);
Source.GetImageData()
TargetFileName = "junk"
Target = Source.WriteDcmImplVR(TargetFileName)
- Sign = 'c7d6bedae1bef3851f35b29952fbbd4b'
+# Sign = 'a1e2abdc2f6abedd86b93c8b88db5203' # new signature (found on Win)
+ Sign = '849e722e004d3bb37b87ab6006509b8f' # new signature without field strip
ComputeSign = md5.new(open(TargetFileName).read()).hexdigest()
- #print ComputeSign
self.assertEqual(ComputeSign, Sign,
("Wrong signature for file %s (got %s, shoud be %s)"
% (SourceFileName, ComputeSign, Sign)) )
-
+ os.unlink(TargetFileName)
+
if __name__ == '__main__':
- unittest.main()
+ if not GDCM_TEST_DATA_PATH:
+ print "GDCM_TEST_DATA_PATH (internal variable) is not setup properly."
+ print " This test suite requires that some Dicom reference files be "
+ print " installed."
+ print " For further details on installation of gdcmData, please"
+ print " refer to the developper's section of page "
+ print " http://www.creatis.insa-lyon.fr/Public/Gdcm"
+ print ""
+ print "gdcmData directory (used in the test suite) must be placed in"
+ print "the gdcm directory. The gdcm tree must be :"
+ print " gdcm"
+ print " |____Dicts"
+ print " |____Doc"
+ print " |____gdcmData (not in gdcm by default)"
+ print " |____gdcmPython"
+ print " |____Test"
+ else:
+ unittest.main()