]> Creatis software - gdcm.git/commitdiff
Ops ! Forgot to commit the .h
authorjpr <jpr>
Thu, 30 Oct 2003 17:05:55 +0000 (17:05 +0000)
committerjpr <jpr>
Thu, 30 Oct 2003 17:05:55 +0000 (17:05 +0000)
CMakeLists.txt
ChangeLog
Dicts/dicomV3.dic
Makefile.am
PACKAGER
gdcmPython/testSuite.py
setup.py
src/gdcmHeader.h
vtk/Makefile.am
vtk/vtkGdcmReader.cxx

index 78c596a1d04323d7ba17e3d32e61291c25f4cd1d..b63a646df2292ec6e2bf2cf24206a53a3a3dc54a 100644 (file)
@@ -94,7 +94,7 @@ ENDIF(DOXYGEN)
 #      README \\r
 #      TODO \\r
 #      gdcm.spec \\r
-#  gdcm.dsw\r
+#       gdcm.dsw\r
 \r
 #release:\r
 #      $(MAKE) dist distdir=$(PACKAGE)-$(VERSION)\r
index f29ce9f381e560a51325d3bcbdc17207d6e02c59..a604641acab860857dd22e53b9a6f8a4624b2f2b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2003-10-30 Jean-Pierre Roux
+     * FIX a VC++ intended synatx modif broke the 12/12 Bytes expanding
+
+2003-10-29 Jean-Pierre Roux
+      * adding  gdcmHeader::GetLUTRGBA
+               returns a 4 * 256 Bytes Reg/Green/Blue/Alpha vtk compliant LUT
+              --> Mathieu, le modif u're waiting for is not yet committed
+      * removal of now useless GetLUTRed,GetLUTGreen,GetLUTBlue,GetLUTRGB                                    
+
+2003-10-23 Jean-Pierre Roux
+      * gdcm now deals with 16 Bits Run Length Encoded images
+        (they are compressed as 2 planes images, 
+         one for the high Bytes, the other for low Bytes)
+
+2003-10-22 Jean-Pierre Roux
+     * Now CheckRead takes into account the bugged 'Leonardo' Siemens images
+        and XA images, sent thru the burning station
+
+2003-10-22 Jean-Pierre Roux
+      * in gdcmData adding a bugged 'Leonardo' Siemens image 
+        (wrong lengths in header)
+        OK with gdcm, KO with the other viewers :-)
+      * add a GE dlx XA image, thru the VEPRO burning station
+        (breaks DicomWorks)
+
+2003-10-21 Jean-Pierre Roux
+      * in gdcmData add the checkvtkgdcmViewer.sh shell script 
+        for a brutal checking of vtkgdcmViewer compliance
+
+2003-10-21 Jean-Pierre Roux
+      * add the files for 'xmedcon' Jpeg Lossless library
+      * call of 'xmedcom' Jpeg Lossles libray (instead of the old LibIDO one)
+
+2003-10-21 Jean-Pierre Roux
+      * 'Compacted Files' (12 Bits Allocate, 12 Bits Stored) are now dealt with
+     
+2003-10-21 Jean-Pierre Roux
+      * garbage Siemens 'Leonardo' images dealt with
+        (the patch is easy to remove)
+      * cosmetic changes to avoid warnings
+
+2003-10-21  Jean-Pierre Roux
+      * upgrade of checkRead.sh checkWrite.sh according 
+        to new Jpeg Lossless decompressor
+
+2003-10-15  Jean-Pierre Roux
+      * general anonymisation in gdcmData
+      * adding the 'color files' from
+         http://www.leadtools.com/SDK/Medical/DICOM/ltdc19.htm
+      * adding some well knowed bugged-header images
+      * adding checkRead.sk, checkReadColor.sh, checkWrite.sh,
+         waiting for their inclusion in Python testsuite
+
+2003-10-15  Jean-Pierre Roux
+    * gdcmHeader::gdcmHeader(const char *InFilename, bool exception_on_error)
+      no longer seg faults when file is not found
+
+2003-10-14  Jean-Pierre Roux
+     * Emprovement of reading for Dicom encapsulated Jpeg LossLess MultiFrame images
+
+2003-10-14  Jean-Pierre Roux
+     * Some supposed-to-be Dicom Images have no preamble.
+        OpenFile takes it into account
+     * Jpeg LossLess 24 Bits images doesn-t break any longer gdcm
+
+     * Missing elements added in dicomV3.dic
+      (just to be affraid : have a look at
+       ftp://medical.nema.org/medical/dicom/2003/01v03dif/01v03_06.pdf
+       and do it again next year ;->
+
+2003-10-13  Jean-Pierre Roux
+     * According to PS 3.3-2003 C.11.1.1.2 p 619, when each pixel of a PLATTE COLOR
+       is stored on 2 Bytes, theese 2 Bytes must be equal.
+       But there are NOT. It's fixed !
+
+2003-10-10  Jean-Pierre Roux
+     * ENH : OpenFile closes the file if it *really* doesn't look like
+        an ACR-NEMA / DICOM one.
+     * testWrite no longer writes an empty file if the source file 
+        is not gdcm Readable
+
 2003-10-09  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
       * CMake-ification of gdcm, we have now two build system
+
+2003-10-03 Jean-Pierre Roux
+      * Odd length strings are padded with '\0' (not with spaces, 
+        to remain compliant with already defined strings, 
+        like Transfert Syntax UID and others)
+
 2003-10-03  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
       * vtkGdcmReader is now able to read rgb dicom file.
       * src/gdcmHeaderHelper : GetNumberOfScalarComponents()
+
+2003-10-03 Jean-Pierre Roux
+      * A few nasty patches to allow the reading of a lot of nasty images
+        ( e.g : well known GE images with a wrong elem length,
+              : Philips MRI Images with a wrong Huffman table)
+      * still to be done : allow the reading of bugged LEONARDO Siemens images
+
+2003-10-03 Jean-Pierre Roux
+      * One more JPEG LossLess type "JPEG Baseline (Process 14)" is now decoded.
+
+2003-10-03 Jean-Pierre Roux
+      * gdcmHeaderHelper::GetNumberOfScalarComponents() added, 
+        to allow displaying RGB images (not only by affim ;-)
+
+2003-10-03 Jean-Pierre Roux
+      * gdcmFile::GetImageDataIntoVector now
+         - deals with MultiFrames MultiFragments Run Length Encoded files
+         - deals with YcBcR (YBR_FULL) files
+         - deals with YBR_YBR_FULL_422 files (they work as RBG files ?!?)
+          WARNING : nothing was checked for YBR_PARTIAL_422, YBR_ICT, YBR_RCT files.
+          (no sample found :-(
+
 2003-10-02  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
       * src/*.cxx removed pragma thingies to src/gdcmCommon.h
         Two reasons: - clear things
                      - third parties acces gdcm through header files, so won't
                      suffer anymore VC++ complains
+2003-09-24 Jean-Pierre Roux
+      * The lines are now eigthy characters long.for 
+        gdcmHeader.cxx gdcmHeaderHelper.cxx gdcmParse.cxx 
 
 2003-09-22  Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
       * src/gdcmUtil.[cxx|h] : change the _CreateCleanString return value from
-        char* to std::string. Thus, the use of strdup becoomes useless. (see
+        char* to std::string. Thus, the use of strdup becomes useless. (see
         previous commis of Malaterre)
       * src/gdcmElValSet.cxx : reuse commented call to _CreateCleanString like
         before the last Malaterre's commit.
index 36e640806dc2447a743e14dd19919a219eb8e822..25feb4f2c4865168b170578847f50a5577e789b2 100644 (file)
 0020 9157 UL REL Dimension Index Values
 0020 9158 LT REL Frame Comments
 0020 9161 UI REL Concatenation UID
-0020 9162 US REL In-Concatenation Number
-0020 9163 US REL In-Concatenation Total Number
+0020 9162 US REL In-concatenation Number
+0020 9163 US REL In-concatenation Total Number
 0020 9164 UI REL Dimension Organization UID
 0020 9165 AT REL Dimension Index Pointer
 0020 9167 AT REL Functional Group Pointer
 0020 9228 UL REL Concatenation Frame Offset Number
 0020 9238 LO REL Functional Group Private Creator
 0028 0000 UL IMG Group Length
-0028 0002 US IMG Samples Per Pixel
+0028 0002 US IMG Samples per Pixel
 0028 0004 CS IMG Photometric Interpretation
 0028 0005 US IMG Image Dimensions (RET)
 0028 0006 US IMG Planar Configuration
 0028 0101 US IMG Bits Stored
 0028 0102 US IMG High Bit
 0028 0103 US IMG Pixel Representation
-0028 0104 US IMG Smallest Pixel Value (RET)
-0028 0105 US IMG Largest Pixel Value (RET)
+0028 0104 US IMG Smallest Valid Pixel Value (RET)
+0028 0105 US IMG Largest Valid Pixel Value (RET)
 0028 0106 US IMG Smallest Image Pixel Value
 0028 0107 US IMG Largest Image Pixel Value
 0028 0108 US IMG Smallest Pixel Value in Series
 0028 0199 US IMG LibIDO code (RET)
 0028 0200 US IMG Image Location (RET)
 0028 1040 CS IMG Pixel Intensity Relationship
+0028 1041 CS IMG Pixel Intensity Relationship Sign
 0028 1050 DS IMG Window Center
 0028 1051 DS IMG Window Width
 0028 1052 DS IMG Rescale Intercept
 0028 1055 LO IMG Window Center & Width Explanation
 0028 1080 SH IMG Gray Scale (RET)
 0028 1090 CS IMG Recommended Viewing Mode
-0028 1100 US IMG Gray Palette Color Lookup Table Descriptor (RET)
+0028 1100 US IMG Gray Lookup Table Descriptor (RET)
 0028 1101 US IMG Red Palette Color Lookup Table Descriptor
 0028 1102 US IMG Green Palette Color Lookup Table Descriptor
 0028 1103 US IMG Blue Palette Color Lookup Table Descriptor
 0028 9003 CS IMG Signal Domain Columns
 0028 9099 US IMG Largest Monochrome Pixel Value
 0028 9108 CS IMG Data Representation
-0028 9110 SQ IMG Pixel Measure Sequence
+0028 9110 SQ IMG Pixel Measures Sequence
 0028 9132 SQ IMG Frame VOI LUT Sequence
 0028 9145 SQ IMG Pixel Value Transformation Sequence
 0028 9235 CS IMG Signal Domain Rows
 0040 0314 DS PRC Half Value Layer
 0040 0316 DS PRC Organ Dose
 0040 0318 CS PRC Organ Exposed
-0040 0320 SQ PRC Biling Procedure Step Sequence
+0040 0320 SQ PRC Billing Procedure Step Sequence
 0040 0321 SQ PRC Film Consumption Sequence
-0040 0324 SQ PRC Biling Supplies and Devices Sequence
+0040 0324 SQ PRC Billing Supplies and Devices Sequence
 0040 0330 SQ PRC Referenced Procedure Step Sequence (RET)
 0040 0340 SQ PRC Performed Series Sequence
 0040 0400 LT PRC Comments on the Scheduled Procedure Step
 0040 1011 SQ PRC Intended Recipients of Results Identification Sequence 
 0040 1101 SQ PRC Person Identification Code Sequence
 0040 1102 ST PRC Person's Adress
-0040 1103 LO PRC Person's Telephone Number
+0040 1103 LO PRC Person's Telephone Numbers
 0040 1400 LT PRC Requested Procedure Comments 
-0040 2001 LO PRC Reason for teh Imaging Service Request
+0040 2001 LO PRC Reason for the Imaging Service Request
 0040 2004 DA PRC Issue Date of Imaging Service Request
 0040 2005 TM PRC Issue Time of Imaging Service Request
 0040 2006 SH PRC Placer Order Number/Imaging Service Request (RET)
 0040 4004 SQ PRC Scheduled Processing Applications Code Sequence
 0040 4005 DT PRC Scheduled Procedure Step Start Date and Time
 0040 4006 CS PRC Multiple Copies Flag
-0040 4007 SQ PRC Performed Processing Applications Sequence
+0040 4007 SQ PRC Performed Processing Applications Code Sequence
 0040 4009 SQ PRC Human Performer Code Sequence
 0040 4011 DT PRC Expected Completion Date and Time
 0040 4015 SQ PRC Resulting General Purpose Performed Procedure Steps Sequence
 0040 4031 SQ PRC Requested Subsequent Workitem Code Sequence
 0040 4032 SQ PRC Non-DICOM Output Code Sequence
 0040 4033 SQ PRC Output Information Sequence
+0040 4034 SQ PRC Scheduled Human Performers Sequence
 0040 4035 SQ PRC Actual Human Performers Sequence
 0040 4036 LO PRC Human Performer's Organization
 0040 4037 PN PRC Human Performer's Name
 0040 9225 FD PRC Real World Value Slope
 0040 a010 CS PRC Relationship Type
 0040 a027 LO PRC Verifying Organization
-0040 a030 DT PRC Verification DateTime
-0040 a032 DT PRC Observation DateTime
+0040 a030 DT PRC Verification Date Time
+0040 a032 DT PRC Observation Date Time
 0040 a040 CS PRC Value Type
-0040 a043 SQ PRC Concept-name Code Sequence
+0040 a043 SQ PRC Concept Name Code Sequence
 0040 a050 CS PRC Continuity of Content
 0040 a073 SQ PRC Verifying Observer Sequence
 0040 a075 PN PRC Verifying Observer Name
 0040 a136 US PRC Referenced Frame Numbers
 0040 a138 DS PRC Referenced Time Offsets
 0040 a13a DT PRC Referenced Datetime
+0040 a160 UT PRC Text Value
 0040 a168 SQ PRC Concept Code Sequence
 0040 a16a ST PRC Bibliographics Citation
 0040 a170 SQ PRC Purpose of Reference Code Sequence
 0040 a180 US PRC Annotation Group Number
-0040 a195 SQ PRC Concept-name Code Sequence Modifier
+0040 a195 SQ PRC Modifier Code Sequence Modifier
 0040 a300 SQ PRC Measured Value Sequence
 0040 a301 SQ PRC Numeric Value Qualifier Code Sequence
 0040 a30a DS PRC Numeric Value
 0040 a353 ST PRC Address
 0040 a354 LO PRC Telephone Number
-0040 a360 SQ PRC Precessor Document Sequence
-0040 a370 SS PRC Referenced Requested Sequence
+0040 a360 SQ PRC Predecessor Documents Sequence
+0040 a370 SS PRC Referenced Request Sequence
 0040 a372 SQ PRC Performed Procedure Code Sequence
 0040 a375 SQ PRC Current Requested Procedure Evidence Sequence
 0040 a385 SQ PRC Pertinent Other Evidence Sequence
 0054 0210 IS NMI Trigger Vector
 0054 0211 US NMI Number of Triggers in Phase
 0054 0220 SQ NMI View Code Sequence
-0054 0222 SQ NMI View Angulation Modifer Code Sequence
+0054 0222 SQ NMI View Modifer Code Sequence
 0054 0300 SQ NMI Radionuclide Code Sequence
-0054 0302 SQ NMI Radiopharmaceutical Route Code Sequence
-0054 0304 SQ NMI Radiopahrmaceutical Code Sequence
+0054 0302 SQ NMI Administration Route Code Sequence
+0054 0304 SQ NMI Radiopharmaceutical Code Sequence
 0054 0306 SQ NMI Calibration Data Sequence
 0054 0308 US NMI Energy Window Number
 0054 0400 SH NMI Image ID
 2000 00a2 SQ BFS Media Installed Sequence
 2000 00a4 SQ BFS Other Media Available Sequence
 2000 00a8 SQ BFS Supported Image Display Formats Sequence
-2000 0500 SQ BFS Referenced Film Box Sequences
-2000 0510 SQ BFS Referenced Stored Print Sequences
+2000 0500 SQ BFS Referenced Film Box Sequence
+2000 0510 SQ BFS Referenced Stored Print Sequence
 2010 0000 UL BFB Group Length
 2010 0010 ST BFB Image Display Format
-2010 0030 CS BFB Annotation Display Format
+2010 0030 CS BFB Annotation Display Format ID
 2010 0040 CS BFB Film Orientation
 2010 0050 CS BFB Film Size ID
 2010 0052 CS BFB Printer Resolution ID
 2010 00a8 CS BFB Default Smoothing Type
 2010 00a9 CS BFB Other Smoothing Types Available
 2010 0100 CS BFB Border Density
-2010 0110 CS BFB Emty Image Density
+2010 0110 CS BFB Empty Image Density
 2010 0120 US BFB Min Density
 2010 0130 US BFB Max Density
 2010 0140 CS BFB Trim
 2010 0160 US BFB Reflected Ambiant Light
 2010 0367 UD BFB Printer Pixel Spacing
 2010 0500 SQ BFB Referenced Film Session Sequence
-2010 0510 SQ BFB Referenced Image Box SOP Sequence
-2010 0520 SQ BFB Referenced Basic Annotation Box SOP Sequence
+2010 0510 SQ BFB Referenced Image Box Sequence
+2010 0520 SQ BFB Referenced Basic Annotation Box Sequence
 2020 0000 UL BIB Group Length
 2020 0010 US BIB Image Position
 2020 0020 CS BIB Polarity
 2020 0030 DS BIB Requested Image Size
 2020 0040 CS BIB Requested Decimate/Crop Behaviour
 2020 0050 CS BIB Requested Resolution ID
-2020 00a0 CS BIB Decimate/Crop Result
-2020 0110 SQ BIB Basic Greyscale Image Sequence
-2020 0111 SQ BIB Basic Color Image Sequencee
+2020 00a0 CS BIB Requested Image Size Flag
+2020 00a2 CS BIB Decimate/Crop Result
+2020 0110 SQ BIB Basic Grayscale Image Sequence
+2020 0111 SQ BIB Basic Color Image Sequence
 2020 0130 SQ BIB Referenced Image Overlay Box Sequence (RET)
 2020 0140 SQ BIB Referenced VOI LUT Box Sequence (RET)
 2030 0000 UL BAB Group Length
 3002 0004 ST RT RT Image Description
 3002 000a CS RT Reported Values Origin
 3002 000c CS RT RT Image Plane
+3002 000d DS RT X-Ray Image Receptor Translation
 3002 000e DS RT X-Ray Image Receptor Angle
 3002 0010 DS RT RT mage Orientation
 3002 0011 DS RT Image Plane Pixel Spacing
 3004 0012 DS DVH Dose Value
 3004 0040 DS DVH DVH Normalization Point
 3004 0042 DS DVH DVH Normalization Dose Value
-3004 0050 SQ DVH DCH Sequence
+3004 0050 SQ DVH DVH Sequence
 3004 0052 DS DVH DVH Dose Scaling
 3004 0054 CS DVH DVH Volume Units
 3004 0056 IS DVH DVH Number of Bins
 3006 0044 DS SSET Contour Slab Thickness
 3006 0045 DS SSET Contour Offset Vector
 3006 0046 IS SSET Number of Contour Points
+3006 0048 IS SSET Contour Number
 3006 0050 DS SSET Contour Data
 3006 0080 SQ SSET RT ROI Observations Sequence
 3006 0082 IS SSET Observation Number
 3008 00D0 SQ ??? Recorded Block Sequence
 3008 00E0 SQ ??? Treatment Summary Measured Dose Reference Sequence
 3008 0100 SQ ??? Recorded Source Sequence
-3008 0105 LO ??? Source Serial Numbe
+3008 0105 LO ??? Source Serial Number
 3008 0110 SQ ??? Treatment Session Application Setup Sequence
 3008 0116 CS ??? Application Setup Check 
 3008 0120 SQ ??? Recorded Brachy Accessory Device Sequence
 300a 0004 ST RT  RT Plan Description
 300a 0006 DA RT  RT Plan Date
 300a 0007 TM RT  RT Plan Time
-300a 0009 LO RT  RT Treatment Protocols
+300a 0009 LO RT  Treatment Protocols
 300a 000a CS RT  Treatment Intent
 300a 000b LO RT  Treatment Sites
 300a 000c CS RT  RT Plan Geometry
 300a 0010 SQ RT  Dose Reference Sequence
 300a 0012 IS RT  Dose Reference Number
 300a 0014 CS RT  Dose Reference Structure Type
+300a 0015 CS RT  Nominal Beam Energy Unit
 300a 0016 LO RT  Dose Reference Description
 300a 0018 DS RT  Dose Reference Point Coordinates
 300a 001a DS RT  Nominal Prior Dose
 300a 00c3 ST RT  Beam Description
 300a 00c4 CS RT  Beam Type
 300a 00c6 CS RT  Radiation Type
+300a 00c7 CS RT  High-Dose Technique Type
 300a 00c8 IS RT  Reference Image Number
 300a 00ca SQ RT  Planned Verification Image Sequence
 300a 00cc LO RT  Imaging Device-Specific Acquisition Parameters
 300a 0296 DS RT  Source Applicator Length
 300a 0298 LO RT  Source Applicator Manufacturer
 300a 029c DS RT  Source Applicator Wall Nominal Thickness
-300a 029e DS RT  Src Applicator Wall Nominal Transmission
+300a 029e DS RT  Source Applicator Wall Nominal Transmission
 300a 02a0 DS RT  Source Applicator Step Size
 300a 02a2 IS RT  Transfer Tube Number
 300a 02a4 DS RT  Transfer Tube Length
 300c 0007 IS RT  Referenced Reference Image Number
 300c 0008 DS RT  Start Cumulative Meterset Weight
 300c 0009 DS RT  End Cumulative Meterset Weight
-300c 000a SQ RT  Referenced Brachy Application Setup Seq
+300c 000a SQ RT  Referenced Brachy Application Setup Sequence
 300c 000c IS RT  Referenced Brachy Application Setup Number
 300c 000e IS RT  Referenced Source Number
 300c 0020 SQ RT  Referenced Fraction Group Sequence
 300c 0040 SQ RT  Referenced Verification Image Sequence
 300c 0042 SQ RT  Referenced Reference Image Sequence
 300c 0050 SQ RT  Referenced Dose Reference Sequence
-300c 0051 IS RT  Referenced Dose Reference Numer
+300c 0051 IS RT  Referenced Dose Reference Number
 300c 0055 SQ RT  Brachy Referenced Dose Reference Sequence
 300c 0060 SQ RT  Referenced Structure Set Sequence
 300c 006a IS RT  Referenced Patient Setup Number
 4008 0210 CS RES Interpretation Type ID
 4008 0212 CS RES Interpretation Status ID
 4008 0300 ST RES Impressions
-4008 4000 ST RES Comments
+4008 4000 ST RES Results Comments
 4ffe 0001 SQ ??? MAC Parameters Sequence
 5000 0000 UL CRV Group Length
 5000 0005 US CRV Curve Dimensions
 6000 0012 US OLY Planes
 6000 0015 IS OLY Number of Frames in Overlay
 6000 0022 LO OLY Overlay Description
-6000 0040 CS OLY Type
-6000 0045 LO OLY Subtype
-6000 0050 SS OLY Origin
+6000 0040 CS OLY Overlay Type
+6000 0045 LO OLY Overlay Subtype
+6000 0050 SS OLY Overlay Origin
 6000 0051 US OLY Image Frame Origin
 6000 0052 US OLY Overlay Plane Origin
 6000 0060 LO OLY Compression Code (RET)
 6000 1302 DS OLY ROI Mean
 6000 1303 DS OLY ROI Standard Deviation
 6000 1500 LO OLY Overlay Label
-6000 3000 OW OLY Data
+6000 3000 OW OLY Overlay Data
 6000 4000 LO OLY Comments (RET)
 7fe0 0000 UL PXL Group Length
 7fe0 0010 OB PXL Pixel Data
index 724766891cc86db01168f0eeaa192205be0ec12b..74028f0aac50bf6bccf68ac149e43bf09c03b74f 100644 (file)
@@ -2,7 +2,6 @@
 
 SUBDIRS = src vtk gdcmPython Test Dicts Doc
 
-
 EXTRA_DIST = \
        AUTHORS \
        ChangeLog \
index 8b3b8227863974d46a51140bb00a46d853e3127c..1644da26194f0b7b0a135b7f56404bb0249e1efb 100644 (file)
--- a/PACKAGER
+++ b/PACKAGER
@@ -24,7 +24,7 @@ Here is the checklist when freezing a version of gdcm:
         its produced packages through the test suite, in all following cases
        - Direct installation:
          cd $GDCMHOME
-         python setup.py install --prefix=/tmp/
+         python setup.py install --prefix=/tmp
          cd /tmp/lib/python2.2/site-packages/
          ln -s $GDCMHOME/gdcmData .
          export PYTHONPATH=`pwd`
index c6fc0e1baaaf3b683f0c9a55f233dbe99b5579dc..ff72e39e7dcb843f7f834cdf270ac81a65cada8b 100644 (file)
@@ -1,6 +1,6 @@
 import unittest
 import os
-from gdcmPython import *
+from vtkgdcmPython import *
 
 class gdcmTestCase(unittest.TestCase):
    # The files whose name starts with a modality (e.g. CR-MONO1-10-chest.dcm)
@@ -478,6 +478,14 @@ class gdcmTestCase(unittest.TestCase):
          # 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. 
+        #
+        # 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-LossLess3b.dcm",
          # Interest: - Jpeg compression [Lossless, hierar., first-order
          #             pred. 14, Select. Val. 1]
index 8dfa2f234dcab7ade6a442cac6d33ade043df2e7..d35a7143df9a162aeb993727b38e62ff09cf21b1 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -9,6 +9,7 @@ gdcmPythonSrcDir=ThisModule
 gdcmSrcDir      ="src"
 gdcmJpeg8SrcDir =os.path.join('src', 'jpeg', 'libijg8')
 gdcmJpeg12SrcDir=os.path.join('src', 'jpeg', 'libijg12')
+gdcmJpgSrcDir=os.path.join('src', 'jpeg', 'ljpg')
 gdcmvtkSrcDir   ="vtk"
 gdcmDictsDir    ="Dicts"
 gdcmTestDir     ="Test"
@@ -53,7 +54,7 @@ Jpeg8Sources = glob.glob(os.path.join(gdcmJpeg8SrcDir,"j*.c"))
 Jpeg8SourcesToRemove = ['jmemansi.c', 'jmemname.c', 'jmemdos.c', 'jmemmac.c']
 for Remove in Jpeg8SourcesToRemove:
    ### Because setup.py is a multiple pass process we need to trap
-   ### the case were the files were allready wed out on a previous pass.
+   ### the case where the files were allready wed out on a previous pass.
    try:
       Jpeg8Sources.remove(os.path.join(gdcmJpeg8SrcDir, Remove))
    except ValueError:
@@ -64,13 +65,17 @@ Jpeg12Sources = glob.glob(os.path.join(gdcmJpeg12SrcDir,"j*.c"))
 Jpeg12SourcesToRemove = ['jmemansi12.c', 'jmemname12.c', 'jmemdos12.c', 'jmemmac12.c']
 for Remove in Jpeg12SourcesToRemove:
    ### Because setup.py is a multiple pass process we need to trap
-   ### the case were the files were allready wed out on a previous pass.
+   ### the case where the files were allready wed out on a previous pass.
    try:
       Jpeg12Sources.remove(os.path.join(gdcmJpeg12SrcDir, Remove))
    except ValueError:
       continue
 Sources.extend(Jpeg12Sources)
 
+#For 'xmedcon' Jpeg Lossless
+JpgSources =glob.glob(os.path.join(gdcmJpgSrcDir,"*.c"))
+Sources.extend(JpgSources)  
+
 # Sources 2/ The second extension contains the VTK classes (which we wrap
 #            with the vtk wrappers):
 VTK_INCLUDE_DIR=os.path.join(VTKPATH,"include","vtk")
@@ -80,6 +85,8 @@ vtkSources.extend(glob.glob(os.path.join(gdcmvtkSrcDir,"vtk*.cxx")))
 vtkSources.extend(glob.glob(os.path.join(gdcmSrcDir,"*.cxx")))
 vtkSources.extend(Jpeg8Sources)
 vtkSources.extend(Jpeg12Sources)
+vtkSources.extend(JpgSources)
+
 vtkLibraries=["vtkCommon","vtkCommonPython",
               "vtkIO","vtkIOPython",
               "vtkFiltering","vtkFilteringPython"]
@@ -98,7 +105,8 @@ setup(name=ThisModule,
       ext_modules=[SwigExtension(name='_gdcm',
                                  sources=Sources,
                                  include_dirs=[gdcmSrcDir,gdcmJpeg8SrcDir,
-                                               gdcmSrcDir,gdcmJpeg12SrcDir],
+                                               gdcmSrcDir,gdcmJpeg12SrcDir,
+                                              gdcmSrcDir,gdcmJpgSrcDir],
                                  libraries=libraries,
                                  define_macros=macros,
                                  swig_cpp=1,
index 7a518912cd2023870761f5b75bd1f2b59cb6606a..d383aea4f4e1c141a15fa4132e2f7024e66e83ff 100644 (file)
@@ -1,4 +1,4 @@
-// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.h,v 1.40 2003/10/21 12:19:43 jpr Exp $
+// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.h,v 1.41 2003/10/30 17:06:00 jpr Exp $
 
 #ifndef GDCMHEADER_H
 #define GDCMHEADER_H
@@ -139,6 +139,8 @@ public:
    std::string GetFileName(void) {return filename;}
    
    size_t GetPixelOffset(void);
+   size_t GetPixelAreaLength(void);
+
    int    GetSwapCode(void) { return sw; }
 
    // TODO Swig int SetPubDict(std::string filename);
@@ -199,12 +201,9 @@ public:
    std::string GetPixelType(void);  
    
    std::string GetTransferSyntaxName(void);
-   int    GetLUTLength(void);
+   int    HasLUT(void);
    int    GetLUTNbits(void);
-   void * GetLUTRed(void);
-   void * GetLUTGreen(void);
-   void * GetLUTBlue(void);
-   void * GetLUTRGB(void);
+   void * GetLUTRGBA(void);
            
 
 };
index 21787d7a81d17d979e4c0f419d54ec644ceec49d..ac58c96d1f2c34b3a5b3145f2796619471c166f4 100644 (file)
@@ -9,7 +9,7 @@ LIBS_VTK_PYTHON= $(LIBS_VTK) \
 INCLUDE_VTK=-I/usr/include/vtk
 
 LIBS_X11= -L/usr/X11R6/lib -lX11 -lXt -lSM -lICE -lXext -lGL
-#LIBS_X11= $(x_ldflags) $(x_libs)      
+#LIBS_X11= $(x_ldflags) $(x_libs)    
 
 INCLUDES =             \
    -I.                 \
@@ -23,7 +23,7 @@ LDADD =              \
    $(LIBS_X11)
 
 if BUILD_VTK
-noinst_PROGRAMS = vtkgdcmdemo vtkgdcmViewer
+noinst_PROGRAMS = vtkgdcmdemo vtkgdcmViewer #testvtkGdcmReader
 vtkgdcmdemo_SOURCES = testvtkGdcmReader.cxx  vtkGdcmReader.cxx 
 vtkgdcmViewer_SOURCES = vtkgdcmViewer.cxx  vtkGdcmReader.cxx 
 vtkgdcmdemo_LDADD = $(LDADD)
index b8464b40b1d1271f6ea84da2622e7ef03dfdb732..aaa0d53b21ebc5b00032012a2f70a8d71753d844 100644 (file)
@@ -1,15 +1,15 @@
-// $Header: /cvs/public/gdcm/vtk/vtkGdcmReader.cxx,v 1.21 2003/10/24 15:38:56 malaterre Exp $
+// $Header: /cvs/public/gdcm/vtk/vtkGdcmReader.cxx,v 1.22 2003/10/30 17:06:02 jpr Exp $
 // //////////////////////////////////////////////////////////////
 // WARNING TODO CLENAME 
 // Actual limitations of this code:
 //
 // /////// Redundant and unnecessary header parsing
 // In it's current state this code actually parses three times the Dicom
-// header of a file before the corrersponding image gets loaded in the
+// header of a file before the corresponding image gets loaded in the
 // ad-hoc vtkData !
 // Here is the process:
 //  1/ First loading happens in ExecuteInformation which in order to
-//     positionate the vtk extents calls CheckFileCoherence. The purpous
+//     positionate the vtk extents calls CheckFileCoherence. The purpose
 //     of CheckFileCoherence is to make sure all the images in the future
 //     stack are "homogenous" (same size, same representation...). This
 //     can only be achieved by parsing all the Dicom headers...
 //      (indirectely call) ExecuteInformation which ends up in a second
 //      header parsing
 //  2b/ the core of ExecuteData then needs gdcmFile (which in turns
-//      initialiszes gdcmHeader in the constructor) in order to access
+//      initialises gdcmHeader in the constructor) in order to access
 //      the data-image.
 //
 // Possible solution:
 // maintain a list of gdcmFiles (created by say ExecuteInformation) created
 // once and for all accross the life of vtkGdcmHeader (it would only load
 // new gdcmFile if the user changes the list). ExecuteData would then use 
-// those gdcmFile and hence avoid calling the consctutor:
+// those gdcmFile and hence avoid calling the construtor:
 //  - advantage: the header of the files would only be parser once.
 //  - drawback: once execute information is called (i.e. on creation of
-//              a vtkGdcmHeader) the gdcmFile sctructue is loaded in memory.
+//              a vtkGdcmHeader) the gdcmFile structure is loaded in memory.
 //              The average size of a gdcmHeader being of 100Ko, is one
 //              loads 10 stacks of images with say 200 images each, you
 //              end-up with a loss of 200Mo...
@@ -37,7 +37,7 @@
 // ExecuteData allocates space for the pixel data [which will get pointed
 // by the vtkPointData() through the call
 // data->GetPointData()->GetScalars()->SetVoidArray(mem, StackNumPixels, 0);]
-// This data is never "freed" neither in the desctutor nor when the
+// This data is never "freed" neither in the destructor nor when the
 // filename list is extended, ExecuteData is called a second (or third)
 // time...
 // //////////////////////////////////////////////////////////////
@@ -177,7 +177,7 @@ void vtkGdcmReader::BuildFileListFromPattern()
 // (i.e. an image represents one plane, but a volume represents many planes)
 int vtkGdcmReader::CheckFileCoherence()
 {
-       int ReturnedTotalNumberOfPlanes = 0;   // The returned value.
+   int ReturnedTotalNumberOfPlanes = 0;   // The returned value.
 
    this->BuildFileListFromPattern();
    if (this->InternalFileNameList.empty())
@@ -190,14 +190,14 @@ int vtkGdcmReader::CheckFileCoherence()
    int  ReferenceNZ = 0;
 
    // Loop on the filenames:
-   // - check for their existence and gdcm "parasability"
+   // - check for their existence and gdcm "parsability"
    // - get the coherence check done:
    for (std::list<std::string>::iterator FileName  = InternalFileNameList.begin();
                                         FileName != InternalFileNameList.end();
                                       ++FileName)
      {
      // The file is always added in the number of planes
-     //  - If file doesn't exist, it will be replaced by a black place in the 
+     //  - If file doesn't exist, it will be replaced by a black plane in the 
      //    ExecuteData method
      //  - If file has more than 1 plane, other planes will be added later to
      //    to the ReturnedTotalNumberOfPlanes variable counter
@@ -323,7 +323,7 @@ int vtkGdcmReader::CheckFileCoherence()
      } // End of loop on FileName
 
    ///////// The files we CANNOT load are flaged. On debugging purposes
-   // count the loadable number of files and display thir number:
+   // count the loadable number of files and display their number:
    int NumberCoherentFiles = 0;
    for (std::list<std::string>::iterator Filename  = InternalFileNameList.begin();
                                         Filename != InternalFileNameList.end();
@@ -454,9 +454,9 @@ size_t vtkGdcmReader::LoadImageInMemory(
   // If the data structure of vtk for image/volume representation
   // were straigthforwards the following would suffice:
   //    GdcmFile.GetImageDataIntoVector((void*)Dest, size);
-  // But vtk chose to invert the lines of an image, that is the last
+  // But vtk chooses to invert the lines of an image, that is the last
   // line comes first (for some axis related reasons?). Hence we need
-  // to load the image line by line, starting from the end:
+  // to load the image line by line, starting from the end.
   int NumColumns = GdcmFile.GetXSize();
   int NumLines   = GdcmFile.GetYSize();
   int NumPlanes  = GdcmFile.GetZSize();