]> Creatis software - gdcm.git/blobdiff - ChangeLog
* src/gdcmHeader.h and gdcmHeader.cxx Coding style + doxigenation.
[gdcm.git] / ChangeLog
index b75631af15708cf67f434cbb7c88858d8ab01a66..38d0686c37b49737001ea988becdadf8bdeb115c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,300 @@
+2003-03-06 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * src/gdcmHeader.h and gdcmHeader.cxx Coding style + doxigenation.
+      * src/gdcm.h general comments moved to TODO, and README
+      * src/gdcm.h should now be seen as a user commodity (including it
+        should suffice to fully use gdcm). It is nowhere including within
+        any of the kernel files src/*.cxx and src/*.h.
+
+2003-03-05 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * src/gdcm.h splitted in gdcmCommon.h, gdcmDict.h, gdcmDictEntry.h,
+        gdcmDictSet.h, gdcmElValSet.h, gdcmElValue.h, gdcmFile.h,
+        gdcmHeader.h
+      * src/gdcm*.cxx only include their corresponding include file
+        (as opposed to gdcm.h)
+      * gdcmPython/gdcm.i changed accordingly
+      * Test/Makefile.am corrected and added NEWS, AUTHORS in order for
+        the autogen.sh generated "make snapshot" command to work.
+      * autogen.sh removed history related references to crea package.
+
+2003-03-04 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * distutilsSwigCPlusPlus.py work around some swig portability
+        bug.
+
+2003-03-03 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * Eventually, python/gdcmPython was renamed to gdcmPython. This
+        was done in a last ditch attempt to get setup.py _really_
+        operationnal. The python/gdcmPython layaout add the advantage
+        of hidding away the python related distutils specific files
+        (MANIFEST.in, setup.py, distutils*.py...) from the main directory.
+        Alas, the src directory was out of scope (i.e. it's relative
+        position to setup.py was ../src) which made things impossible to
+        handle (see previous version of python/setup.py). Crossing fingers...
+
+2003-02-20 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * python/setup.py now works on Un*x. (harder than I thougth)
+      * python/distutilsSwigCPlusPlus.py can now have include files
+        among the list of sources.
+      
+2003-02-20 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+      * src/gdcmHeader.cxx : bug fix - opening dicom file in binary !!!
+      * modifications in MSVC projects
+
+2003-02-19 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * As stated by the first lines of Test/ExceptionAndPython/README, it
+        looks like we can move back to original usage of exception within
+        src/gdcm* and hence remove the errno stuff that was introduced
+        as a quick and dirty fixture of this problem (added to the TODO).
+      * Doc/Doxyfile configuration file for Doxygen and corresponding
+        README file for usage added.
+      * Test/testWrite.cxx added. This new test comes from a split of
+        test.cxx that is now reverted to its original purpous i.e. 
+        testing the proper parsing of a Dicom related file.
+        testWrite.cxx concentrates on testing the IO part of gdcm.
+      * Test/bug1.cxx (containing a bug on WIn32) added.
+      * src/gdcm.h, gdcmHeader.cxx, gdcmDictSet.cxx: 
+        - gdcmHeader::GetPubTagNames and  gdcmHeader::GetPubTagNamesByCategory
+          whose purpose is to publish the content of the TagNames of the
+          Dicom public dictionnary were not accessible without an
+          instance of class gdcmHeader.
+        - those methods are now static methods of gdcmDictSet and hence
+          require no instances at all to be invocated.
+        - within gdcmDictSet this change required to change some method
+          to class methods (i.e. are now static) among which SetDictPath
+          (renamed to BuildDictPath) and LoadDefaultPubDict.
+      * python/gdcmPython/demo/printGroupedPublicDict.py changed to illustrate
+        the above changes by calling the new method classes of gdcmDictSet.
+      * python/gdcmPython/__init__.py now exposes gdcm.gdcmDictSet for
+        the above to be effective.
+      * python/gdcmPython: in order to wrap properly the above changes
+        for Python, swig version now needs to be > 1.3.17.
+      * python/gdcmPython/Makefile fixed to adapt itself to new 
+        configure/make shema introduced by Johan Montagnat (thanks for the
+        contribution). Alas this Makefile cannot be turned into a proper
+        Makefile.am without some heavy changes in the configure.in
+        (for python dectection).
+      * python/gdcmPython/gdcm.i: the out typemap map<string, list<string>>*
+        now avoids publishing the empty entries.
+
+2003-02-13 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+      * python/setup.py : bug fix concerning install under windows
+        ExtraPath reused :-P
+      * gdcm.dsw : bug fix concerning path for libraries for python !!!
+
+2003-02-13 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+      * Dicts/dicomV3.dic : remove double spaces !!!
+      * src/gdcmElValSet.cxx : bug fix concerning windows compiler
+      * python/gdcmPython/win32/gdcmpycomplet.dsp : bug fix concerning paths
+        and links
+
+2003-01-28 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * src/gdcmHeader.cxx added a post header parsing AddAndDefaultElements
+        method. Doxygenation.
+      * src/gdcm.h clean up of JPR spurious comments.
+
+2003-01-17 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * python/distutilsSwigCPlusPlus.py now properly collects the
+        shadow classes generated by "swig -c++" (gdcm.py in our case)
+        when using "python setup.py install".
+      * python/gdcmPython/__init__.py imports gdcm.py and only manually
+        reexports the working classes.
+      * src/gdcmHeader.cxx all the try/catch/throw calls were replaced
+        by the classical C errno scheme. This is to prevent an obscure
+        behavior of the python wrappers when importing wxPython.wx prior
+        to gdcmPython (which ended up in an abort call). An illustration
+        of this oddity can be found in the Test/ExceptionAndPython
+        subdir (see the README file). This problem probably due to
+        an combination of g++ and dynamic loading.
+      * added Test/ExceptionAndPython (see above)
+
+2003-01-17 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * Changed the layout of the python part to avoid bloating main
+        directory with setup.py, distutilsSwigCPlusPlus.py, MANIFEST.in
+        i.e. the distutils arsenal. All the python related stuff is
+        again in a python subdir, but the package itself is now in
+        python/gdcmPython.
+      * setup.py was cleaned up:
+        - pythonIncludePath removed
+        - python setup.py bdist target is now functional.
+      * gdcmPython/__init__.py doesn't export FileName any more (to avoid
+        collision with other packages). gdcmPython/demo/*.py changed
+        accordingly.
+2003-01-15 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * python subdir moved to gdcmPython (preparation of distutils packaging).
+      * gdcmPython/setup.py and distutilsSwigCPlusPlus.py added. The
+        distutils installer is operational.
+      * - gdcmPython/__init__.py now properly loads the swig generated
+          shadow classes (from gdcm.py).
+        - gdcmPython/demo/*.py changed to import the package gdcmPython
+          instead of gdcmPython/demo/load.py.
+        - gdcmPython/testSuite.py changed to import the package gdcmPython.
+        
+
+2002-12-16 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * src/gdcm.h, src/gdcmHeader.cxx: added GetPubTagNames() resp.
+        GetPubTagNamesByCategory() to gdcmHeader that return a list of the
+        entries within the associated public Dicom dictionary resp. the same
+        information but sorted by the fourth field (PAT, IMG, DIR) of the
+        dictionary.
+        - Dicts/dicomV3.dic Entries which had and unspecified fourth field
+          are now in the "???" group.
+        - python/gdcm.i changed accordingly,
+        - python/demo/printGroupedPublicDict.py added, that gives an example
+          of the above new functionalities in Python.
+
+2002-12-11 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * src/gdcm.h, gdcmHeader.cxx:
+        - historic references to glib's g_malloc and g_free (#defined)
+          were definitively removed.
+        - gdcm.h: cosmetic changes (part of comments moved to Doc/requirements)
+      * src/gdcmElValSet.cxx:
+        - GetElement(guint32, guint32) renamed to GetElementByNumber.
+        - GetElValue(guint32, guint32) renamed to GetElValueByNumber.
+        - GetElValue(string) renamed to GetElValueByName.
+        - Added GetElementByName(string).
+      * src/gdcmHeader.cxx: added
+        - GetPubElValRepByNumber(guint16, guint16)
+        - GetPubElValRepByName(string)
+        - GetShaElValRepByNumber(guint16, guint16)
+        - GetShaElValRepByName(string)
+        - GetShaElValByNumber(guint16, guint16)
+        - GetShaElValRepByName(string)
+        - GetElValRepByNumber(guint16, guint16)
+        - GetElValRepByName(string)
+        - GetElValByNumber(guint16, guint16)
+        - GetElValRepByName(string)
+      * Doc/requirements.txt added.
+
+2002-12-9 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * Test/Makefile building now depends on the one of libgdcm.so
+      * src/gdcmHeader.cxx and gdcm.h are now OB (undefined length encoded
+        pixel data) aware which enables finding the address (offset) of 
+        the pixel data of JPEG encoded DICOM files. This leaves only a single
+        file in the testSuite whose pixel data address (offset) is unknown.
+      * python/testSuite.py changed accordingly.
+
+2002-12-6 Christophe Odet + Hugues Benoit-Cattin + Eric.Boix
+      * VC++ has some strong limitations when working with the STL, as stated
+        in http://support.microsoft.com/support/kb/articles/Q168/9/58.ASP :
+             "Also note that some STL containers (map, set, queue, list, deque)
+              cannot be exported. [...]
+              Some STL classes contain nested classes. These classes can not
+              be exported. [...]
+              This is caused by a designed limitation that once a template
+              class is instantiated, it can not be re-instantiated and
+              exported."
+        Since our usage of map<> is ubiquitous in gdcm, this "designed
+        limitation" of VC++ is a pitfall.
+        Hence the Python wrappers of gdcm cannot be incrementally linked 
+        against the c++ dynamic library. The dirty but only workaround is
+        to forget about incremental link of dynamic libraries and to generate
+        the Python wrappers library with the inclusions of the underlying C++
+        library. 
+        The following modifications concern this matter on Win32/VC++:
+      - wrapping python correct with standalone wrapped dll (don't use separate
+         dll under windows !!!!)
+      - python21_d debug mode enabled (ask Frog how to use it :-)
+      - NO problem with having an STL member of class for example string in C++
+        WITH THE RESTRICTION OF FORGETING ABOUT INCREMENTAL LINK.
+      - Python test of dcmlib in Python is ok under windows on a large set 
+        (one) of image(s).
+      * removed glib references
+      * typedef's inserted in gdcm.i for correct swig type management
+
+2002-11-27 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * python/demo/*.py load.py extracted from test.py. Added explore.py
+        that only displays required tags and testAll.py that parses all
+        the files of the testsuite without using unittest.
+      * python/testSuite.py other additional test on new files added.
+      * Data/* new test files added accordingly to the testSuite.
+      * src/gdcmHeader.cxx avoid overwriting of the dictionary when
+        the vr in the file differs from the one of the dictionary.
+
+2002-11-20 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * src/gdcm.h and gdcmHeader.cxx gdcm no longer loads all the elements
+        values, but limits itself to values which are below a user specified
+        size (by default 1024 bytes).
+      * python/gdcm.i : elements not loaded (because their size is above the
+        user specified treshold) are exported with their TagKey as key of the
+        python dictionary. This enables the testsuite to make some checks
+        on the unloaded elements (since we have their offset and size).
+      * python/testSuite.py
+        - now tests for the existence and proper value of the pixel data
+        - two new examples added.
+      * Data/gdcm-MR-SIEMENS-16.acr[12] added.
+
+2002-11-18 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * src/gdcm.h and gdcmHeader.cxx are now "Big Endian transfer syntax"
+        aware. See the strategy comments in gdcmHeader::FindeLength().
+      * Test/test.cxx now accepts a filename as first argument.
+      * Data/US-PAL-8-10x-echo.dcm and US-RGB-8-epicard.dcm added.
+      * python/testSuite.py changed to integrate test on above files.
+
+2002-11-15 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * Dicts/dicomV3.dic removed all the trailing (RET) when the
+        the vr was also RET.
+      * python/testSuite.py more tests added.
+
+2002-11-14 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * python/testSuite.py unittest test suite added (uses Data)
+      * Data/* dcm and acr files for the test suite.
+      * glib dependance removed from un*x version. We now use ISO C99
+        7.18 Integer types (see stdint.h)
+        - python/Makefile, src/Makefile src/gdcm.h
+      * src/ when an explicit vr (like dicom files) suddenly poped an
+        implicit element we use to mark the underlying DictEntry of the
+        concerned ElValue with "Implicit". This strategy was damageable
+        too the public or provite dictionaries, since some of their vr
+        would be changed. Since Header::FindLength heavily relies on the
+        detection by Header::FindVR of falsely explicit elements, I
+        added an extra ImplicitVr member to ElValue (boolean).
+        The rest of the changes we the necessary adaptations.
+
+2002-11-12 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * src/gdcmHeader::FindLength bug fix when trapping falsely explicit
+        VR files.
+      * src/gdcmHeader::FindVR: hard way fix of falsely explicit vr files.
+
+2002-11-8 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * Adaptation for porting to VC++:
+        - src/gdcm.h
+          o forced to use std namespace (for string to be known)
+          o all class use __declspec export style on WIN32
+        - src/gdcmUtil.cxx new Exit method that wraps the exit call
+          (in stdlib.h on Win32 but in std:: for gcc)
+      * src/gdcmDictSet::SetDictPath adds a trailing / to environement
+        variable GDCM_DICT_PATH.
+      * src/gdcmHeader.cxx verbose comments made discrete.
+
+2002-11-7 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * python/gdcm.i: added a typemap that converts a C++ hashing table
+        to native Python dictionary.
+      * python/demo/test.py:
+        - now uses the native dictionary for exploration of gdcmHeader.
+        - takes an optional filename argument (the file to parse).
+      * src/gdcm.h and gdcmHeader.cxx: gdcmHeader now has an accessor on
+        PubElVals hashing table. 
+      * Dicts/dicomV3.dic removed error prone trailing spaces.
+
+2002-11-6 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * Python wrapping process moved away from src/Makefile to
+        newly created python/Makefile (as well as gdcm.i)
+      * python/demo/test.py (that mirrors Test/test.cxx) is effective.
+      * src/gdcmHeader::FindLength only looks for current vr when necessary.
+      * src/gdcmDictSet.cxx: the dictionnaries directory path is now imported
+        from the environement variable GDCM_DICT_PATH (when existing).
+      * src/gdcmDict::GetTag bug fix.
+
+2002-10-31 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * Straightforward temporary fixes for swig to build the python wrappers.
+        src/Makefile now has a python working entry [by working we mean
+        that we can import de shadow classes without errors].
+
+2002-10-29 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+      * hashtest.cxx removed (since allready in Test)
+      * src/gdcmlib.h renamed to src/gdcm.h
+      * src/dcm.i renamed to src/gdcm.i
+      * src/Makefile prepared for python wrapping
+
 2002-10-29 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
       * src/gdcmHeader.cxx :
         - Parsing of header is now separated from loading of element values