+2004-06-18 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Valgrind note: after Mathieu Malaterre teached me how to read
+ the valgrind FAQ ;-] (see http://valgrind.kde.org/faq.html), I
+ learned that:
+ Using gcc, you can force the STL to use malloc and to free memory as
+ soon as possible by globally disabling memory caching.
+ With 3.2.2 and later, you should export the environment variable
+ GLIBCPP_FORCE_NEW before running your program.
+ By setting GLIBCPP_FORCE_NEW, STL related memory leak messages of gdcm
+ simply vanish (it is still not clear to me, whether this means that
+ STL std::string leaks or if valgrind believes it leaks...).
+ * Fixing of SegFault of Test/makeDicomDir (as shown by ctest or by
+ running bin/gdcmTests makeDicomDir):
+ - src/gdcmDicomDir.cxx: dynamic casting used + clean up.
+ - Test/makeDicomDir.cxx now properly traps empty lists and returns
+ with 1.
+ NOW, makeDicomDir cleanly fails (in ctest terminology) instead of
+ SegFaulting (I drowned in DicomDir related code when trying to
+ understand why the list is empty...).
+ * src/gdcmDocument.h: first BSD license header try.
+ * Doc/License.txt added.
+
+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 pattern (SetFilePattern)
+ 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
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...
+ 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)
+ (this was not true before)
2004-04-28 Jean-Pierre Roux
* ENH add the provisional gdcmHeader::SQDepthLevel to allow