+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
+ (see gdcmHeader::LoadElements).
+ - general clean up of hopefully all file access (creation of
+ ReadInt16 and ReadInt32)
+
+2002-10-22 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmHeader.cxx :
+ - RecupLgr renamed to FindLength and cut off with new IsAnInteger
+ method.
+ - SetLgrElem renamed to SetLength
+ - GetLgrElem renamed to GetLength
+ - ~gdcmHeader() made virtual to pesky warning messages at compile.
+ * src/gdcmElValSet.cxx fixed both GetElValue methods
+ * Dicts/dicomV3.dic falacious entry [7fe0 0010 OT PXL Pixel Data]
+ due to IdoDude was cleaned out.
+
2002-10-21 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
* src/gdcmHeader.cxx RecupLgr split in FindVR and RecupLgr. FindVR
concentrates on finding the value representation (when it exists).