]> Creatis software - gdcm.git/blobdiff - ChangeLog
* src/gdcmDocument.[h|cxx]:
[gdcm.git] / ChangeLog
index 8138e2bcf716fed7108606b2627db07163dd1aab..4e29834429f947879ef2ec25ae934994dc389f88 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,272 @@
-2004-04-02  Jean-Pierre Roux
+2004-06-15 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+    * src/gdcmDocument.[h|cxx]:
+      - Clean up of the Transfer related predicates. They are now all based
+        on new method isGivenTransferSyntax, that (should) handle properly
+        the padding problem.
+      - general clean up, simplification, and coding style.
+      - Specific clean up of Parse7FE0() (umproperly named actually).
+    * gdcmPython/testSuite.py: an odd temporary kludge introduced.
+
+2004-06-14 Jean-Pierre Roux            
+   *  gdcmSeqEntry.cxx
+          - fix the display of Sequence Delimitor (SQDepthLevel pb)
+               - fix the display of SQItem ordinal number
+      - add the GetSQItemByOrdinalNumber method
+               - remove some useless never written private methods     
+               
+2004-06-14 Jean-Pierre Roux
+   * gdcmBinEntry.cxx 
+      - adding a constructor taking a gdcmDocEntry as an input param
+          - ReplaceOrCreateByNumber now returns :
+             a gdcmBinEntry * if a Binary (void *) value is passed as a param
+                  a gdcmValEntry * if a string value is passed as a param
+   * dcmDocument.cxx
+      - SetEntryByNumber now allows setting gdcmValEntry or gdcmBinEntry, 
+             according to the param type (no longer sets a gdcmDocEntry)
+          - GetValEntryByNumber, GetBinEntryByNumber added
+      - NewValEntryByNumber and NewBinEntryByNumber added
+   * gdcmFile.cxx
+      - Pixel Data are now linked to the (7fe0,0010) elements, after reading
+   * gdcmSQItem.h
+      - GetSQItemNumber and SetSQItemNumber added, to provide 
+            a (relative) Item identier inside a given Sequence
+            \warning : some pb remaining around this number
+                               will be solved asap
+      - AddEntry now takes the Item Number as a param  
+   * gdcmValEntry.cxx 
+      - adding a constructor taking a gdcmDocEntry as an input param   
+
+2004-06-14 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+    * Memory leak hunt with the following command:
+      valgrind --leak-check=yes --leak-resolution=high --num-callers=40
+               --show-reachable=yes gdcmTests PrintDocument
+      It looks like many (all?) leaks are due to the STL (or a bad usage
+      of the STL. The lines producing the leaks now have a comment with
+      a "MEMORY LEAK" tag: you can retrieve them with 
+          grep "MEMORY LEAK" src/*
+      Here are two typical examples which I can't help fixing:
+      -----
+          #include <string>
+          int main() {
+             std::string name;
+             char * test = "babo";
+             name = test;    //// <--- valgrind detects 960 bytes lost in
+                             ////   call to std::string::operator=(char const*)
+             name.clear();   //// Doesn't help !
+             return 0;
+          }
+      -----
+          #include <string>
+          #include <iostream>
+          int main() {
+             std::string line;
+             std::cout << "Type a bunch of characters followed by RETURN: ";
+             getline(std::cin, line);   //// <--- valgrind dectects a loss
+                                        //// of 1320 bytes in call to
+                                        /// std::basic_istream<>& std::getline<>
+            return 0;
+          }
+      -----
+
+
+2004-06-10 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+    * src/gdcmHeader.[cxx|h]:
+      - Predicates on the Transfer syntax (of the form Is[JPEG|RLE]*)
+        and related, moved away to gdcmDocument.
+      - Accessors (on the form [Get|Set]Entry*) set up to expose publicly
+        the corresponding protected accessors of inherited class
+        gdcmDocument, removed ! As a consequence gdcmFile had to be 
+        declared friend of class gdcmDocument (see below).
+      - operator< moved to gdcmDocument (in fact it belongs to gdcmDicomDir).
+      - Clean up of undefined or unused methods.
+    * src/gdcmFile.[cxx|h]: added SetEntryByNumber (in order to take into
+      account the changes to gdcmHeader.h).
+    * src/gdcmDocument.h:
+      - gdcmFile is now a friend class (in order to take into account the
+        changes to gdcmHeader.h).
+      - Predicates on the Transfer syntax (of the form Is[JPEG|RLE]*) added
+        (see changes to gdcmHeader.h).
+      - Accessors (reading on the form GetEntry*) are now public.
+      - Clean up of undefined or unused methods.
+    * src/gdcmDocument.cxx:
+      - adaptation to changes to gdcmDocument.h
+      - ::OpenFile now writes a verbose message when file cannot be opened.
+      - some std::string properly set to VRKey
+    * src/gdcmDicomDir.h: historical references to gdcmHeader changed to
+      references to gdcmDocument. 
+    * Test/TestFindTags.cxx: changed accordingly to above changes.
+    * gdcmPython/testSuite.py: adapted to renaming of acr files in 
+      cvs repository gdcmData.
+
+2004-06-09 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+    * src/gdcmValEntry.h: member voidArea type changed from char* to void*.
+    * src/gdcmBinEntry.h: member voidArea commented out, since it potentially
+      conflicts with gdcmValEntry::voidArea.
+    * src/gdcmValEntry.cxx: unmatching comment wiped out.
+    * src/gdcmVR.[h|cxx]: added two predicates that partition the possible
+      Value representation between StringRepresentable and BinaryRepresentable.
+    * src/gdcmDocument.cxx: 
+      - method ParseDES: proper indentation restored and usage of
+        gdcmVR::IsVROfGdcmStringRepresentable wired in.
+      - method LoadDocEntry: the fingerprint left in the SetValue() of
+        unloaded entries (length > MaxSizeLoadEntry) had curiously been
+        removed. Reverting to previous code segment with the proper
+        dynamic_cast< gdcmValEntry* >.
+        Note: this was (partially) breaking the python test suite
+              (gdcmPython/testSuite.py) that made usage of the above
+              fingerprint to check presence of "Pixel Data".
+    * src/gdcmDocEntry.h: coding style.
+    * gdcmPython/__init__.py: environement variable GDCM_DATA_PATH is
+      now taken into account.
+    * gdcmPython/gdcm.i: adaptation to the new internal representation
+      of gdcm (exit gdcmParser, hello gdcmDocument).
+    * gdcmPython/testSuite.py: quick and dirty fix for loading vtkgdcmPython
+      on posix.
+    * gdcmPython/demo/PrintHeader.py: doesn't use the gdcmDocument::Print()
+      anymore, but instead prints the loaded Python dictionary.
+    * .... alas, the python testSuite is still broken.
+
+2004-05-18 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+    * gdcmPython/gdcm.i : remove useless lines concerning the gdcmGlobal 
+      gdcmGlob
+    * gdcmPython/setup.py : replace the use of cvar.gdcmGlob to gdcmGlobal
+    * src/gdcmUtil.h : export methods
+
+2004-05-16  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
+    * Some more cleanup/enhancement in gdcmPython/CMakeLists.txt getting close
+      to right behavior
+    * Initial addition of automatic python testing
+    * Initial addition of automatic image comparison
+
+2004-05-04 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+    * src/gdcmCommon.h, gdcmDicomDir.cxx, gdcmFile.cxx, gdcmHeaderHelper.h,
+      gdcmParser.cxx, gdcmParser.h : bug fix for the Microsoft .Net compilation
+
+2004-05-04 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+     * src/gdcmFile.cxx, gdcmHeader.cxx : bug fix for the msvc compilation
+     * Test/ShowDicom.cxx : bug fix for msvc compilation
+     * vtk/vtkgdcmViewer.cxx : bug fix for msvc compilation
+
+2004-05-04 Jean-Pierre Roux
+     * ADD Taking into account the 'Dicom Sequences' leads up to introduce
+       new concepts (and new classes) :
+       a 'gdcmDocument' is composed of a set of Doc Entries, that are
+        - elementary gdcmDocEntries (former gdcmHeaderEntries)
+        - Sequence Doc Entries (gdcmSeqEntries)
+       a Sequence is composed of Items.
+       Each item is a set of Doc Entries (this is recursive)
+       The non uniqueness of the 'Dicom tag' is due to this recursivity
+       (never taken into account)
+       Our unability to add a new 'entry' in the header
+       at the proper location (neither in the H-Table (map or multimap),
+       nor in the Chained List is also due to this recursivity.
+       Don't try, right now, to use/modify/compile these new sources :
+       nothing is finished.
+       We just commit all the stuff, 'as is', in order not to loose it.
+
+2004-05-04 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+     * vtk/vtkGdcmReader.cxx : bug fix in the setting of file name
+     
+2004-05-03 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+     * vtk/vtkGdcmReader.cxx : bug fix when loading a list of files using the
+       file prefix (SetFilePrefix)
+
+2004-05-02  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
+     * Add a new test: ShowDicom, for now this is just the c++ version of
+       checkRead.sh, later it will be able to compare the image read against a
+       baseline.
+     * Replace the DEBUG on the stack with a global entry in cmake interface:
+       GDCM_DEBUG, so you can turn verbosity ON/OFF for debug statement.
+
+2004-04-30  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
+     * Add an example subdir, with a real example on how to read + write a 
+       dicom image
+
+2004-04-30  Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+     * Doc/gdcmUML.xmi added raw UML class view (umbrello format)
+     * Doc/CMakeLists.txt: the main page is now properly differentiated
+       between the developper and user version.
+     * Doc/doxygen.config.in: dropped search related obsolete flags
+     * src/gdcmParser.h, gdcmHeader.h: doxygenation
+
+2004-04-29  Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+     * DEVELOPPER: added some helpfull comments for compile/test/install
+       when using cmake.
+
+2004-04-29  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
+     * ENH: 1. Remove remp solution of gdcmTests.cxx+ gdcmMain directly in 
+               src directory, now generated in the build dir.
+            2. Tests as mentionned smarter
+            3. Some clean up
+            4. Add a new method in gdcmDict that return the PubDict by name 
+              this is interesting for 3rd party lib like ITK, 
+              where we could set the institution name / patient name...
+
+       * ENH: 1. Now the test suite is working for real
+              2. All binaries are now output in the gdcm-bin directory 
+                (this was not true before)              
+
+2004-04-28  Jean-Pierre Roux
+     * ENH add the provisional  gdcmHeader::SQDepthLevel to allow 
+           SeQuence indented printing of Dicom Header.
+     * ENH merge methods gdcmParser::Parse and gdcmParser::LoadHeaderEntries
+           into the single gdcmParser::LoadHeaderEntries for efficiency purpose.
+          Computation of SQDepthLevel is now part of gdcmHeader constructor
+     * ENH add self defined param 'new' to PrintHeader to 'show' the SeQuence
+           tree-like structure of a Dicom Header.
+     * FIX Test code cleaning     
+           
+2004-04-25  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
+     * ENH: Adding automatic testing
+       1. Need a DartConfig.cmake to submit to public
+       2. Add a test driver gdcmTest.cxx
+       3. gdcmTestMain, an helper for the main test driver gdcmTest
+       4. Files in Test don't have a main anymore, this becomes interesting 
+          when we add more and more tests, thus dsw don't have to load 
+          too many projects
+     * ENH: Adding a GDCM_DATA_ROOT for testing
+     * ENH: Remove redundancie about GDCM_DICT stuff, now we only need to modify
+       one file instead of seven + some small cleanup
+
+2004-04-22  Jean-Pierre Roux
+     * ENH Minor changes to the Print() methods.
+     * ADD gdcmParser::PrintEntryNiceSQ() to allow SQ-indented
+           Header printing. Example given with :
+          > PrintHeader fileName  2 new
+          (SQ based tree-like structure still to be done for the Header ...)
+          
+2004-04-22  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
+     * ENH: Some cosmetic clean up for compilation with -W -Wall -Werror
+         1. I have added some unsigned where needed
+         2. Some function parameter not used -> (void)
+         3. In gdcmDicomDir.cxx, add GDCM_DICOMDIR_NONE case
+         4. g++ don't like character '\' in comment
+         5. #define jpeg_create_decompress  jCreaDecompress
+                    this really need to be fixed
+         6. virtualize destructor of gdcmObject ... leakage
+         7. sscanf(g->first.c_str(),"%x",&gr_bid); 
+                    this also really need to be fixed
+         8. gdcm/src/jpeg/libijg8/CMakeLists.txt, 
+                    remove compression file 
+                    (as we only do decompression, right ?)     
+     * ENH: Change malloc/calloc/free with c++ equivalent
+
+2004-04-21  Jean-Pierre Roux
+     * FIX gdcmHeaderHelper::GetXSpacing
+           when a single value is found (bug ?), xpacing is now 
+           defaulted to yspacing
+          
+2004-04-19  Jean-Pierre Roux
+     * ADD gdcmData/Wrist.pap (PAPYRUS 3.0 -single frame-) for checking purpose
+     * ENH add parameters :
+               bool  exception_on_error = false, 
+               bool  enable_sequences   = false,
+              bool  ignore_shadow      = false
+           to the gdcmFile constructors to be full gdcmParser compliant
+     * FIX vtk/vtkGdcmReader.cxx now uses  enable_sequences = true in gdcmFile
+           to allow reading of PAPYRUS 3.0 files 
+             
+2004-04-06  Jean-Pierre Roux
      * ADD gdcmData/E00001S03I0015.dcm for SQ checking purpose
      
 2004-04-02  Jean-Pierre Roux
      * Update Windows projects and .cvsignore files
 
 2003-11-12 Jean-Pierre Roux
-     * ENH  gdcmHeader constructor has one more parameter (default value : false)
+     * ENH gdcmHeader constructor has one more parameter (default value : false)
            that allows the user to 'go inside' the SeQuences only
            if he wants to.
            gdcmElValSet:Print takes it into account
 2003-10-24  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
       * ENH: vtkGdcmReader.cxx can now read multiframe dicom
       * FIX: remove a call to ->Modified ... see comments
-      * FIX: vtkgdcmViewer.cxx was writting ASCII file...this is so slooooooow !
+      * FIX: vtkgdcmViewer.cxx was writting ASCII file...this is so slooooow !
       
 2003-10-23  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
       * FIX: Problem with path for libvtkgdcmPython
       * ENH: Try adding a search script for python site-package
       * RMV: Remove some file from medcon lib that are not necessary
       * FIX: gdcm/Makefile.am fix for generating ljpg medcon
-      * ENH: CMakeLists.txt now generate 'pygdcm.so' instead of 'libpygdcm.so' 
+      * ENH: CMakeLists.txt now generate 'pygdcm.so' instead of 'libpygdcm.so'
       * FIX: More pragma disable fro VC++, 
-             I don't think I break something as it is also disable in VTK/ITK. 
+             I don't think I break something as it is also disable in VTK/ITK.
         But it fasten debug compilation time.
             
 2003-10-23 Jean-Pierre Roux
       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
+     * Emprovement of reading for Dicom encapsulated Jpeg LossLess 
+       MultiFrame images
 
 2003-10-14  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
      * TODO: *.in file to genereate a UseGDCM later
          - 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.
+          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>
       * vtk/win32/vtkgdcm.dsp : added /nodefaultlib "mscvrt" for debug mode
 
 2003-08-29  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
-      * Corrected a leak in vtkGdcmREader.cxx, the pSource was find thanks to valgrind.
+      * Corrected a leak in vtkGdcmREader.cxx, the pSource was find thanks
+            to valgrind.
 
 2003-07-29  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
       * src/win32/libgdcmjpeg12.dsp was not dos format
-      * src/win32/libgdcmjpeg12.dsp : libgdcmijpeg12_EXPORTS -> LIBGDCMIJPEG12_EXPORTS
+      * src/win32/libgdcmjpeg12.dsp : 
+                  libgdcmijpeg12_EXPORTS -> LIBGDCMIJPEG12_EXPORTS
       * src/win32/gdcmdll.dsp: + /I "..\jpeg\libijg12"
 
 2003-07-29 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>