+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
+ * ADD : Test/checksequence.sh, for a general recap on SQ pb
+ * FIX : gdcmParser::WriteEntryTagVRLength emprovement of special treatement
+ for Philips spurious Tag fffe|0000 while rewritting Dicom files
+
+2004-03-30 Jean-Pierre Roux
+ * FIX gdcmParser::ReplaceOrCreateByNumber shouldn't seg fault any more
+ for ACR file, written out as DICOM files (hope so...)
+
+2004-03-30 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmParser.[cxx|h] and gdcmHeader.[cxx.h]: gdcmHeader::Write split
+ in WriteEntryTagVRLength and WriteEntryValue. Those methods were
+ moved to base class gdcmParser and only the specialisation is kept
+ in gdcmHeader.
+ * src/gdcmParser.[cxx|h]: ReplaceOrCreateByNumber(char*, guint16, guint16)
+ trashed out (because ReplaceOrCreateByNumber(string, guint16, guint16)
+ already does the job.
+ * src/gdcmDicomDir.[cxx|h]: WriteDicomDirEntries renamed to WriteEntries
+ (to be consistent with gdcmParser::WriteEntries).
+
+2004-03-30 Benoit Regrain
+ * vtk/vtkGdcmReader.[h|cxx] : fix the read of 3 gdcmHeader when making an
+ upate of the object's instance. It's passed to 2 in the unfavorable
+ case : one in the ExecuteInformation, one in the ExecuteData
+
+2004-03-29 Jean-Pierre Roux
+ * ENH : Check on file type to be written moved
+ from gdcmParser::WriteEntry to gdcmParser::WriteEntries
+ * FIX : gdcmObject::ResetBoundaries now stops properly
+ when end-of-list is reached
+ : gdcmVersion modified (as Benoit Regrain asked)
+
+2004-03-29 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmParser.cxx: removal of all TAB character. Indentation fixed.
+ * src/gdcmUtil.cxx: added forgotten iostream include.
+ * src/gdcmCommon.h: FileType enum entry DICOMDIR removed (since
+ equivalent to ExplicitVR in existing code).
+
+2004-03-27 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmUtil.[cxx|h] split in two. Additional file gdcmGlobal.[cxx|h]
+ now contains all the gdcmGlobal related code.
+ * minor coding style and doxygenation changes.
+
2004-03-26 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
* src/gdcmUtil.[cxx|h] split in two. Additional file gdcmDebug.[cxx|h]
now contains all the Debug related code.
* minor clean-up of includes in src/*.cxx
+ * src/gdcmUtil.[cxx|h] _cleanString C style function (replaced with
+ CreateCleanString) removed.
+ * src/gdcmUtil.[cxx|h] _CreateCleanString renamed to CreateCleanString
+ * Doc/DoxyMainPageUser.txt added.
+ * Doc/Doc/DoxyfileUsers updated to version 1.3.4 of Doxygen.
+ * src/gdcmCommon.h now defines getcwd for Win32 (moved away from
+ src/gdcmDirList.cxx)
2004-03-24 Jean-Pierre Roux
* FIX a lot of little surface modifications to be doxygen 1.3.6 compliant
2004-03-23 Jean-Pierre Roux
- * FIX Now gdcmFile::SwapZone doesn't seg faults any longer for
+ * FIX Now gdcmFile::SwapZone doesn't seg faults any longer for
big endian made volumes
- * ENH Now gdcmParser constructor and destructor are protected to forbid
+ * ENH Now gdcmParser constructor and destructor are protected to forbid
end user to instanciate class gdcmParser
(only gdcmHeader and gdcmDicomDir are meaningfull)
of gdcmDicomDirImage::NewImage as empty function.
2004-02-28 Jean-Pierre Roux
-<<<<<<< ChangeLog
* ENH add gdcmDicomDir:NewPatient
add gdcmDicomDirPatient:NewStudy
add gdcmDicomDirStudy:NewSerie
* 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>