-2002-10-7 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+2003-03-24 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmHeader.cxx gdcmHeader::gdcmHeader now calls LoadElements(),
+ hence the user doesn't need this explicit call.
+ - gdcmPython/testSuite.py, gdcmPython/demo/*.py changed accordingly
+ i.e. LoadElements() call removed.
+ * src/gdcmCommon.h now defines UINT32_MAX (see stdint.h).
+ - src/Makefile.am declares the proper flag for g++.
+ * src/gdcmElValSet.h added gdcmElValSet::GenerateFreeTagKeyInGroup
+ for adding user defined new tags.
+ - src/gdcmHeader.cxx gdcmHeader::NewManualElValToPubDict added.
+ - src/gdcmHeader.cxx gdcmHeader::AddAndDefaultElements now
+ cleanly adds some gdcm added tags (like gdcmXSize, gdcmYSize...)
+
+2003-03-17 Fabrice Bellet <Fabrice.Bellet@creatis.insa-lyon.fr>
+ * Makefile.am, acinclude.m4, configure.in, python.m4, Dicts/Makefile.am,
+ Doc/Makefile.am, Test/Makefile.am, gdcmPython/Makefile.am,
+ src/Makefile.am : the project should properly compile and install
+ with the autotools, included the python wrappers part.
+ * gdcm.spec.in : added a spec file for RPM packaging.
+
+2003-03-14 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmUtils.cxx : redifinition of defaults parameters in code
+
+2003-03-12 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * gdcmPython/__init__.py fix of GDCM_DICT_PATH which was not
+ to exported to the environement (see gdcmPython/testSuite.py
+ for usage).
+ * src/gdcmElValSet.[cxx/h], gdcmElValue.[cxx/h], gdcmFile.[cxx/h],
+ gdcmHeader.[cxx/h]: ElValSet class renamed to gdcmElValSet, and
+ ElValue class renamed to gdcmElValue for obvious consistency reasons.
+ * src/gdcmElValSet.cxx, src/gdcmUtil.[cxx-h] Tokenize utility function
+ moved away from gdcmElValSet.cxx to gdcmUtil.cxx.
+
+2003-03-10 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * gdcmPython/__init__.py doesn't crash anymore when running in
+ in InstallMode or PreInstallMode but with an environement given
+ value of GDCM_DICT_PATH.
+ * src/gdcmDictSet.[cxx/h] coding style.
+
+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
+ (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).
+ RecupLgr now only finds the element value length, and it avoids
+ returning the unecessary skL (skipped length).
+ Also, offsetCourant was simply removed (with taille_fich) since
+ it was redundant with the File position internals (by using
+ ftell and fseek). This also made skL (see above in RecupLgr) usage
+ jajun.
+ * src/gdcmHeaderIdo.cxx src/gdcmIdo.h added. Those files concentrate
+ on the libido specificities which are handled through class
+ inheritance.
+ * Test/implicit_vr.dcm dicom v3 in implicit value representation
+ added.
+
+2002-10-17 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
* Truckload of changes. Parsing of header is barely functional
(see Test/test) with the standard dictionary (see Dicts/dicomV3.dic).