X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=gdcmPython%2FtestSuite.py;h=c6fc0e1baaaf3b683f0c9a55f233dbe99b5579dc;hb=e076cec25dcf959255d710a5cffdbe96d2998a7d;hp=149345986ab1303e10e1c3a0398b4d162ed4b604;hpb=4a0c2407ec81e041c2e43781acec4c78c83fc487;p=gdcm.git diff --git a/gdcmPython/testSuite.py b/gdcmPython/testSuite.py index 14934598..c6fc0e1b 100644 --- a/gdcmPython/testSuite.py +++ b/gdcmPython/testSuite.py @@ -20,7 +20,7 @@ class gdcmTestCase(unittest.TestCase): ["High Bit", "9"], ["Pixel Representation", "0"], ["Manufacturer", "FUJI PHOTO FILM CO. LTD."], - ["Manufacturer Model Name", "9000"], + ["Manufacturer's Model Name", "9000"], ["Pixel Data", "gdcm::NotLoaded. Address:776 Length:387200"] ] ], #################################### # CT modality examples: @@ -35,7 +35,7 @@ class gdcmTestCase(unittest.TestCase): ["High Bit", "15"], ["Pixel Representation", "1"], ["Manufacturer", "Picker International, Inc."], - ["Manufacturer Model Name", "PQ5000"], + ["Manufacturer's Model Name", "PQ5000"], ["Pixel Data", "gdcm::NotLoaded. Address:1680 Length:524288"] ] ], ["CT-MONO2-16-ort.dcm", [ ["Transfer Syntax UID", "1.2.840.10008.1.2"], # Implicit VR, LE @@ -47,7 +47,7 @@ class gdcmTestCase(unittest.TestCase): ["High Bit", "15"], ["Pixel Representation", "1"], ["Manufacturer", "GE MEDICAL SYSTEMS"], - ["Manufacturer Model Name", "HiSpeed CT/i"], + ["Manufacturer's Model Name", "HiSpeed CT/i"], ["Pixel Data", "gdcm::NotLoaded. Address:1674 Length:524288"] ] ], ["CT-MONO2-16-ankle.dcm", [ ["Transfer Syntax UID", "1.2.840.10008.1.2"], # Implicit, little @@ -59,7 +59,7 @@ class gdcmTestCase(unittest.TestCase): ["High Bit", "15"], ["Pixel Representation", "1"], ["Manufacturer", "GE MEDICAL SYSTEMS"], - ["Manufacturer Model Name", "GENESIS_ZEUS"], + ["Manufacturer's Model Name", "GENESIS_ZEUS"], ["Pixel Data", "gdcm::NotLoaded. Address:1148 Length:524288"] ] ], ["CT-MONO2-8-abdo.dcm", [ ["Transfer Syntax UID", "1.2.840.10008.1.2"], # Implicit, little @@ -99,7 +99,7 @@ class gdcmTestCase(unittest.TestCase): ### MR modality examples: #################################### ["MR-MONO2-12-angio-an1.acr1", - [ ["Recognition Code", "ACR-NEMA 1.0"], + [ ["Recognition Code (RET)", "ACR-NEMA 1.0"], ["Modality", "MR"], #"Transfer Syntax UID" and "Photometric Interpretation" are absent. ["Rows", "256"], @@ -121,7 +121,7 @@ class gdcmTestCase(unittest.TestCase): ["High Bit", "11"], ["Pixel Representation", "0"], ["Manufacturer", "SIEMENS"], - ["Manufacturer Model Name", "MAGNETOM VISION"], + ["Manufacturer's Model Name", "MAGNETOM VISION"], ["Pixel Data", "gdcm::NotLoaded. Address:1866 Length:131072"] ] ], ["MR-MONO2-16-head.dcm", [ ["Transfer Syntax UID", "1.2.840.10008.1.2"], # Imp VR, LE @@ -134,7 +134,7 @@ class gdcmTestCase(unittest.TestCase): ["High Bit", "15"], ["Pixel Representation", "1"], ["Manufacturer", "GE MEDICAL SYSTEMS"], - ["Manufacturer Model Name", "GENESIS_SIGNA"], + ["Manufacturer's Model Name", "GENESIS_SIGNA"], ["Pixel Data", "gdcm::NotLoaded. Address:1804 Length:131072"] ] ], # 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 @@ -187,10 +187,14 @@ class gdcmTestCase(unittest.TestCase): ["Manufacturer", "Acme Products"], # FIXME: 92160 / (120*256) = 3 bytes per pixel NOT 1. Maybe # it has something to do with [Samples Per Pixel] = [3] ??? + # 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"] ] ], ["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"], @@ -200,9 +204,8 @@ class gdcmTestCase(unittest.TestCase): ["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"], ["Pixel Data", "gdcm::NotLoaded. Address:1012 Length:921600"] ] ], ] @@ -286,7 +289,7 @@ class gdcmTestCase(unittest.TestCase): GdcmFiles = [ ["gdcm-MR-SIEMENS-16.acr1", # 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"], @@ -295,7 +298,7 @@ class gdcmTestCase(unittest.TestCase): ["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 ["Pixel Data", "gdcm::NotLoaded. Address:8192 Length:132096"], @@ -305,7 +308,7 @@ class gdcmTestCase(unittest.TestCase): # Oddities: "Study" and "Serie Instance UID" are not present ["gdcm-MR-SIEMENS-16.acr2", # Interest: Acr-Nema Version 2 - [ ["Recognition Code", "ACR-NEMA 2.0"], + [ ["Recognition Code (RET)", "ACR-NEMA 2.0"], ["Modality", "MR"], ["Rows", "512"], ["Columns", "512"], @@ -314,7 +317,7 @@ class gdcmTestCase(unittest.TestCase): ["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"], @@ -328,7 +331,7 @@ class gdcmTestCase(unittest.TestCase): [ ["Transfer Syntax UID", "1.2.840.10008.1.2"], # Implicit VR, LE ["Modality", "US"], ["Photometric Interpretation", "PALETTE COLOR"], - ["Segmented Green Palette Color LUT Data", + ["Segmented Green Palette Color Lookup Table Data", "gdcm::NotLoaded. Address:89576 Length:113784"], ["Rows", "480"], ["Columns", "640"], @@ -337,13 +340,13 @@ class gdcmTestCase(unittest.TestCase): ["High Bit", "15"], ["Pixel Representation", "0"], ["Manufacturer", "ALOKA CO., LTD."], - ["Manufacturer Model Name", "SSD-4000"], + ["Manufacturer's Model Name", "SSD-4000"], ["Pixel Data", "gdcm::NotLoaded. Address:258740 Length:614400"] ] ], ["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"], @@ -353,7 +356,7 @@ class gdcmTestCase(unittest.TestCase): ["High Bit", "7"], ["Pixel Representation", "0"], ["Manufacturer", "Philips Medical Systems"], - ["Manufacturer Model Name", "Gyroscan Intera"], + ["Manufacturer's Model Name", "Gyroscan Intera"], ["Sequence Variant", "OTHER"], ["Pixel Data", "gdcm::NotLoaded. Address:6584 Length:131072"] ] ], ["gdcm-MR-PHILIPS-16-Multi-Seq.dcm", @@ -361,7 +364,7 @@ class gdcmTestCase(unittest.TestCase): # - 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"], @@ -371,7 +374,7 @@ class gdcmTestCase(unittest.TestCase): ["High Bit", "11"], ["Pixel Representation", "0"], ["Manufacturer", "Philips Medical Systems"], - ["Manufacturer Model Name", "Gyroscan Intera"], + ["Manufacturer's Model Name", "Gyroscan Intera"], ["Sequence Variant", "OTHER"], ["Pixel Data", "gdcm::NotLoaded. Address:35846 Length:32768"] ] ], ["gdcm-MR-PHILIPS-16-NonRectPix.dcm", @@ -387,7 +390,7 @@ class gdcmTestCase(unittest.TestCase): ["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"], ["Pixel Data", "gdcm::NotLoaded. Address:5010 Length:20480"] ] ], ["gdcm-CR-DCMTK-16-NonSamplePerPix.dcm", @@ -420,7 +423,7 @@ class gdcmTestCase(unittest.TestCase): ["High Bit", "11"], ["Pixel Representation", "0"], ["Manufacturer", "SIEMENS"], - ["Manufacturer Model Name", "Volume Zoom"], + ["Manufacturer's Model Name", "Volume Zoom"], ["Pixel Data", "gdcm::NotLoaded. Address:2946 Length:192218"] ] ], ["MR-MONO2-12-shoulder.dcm", # Interest: Jpeg compression [Lossless, non-hierar. (14)] @@ -434,7 +437,7 @@ class gdcmTestCase(unittest.TestCase): ["High Bit", "11"], ["Pixel Representation", "0"], ["Manufacturer", "Philips Medical Systems"], - ["Manufacturer Model Name", "Gyroscan NT"], + ["Manufacturer's Model Name", "Gyroscan NT"], ["Pixel Data", "gdcm::NotLoaded. Address:1580 Length:718948"] ] ], ["gdcm-JPEG-LossLess3a.dcm", # Interest: - Jpeg compression [Lossless, hierar., first-order @@ -451,7 +454,7 @@ class gdcmTestCase(unittest.TestCase): ["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 ÿ Ø ÿ Ã @@ -489,13 +492,13 @@ class gdcmTestCase(unittest.TestCase): ["High Bit", "14"], ["Pixel Representation", "0"], ["Manufacturer", "Philips Medical Systems"], - ["Manufacturer Model Name", "Cassette Holder Type 9840 500 35201"], + ["Manufacturer's Model Name", "Cassette Holder Type 9840 500 35201"], ["Pixel Data", "gdcm::NotLoaded. Address:3144 Length:4795668"] ] ], ] def _BaseTest(self, FileSet): for entry in FileSet: - fileName = os.path.join(GDCM_DATA_PATH, entry[0]) + fileName = os.path.join(GDCM_TEST_DATA_PATH, entry[0]) toRead = gdcmHeader(fileName) valDict = toRead.GetPubElVal() for subEntry in entry[1]: @@ -519,19 +522,25 @@ class gdcmTestCase(unittest.TestCase): def testWrite(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 = '5af8739c15dd579dea223eb3930cacda' + Sign = 'c3d27238647b7eaa773bff6ea0692b54' 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__': + if not GDCM_TEST_DATA_PATH: + print "GDCM_TEST_DATA_PATH is not setup properly. This test suite" + print " requires that some Dicom reference files be 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" unittest.main()