+Mon Oct 18 10:27:49 2005 by regrain
+ * Correctly use the VRKey for all vr variables... instead of TagName
+ or std::string
+ * Replace the definition of VRKey from std::string to a class
+ containing a char[2]. All methods are inline to have no speed low
+ * Create the GDCM_VRUNKNOWN = " " for the VR values
+
+Mon Oct 18 10:27:49 2005 by regrain
+ * Remove useless constructor of gdcm::Document
+ * Remove useless parameter in the constructor of gdcm::ElementSet
+ * Split gdcmCommon to separate the System specifications to the gdcm
+ specifications
+
+Mon Oct 18 10:27:49 2005 by regrain
+ * Minor coding-style clean up
+ * Replace the ContentEntry and its derived classes (BinEntry and ValEntry)
+ by the DataEntry. This unique entry considers all datas like binary datas.
+ Some methods are added to interpret - at fly - the binary datas.
+ Due to this important change, some methods of the DocEntrySet, concerning
+ the BinEntry and ValEntry classes, are erased ; and new methods for the
+ DataEntry class are created.
+ Some methods to set the ValEntry or the BinEntry are renamed to
+ correspond to the new DataEntry, like for example :
+ - SetValEntry -> SetEntryString
+ - SetBinEntry -> SetEntryBinArea
+ This change will remove all useless creation of the string when working
+ directly on values.
+
+Thu Aug 25 16:59:49 2005 by jpr
+ gdcmBinEntry.cxx
+ Now Print displays the BinEntry Content (if it's printable, and loaded)
+ Usefull for a lot od Implicit VR 'Bin'Entry (if we knew there VR, they wouldn't
+ be Bin ...)
+ Appreciate the difference having a look at PrintFile result for
+ gdcmData/SIEMENS_MAGNETOM-12-MONO2-FileSeq0.dcm.
+
+Thu Aug 25 16:55:47 2005 by jpr
+ gdcmUtil.cxx
+ Add methods to check the 'printability' of a bin area
+
+Thu Aug 25 15:45:40 2005 by jpr
+ gdcmBinEntry.cxx
+ According to Mathieu's suggestion, Print now display FL BinEntries in a human
+ readable form
+
+Thu Aug 25 15:12:43 2005 by jpr
+ gdcmDocEntry.cxx
+ According to Mathieu's suggestion, *all* the elements 0x000
+ are now named 'Group Length' (even if they belong to a Shadow Group')
+
+Wed Aug 24 14:09:13 2005 by jpr
+ gdcmDocEntry.cxx,h, gdcmDocEntrySet.cxx,h
+ Removal of QD patch for Private Sequence + Immplicit VR.
+ Add a clean solution (Backtracking if an Item Starter is found
+ out of any SQItem)
+
+Tue Aug 23 14:57:49 2005 by jpr
+ gdcmDocument.cxx
+ Brutal patch, waiting till we find a clever way to guess
+ if a doc entry is a Sequence,
+ - when it's odd number
+ - and the file is Implicit VR Transfert Syntax
+It solves temporarily some Philips Medical Systems image problems
+
+Mon Aug 22 18:17:54 200 by jpr
+ gdcmUtil.cxx
+ Save a *few* microseconds at run time : inline method Util::GetVersion()
+ ;-)
+
+Tue Aug 23 14:58:49 2005 by jpr
+ gdcmSeqEntry.cxx, gdcmDocEntry.cxx
+ Improve 'Print' methods
+
+Sat Aug 20 11:10:24 2005by jpr
+ TestWriteSimple.cxx
+ Use new style FileHelper contructor
+
+Sat Aug 20 11:04:50 2005 by jpr
+ gdcmFileHelper.cxx
+ FileHelper::Initialize() doesn't call GrabInformationFromFile(),
+ in order not to do the job twice when using new style FileHelper Constructor.
+
+Fri Aug 19 18:31:07 2005 by malaterre
+ gdcmCommon.h
+ ENH: Provide a GetVersion function, apparently need for python
+
+Fri Aug 19 15:12:15 2005 by jpr
+ gdcmFileHelper.cxx
+ Initialize UserFunction pointer to 0, even for 'deprecated' form
+ of constructor.
+
+Sat Jul 30 20:27:00 2005 by jpr
+ gdcmFileHelper.cxx, gdcmPixelReadConvertor.cxx
+ User is now allowed to pass a Pointer to a function of his own
+ to allow modification of pixel order (i.e. : Mirror, TopDown, )
+ to gdcm::FileHeleper, using SetUserFunction(userSuppliedFunction)
+ described as : void userSuppliedFunction(uint8_t *im, gdcm::File *f);
+ NB : the "uint8_t *" type of first param is just for prototyping.
+ User will Cast it according what he founds with f->GetPixelType()
+ See ctkgdcmSerieViewer for an example
+
+Sat Jul 30 20:13:24 2005 by jpr
+ gdcmSerieHelper.cxx
+ Add SerieHelper::IsCoherent() method to allow checking that the files with same
+ Serie UID have the same sizes and pixel type.
+
+Fri Jul 29 17:07:16 2005 by jpr
+ gdcmSerieHelper.cxx
+ User may now use
+ SetSortOrderToDirect() or SetSortOrderToReverse()
+ to choose the ways the File* will be sorted.
+
+Thu Jul 21 06:55:50 2005 by jpr
+ AnonymizeDicomDir.cxx, AnomymizeNoLoad.cxx, PrintFile.cxx, PrintDicomDir.cxx
+ Unify user interface
+
+Thu Jul 21 06:55:30 2005 by jpr
+ exSerieHelper.cxx
+ Add an example of use for SerieHelper
+
+Thu Jul 21 07:00:15 2005 by jpr
+ gdcmSerieHelper.cxx
+ Extend 'Restriction' syntax :
+ void SerieHelper::AddRestriction(uint16_t group, uint16_t elem,
+ std::string const &value, int op)
+ op belongs to :
+ /// \brief comparaison operators
+ enum CompOperators {
+ GDCM_EQUAL = 0,
+ GDCM_DIFFERENT,
+ GDCM_GREATER,
+ GDCM_GREATEROREQUAL,
+ GDCM_LESS,
+ GDCM_LESSOREQUAL
+ };
+
+Wed Jul 20 15:39:00 2005 by jpr
+ AnonymizeNoLoad.cxx
+ AnonymizeNoLoad user can now ask for anonymization of 'BinEntries'
+ (e.g. Private entries when the TS is Implict VR)
+ AnonymizeNoLoad filein=... rubout=0x0009-0x0001,0x0013-0x1100
+ Thx to Luca Picello for reporting pb and supplying data to fix the bug.
+
+Wed Jul 20 16:49:41 2005 by jpr
+ gdcmFile.cxx
+ Use GDCM_LEGACY for DicomDir, as well
+
+Wed Jul 20 15:31:01 2005 by jpr
+ gdcmFile.cxx
+ We can now anonymize 'BinEntries' as well
+
+Wed Jul 20 15:29:42 2005 by jpr
+ gdcmArgMgr.cxx
+ Add ArgMgrGetXInt16Enum to decode from the command line pairs of unsigned int
+ 16, written in hexadecimal.
+ (usefull to allow terminal user to pass the (private) elements he wants to
+ anonymize)
+
+Tue Jul 19 17:25:53 2005 by jpr
+ gdcmFile.cxx
+ Add some comments on the 'Patient Position'
+
+Tue Jul 19 11:04:58 2005 by jpr
+ gdcmSerieHelper.cxx
+ Add SerieHelper::AddGdcmFile(File *header) method.
+ * \brief add a gdcm::File to the first (and supposed to be unique) list
+ * of the gdcm::SerieHelper.
+ * \warning : this method should be used by aware users only!
+ * User is supposed to know the files he want to deal with
+ * and consider them they belong to the same Serie
+ * (even if their Serie UID is different)
+ * user will probabely OrderFileList() this list (actually, ordering
+ * user choosen gdm::File is the sole interest of this method)
+ * Moreover, using vtkGdcmReader::SetCoherentFileList() will avoid
+ * vtkGdcmReader parsing twice the same files.
+ * *no* coherence check is performed, but those specified
+ * by SerieHelper::AddRestriction()
+
+Mon Jul 18 12:20:20 2005 by jpr
+ gdcmCommon.cxx
+ In order to prepare the future extension of SerieHelper::AddRestriction (key,
+ string, operator)
+ operator = { EQUAL, DIFFERENT, LESS, LESSOREQUAL, GREATER, GREATEROOREQUAL}
+ add method
+ bool Util::CompareDicomString(const std::string &s1, const char *s2, int op)
+
+Sun Jul 17 06:27:49 2005 by jpr
+ gdcmSerieHelper.cxx
+ Use new style for Loading files
+
+Tue Jul 12 19:08:12 2005 by jpr
+ gdcmCommon.cxx, gdcmSQItem.cxx
+ To speed up DicomDir, instead of copying -and removing the source afterwards-
+ each entry of the SQItem (found after gdcm::Document parsing) towards
+ the gdcm::Object belonging to the gdcm::DicomDir, we just copy
+ the chained list itself.
+
+Tue Jul 12 16:55:43 2005 by jpr
+ AnonymizeNoLoad.cxx
+ AnonymizeNoLoad has now one more option :
+ dirin=
+ to give the (single Patient) directory name whose content we want to anonymize.
+
+Mon Jul 11 10:20:25 2005 by jpr
+ gdcmDicomDirStudy.cxx
+ Reorder methods
+
+Fri Jul 8 21:07:12 2005 by jpr
+ gdcmDicomDir...
+ Add the VISIT object within DicomDir
+
+Fri Jul 8 12:15:08 2005 by jpr
+ gdcmDicomDir...
+ Use new style for DicomDir loading
+
+Fri Jul 8 16:36:48 2005 by jpr
+ gdcmFileHelper.cxx
+ To remain unimpared, gdcm::FileHelper class needs also its
+ void FileHelper::SetLoadMode(int loadMode)
+ void FileHelper::SetFileName(std::string const &fileName)
+ bool FileHelper::Load()
+
+Thu Jul 7 19:31:53 2005 by jpr
+ Example/*.cxx
+ Begin of kosherization of Example
+ New 'gdcm2' style.
+
+Thu Jul 7 18:37:40 2005 by jpr
+ gdcmDocument.cxx
+ On the way to gdcm2 ...
+ Now, the stand way to use a file is :
+ gdcm::File *f = new gdcm::File();
+ f->SetLoadMode ( user say here what he wants *not* to load );
+ f->SetFileName("myFile.gdcm");
+ f->Load();
+ Old styles are kept, not to break the C++ API.
+ - gdcm::File *f = new gdcm::File("myFile.gdcm");
+ - f->Load("myFile.gdcm");
+ Due to the syntaxic abilities of Python maybe some troubles will occur
+ (not sure ...)
+
+Thu Jul 7 15:55:39 2005 by jpr
+ gdcmDocument.cxx
+ Comment out the time consuming, never used/useless
+ 'Extended tag' stuff for Sequence embedded Entries
+
+Thu Jul 7 15:11:38 2005 by jpr
+ gdcmDocument.cxx
+ Move code lines LTTG so save some CPU time.
+ (hope so)
+
+Tue Jun 7 13:12:10 2005 CEST by jpr
+ Example/*.cxx
+ Use Argument Manager in 'utilities'
+
+Thu Jul 7 12:12:32 2005 by jpr
+ gdcmFile.cxx
+ Due to something stupid in the gdcm::File constructor, the file was parsed
+ twice when we used old style, e.g :
+ gdcm::File *f = new gdcm::File(fileName);
+ instead of new style, e.g. :
+ gdcm::File *f = new gdcm::File( );
+ f->SetLoadMode ( choose what you want *not* to load here );
+ f->Load( filename );
+
+Wed Jul 6 11:53:43 2005 by jpr
+ TestAllReadCompareDicom.cxx, TestReadWriteReadCompare.cxx
+ Now TestAllReadCompareDicom.cxx TestReadWriteReadCompare.cxx accept a third
+ param, in order not to have to recompile to gdcm::Debug::DebugOn().
+
+Wed Jul 6 17:18:42 2005 by jpr
+ gdcmDocument.cxx
+ According to Mathieu's requirement, Load twice the same file keeps the rseult of
+ the first Load (instead of doing it twice)
+
+Wed Jul 6 11:25:12 2005 by jpr
+ gdcmDocument.cxx
+ - Clean out the Entries if a Document is parsed more than once
+ - Uncomment (usefull) warning messages
+
+Wed Jul 6 10:42:33 2005 by jpr
+ gdcmDocument.cxx
+ - Comment out a for the moment too much verbose warning message.
+ - Delay some statement as late as possible, to save some CPU time when they're
+ useless
+
+Wed Jul 6 13:01:08 2005 by jpr
+ gdcmFile.cxx
+ Now gdcmFile::Load() returns false if file is not gdcm parsable
+ Only gdcmDocument::Load() did it, before.
+ Thx to Benoit for reporting bug
+
+Sun Jul 3 14:42:04 2005 by jpr
+ gdcmDocument.cxx
+ Should avoid some troubles with 'no length' SQItems within 'true length'
+ Sequences.
+ Thx to Loic Boussel for providing data to fix the bug.
+
+Sun Jul 3 14:42:04 2005 by jpr
+ gdcmDocument.cxx
+ Should avoid some troubles with 'no length' SQItems within 'true length'
+ Sequences.
+ Thx to Loic Boussel for providing data to fix the bug.
+
+Sun Jul 3 14:47:23 2005 by jpr
+ gdcmSQItem.cxx
+ Enh warning message
+
+Fri Jul 1 13:25:51 2005 by jpr
+ gdcmPixelReadConvert.cxx
+ Initialize RLEInfo and JPEGInfo to 0 a avoid further problems
+ (e.g. PrintFile on a DICOMDIR document)
+
+Thu Jun 30 16:49:02 2005 by jpr
+ gdcmFile.cxx
+ Enhance gdcm::File::IsReable() heuristics to be able to process some Loic
+ Boussel's Hall of Shame Dicom images
+
+Wed Jun 29 17:58:33 2005 by jpr
+ gdcmDocument.cxx
+ Add the NO_SHADOWSEQ load mode
+
+2005-06-26 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Quite a few new dictionaries were added in gdcm. The file:
+ gdcm/Dict/README should always explain were the info was found
+ (in case of double check). Also some dict are still only
+ express as 'template' (they contain 'xx'), therefore
+ a python script should be run first to generate a full dict.
+ In the longer term this python script should be replaced by
+ a cmake script.
+
+2005-06-25 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * dicomV3.dic is deprecated in favor of gdcm.dic
+ There is now a dictionary per family:
+ - dicomV3.dic -> DICOM V3
+ - Papyrus.dic -> Papyrus
+ - NIH.dic -> tags that were never allowed in the main standard
+
+Fri Jun 24 12:50:20 2005 CEST by jpr
+ gdcmFile.cxx
+ Pixel Spacing related problems : update comments.
+ Thx to D. Clunie for providing data to check the code
+
+Fri Jun 24 12:55:58 2005 by jpr
+ Summer nights are really too hot to sleep.
+ Coding style : kosherization of all the 'if's (300 amongst 900 were haram)
+
+Thu Jun 23 11:20:23 2005 by jpr
+ gdcmDocument.cxx
+ Extend warning message, for debugging purpose
+
+Wed Jun 22 10:11:23 2005 by jpr
+ gdcmFile.cxx
+ Coding Style
+
+Wed Jun 22 10:00:29 2005 by jpr
+ gdcmPixelReadConvert.cxx
+ Fix misstyping, while removing spurious \t characters
+
+Wed Jun 22 09:52:32 2005 by jpr
+ gdcmPixelReadConvert.cxx
+ Some constructors (at least one ...) use BitsAllocated =! BitsStored for
+ negative Pixels.
+ That break at lot of viewers ...
+ We now *propagate the sign bit* upon the unused ones, better than masking them
+ out.
+ Thx to Luca Picello for profiding data to fix the bug
+
+Wed Jun 22 09:53:52 2005 by jpr
+ gdcmFileHelper.cxx
+ gdcm images are now "GDCM 1.1" built.
+
+Mon Jun 20 19:10:17 2005 by jpr
+ gdcmFileHelper.cxx
+ Avoid re writing Palette Color Lookup Table UID when Palette Color is removed
+
+Mon Jun 20 17:58:53 2005 by jpr
+ gdcmDocument.cxx
+ Preventive bug fix for LUT Data.
+ I said : LUT Date, *not* Palette Color
+
+Sun Jun 19 17:57:29 2005 by jpr
+ gdcmDocumentcxx
+ To avoid warnings at compile time
+
+Fri Jun 17 14:27:52 2005 by jpr
+ gdcmRLEFrames.cxx
+ Try to solve RLE pb
+
+Fri Jun 17 14:36:07 2005 by jpr
+ gdcmDocument.cxx
+ Add comments
+
+Fri Jun 17 14:35:00 2005 by jpr
+ gdcmFileHelper.cxx
+ Add some accessors for debugging purpose
+
+Tue Jun 14 15:56:41 2005 by jpr
+ gdcmPixelReadConvert.cxx
+ Now gdcm deals with 16 bits per pixel images with 16 bits Palette colors
+ (3 * 65536 short int ...)
+ Nice fat header.
+ "Segmented Palettes" pb still pending, but I never saw any viewer dealing with it.
+
+Mon Jun 13 17:43:48 2005 by jpr
+ gdcmPixelReadConvert.cxx
+ Some more oddities dealt with.
+ Doesn't work yet with 65536 entries 16 Bits LUT (?!?), with 16 bits pixels.
+ Still looking for accurate info on the web about it
+
+Fri Jun 10 16:05:38 2005 by jpr
+ gdcmDocument.cxx
+ Bug fix in Load method.
+ Thx to Benoit for providing fix.
+2005-06-08 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmUtil.cxx : change call to Util::Format to sprintf because of
+ lantency with the Util::Format function
+
+Tue Jun 7 15:48:35 2005 by jpr
+ gdcmUtil.cxx
+ The highy time consuming method GetMacAdress is now called just once
+
+Tue Jun 7 11:58:29 2005 by jpr
+ gdcmDicomDirElement.cxx
+ Use TranslateToKey better than Format
+
+Tue Jun 7 12:07:20 by jpr
+ gdcmDictEntry.cxx
+ Remove some spurious calls to Format
+ // according to 'Purify', TranslateToKey is one of the most
+ // time consuming methods.
+ // Let's try to shorten it !
+
+Mon Jun 6 14:37:58 2005
+ class ArgMgr (for Arguments Manager) is designed for
+ command line arguments management
+ (to make programmer's live easier)
+ (could be used for any kind of 'command line program')
+
+2005-06-07 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Adding users file in CVSROOT for mail blaming
+
+2005-06-04 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Adding potential support for JPEG-LS DICOM files.
+
+Fri Jun 3 18:05:23 2005 by jpr
+ gdcmDocument.cxx
+ Fix VR processing, to be CP-288 conform.
+ Now we can parse any kind of DICOM SR.
+
+Fri Jun 3 11:05:15 2005 by jpr
+ gdcmDocument.h
+ Doxygenation
+
+Thu Jun 2 15:42:18 2005 by jpr
+ gdcmDocument.cxx
+ Add warning about Load Mode
+
+Thu Jun 2 16:20:14 2005 by jpr
+ gdcmFile.cxx
+ Harden gdcm::File::IsReadable(), in order not to be confused any longer
+ by lost of Pixel Element
+
+Fri May 27 12:51:00 2005 by jpr
+ gdcmFileHelper.cxx
+ To avoid pushing out twice the meta elements, wile trying to write 'ACR-NEMA-
+ style.
+ And avoid some memry leaks -hope so-
+
+Wed May 25 14:54:17 2005 by jpr
+ gdcmDocument.cxx
+ Should avoid some memory leaks
+
+2005-05-22 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Adding potential support for mpeg and jpeg2000 through two new lin
+ - JasPer for JPEG2000
+ - libmpeg2 from the MPEG consortium
+ Also adding intial work to use this lib.
+
+Fri May 20 10:27:55 2005 by jpr
+ gdcmFileHelper.cxx
+ To avoid warning.
+ (this time, it's wasn't dangerous at run time)
+
+Thu May 19 17:31:21 2005 by jpr
+ gdcmFileHelper.cxx
+ FIX possible troubles when checking
+ 'Hight Bit Position' vs 'Bits Allocated' and 'Bits Stored'
+ Thx to Mathieu for reporting bug
+
+Wed May 18 12:12:07 2005 by jpr
+ gdcmDocument.cxx
+ Fix : now dcm deals with 'No preamble', Big Endian Explicit VR group 0002.
+ Thx to Dennis Hu for providing a sample image to fix the bug.
+
+Tue May 17 14:44:09 2005 by jpr
+ gdcmFile.cxx
+ ENH : According to David Clunie's advice, we check now 'Imager Pixel Spacing'
+ before 'Pixel Spacing', when we want to get X or Y Spacing.
+
+Tue May 17 19:10:49 2005 by jpr
+ gdcmFileHelper.cxx
+ ENH : Now, FileHelper::CheckMandatoryElements() makes some consistency checking,
+ at LTTG (Least Time To Go)
+ around Bits Allocated, Bits Stored, High Bit Position,
+ to avoid unaware user to mess up the stuff.
+
+Tue May 3 11:43:04 2005 by jpr
+ gdcmDicomDir.h, .cxx
+ Load returns now a bool (allow user not to call IsReadable() )
+
+Tue May 3 11:51:06 2005by jpr
+ gdcmFileHelper.cxx
+ Now the gdcm::File remains unimpaired after writting, in any case
+
+Fri Apr 29 17:10:55 2005by jpr
+ gdcmDocument.cxx
+ Don't abort the prog when File not open
+
+Wed Apr 27 12:00:35 2005 by jpr
+ gdcmFile.cxx
+ Removal of now useless lut-related stuff
+
+Wed Apr 27 11:52:27 2005 by jpr
+ gdcmFile.cxx
+ Pb of 'Bits Allocated = 12' is now dealt with in
+ FileHelper::CheckMandatoryElements, no longer in File::Write.
+ Thx to Mathieu for reporting bug.
+
+2005-04-26 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Testing/TestAllReadCompareDicom.cxx : update the test printed results and
+ description.
+
+Tue Apr 26 18:18:23 2005 by jpr
+ gdcmDocument.cxx
+ Should leave gdcm::Document constructor in a much quicker
+ and much cleaner way when anything wrong occurs.
+
+Tue Apr 26 18:25:49 2005 by jpr
+ gdcmPixelReadConvert.cxx
+ Prepare MPEG Dicom encapsulated processing (within a loooong future)
+
+Fri Apr 22 14:59:58 2005 by jpr
+ gdcmDocument.cxx
+ Modify Print() output
+
+Fri Apr 22 15:37:57 2005 by jpr
+ gdcmTS.cxx
+ Prepare (future) MPEG integration
+
+Thu Apr 21 09:40:00 2005 by jpr
+ gdcmTS.cxx
+ Taking into account Dicom MPEG
+
+2005-04-20 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * FIX : Numerical exception on borland (cannot divide by 0, doh !)
+ But this is a case where we should really signify the user there is
+ few chance the serie is really a serie...
+
+2005-04-20 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * FIX : on X, the python part is correctly installed. All files are
+ installed in gdcm sub-directory
+
+Tue Apr 19 11:58:19 2005 by jpr
+ gdcmDocEntry
+ Should suppress some warnings from Borland compiler
+
+2005-04-19 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Builder/ : add something to facilitate the RPM creation of gdcm
+
+2005-04-15 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Fix gdcmDirList::IsDirectory. Apparently borland did not like the ending
+ '/'
+ * Also fix compilation on gcc 3.3.5 does not have ios::failure either ...
+
+Thu Apr 14 16:26:19 2005 by jpr
+ gdcmDicomDir.h, .cxx
+ Now, user can ask gdcm::DicomDir to skip SeqEntries or shadow groups, when
+ possible :
+ // Old style (still available) :
+ dcmdir = new gdcm::DicomDir(dirName, true);
+
+ // new style (user is allowed no to load Sequences an/or Shadow Groups)
+ dcmdir = new gdcm::DicomDir( );
+ dcmdir->SetParseDir(true);
+ dcmdir->SetLoadMode(NO_SEQ | NO_SHADOW);
+ dcmdir->Load(dirName);
+
+2005-04-11 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmWriter fix bug when writing spacing. The Y spacing comes first
+ then the X spacing.
+ * Fix compilation on gcc 2.96 (which does not have ios::failure)
+
+Mon Apr 4 17:15:24 2005 by jpr
+ gdcmFileHelper.cxx
+ Fix stupid bug when writting ACR-NEMA image from 'ACR-LibIDO' one.
+
+2005-04-05 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDictGroupName.[h|cxx] : add a correlation between a group (number)
+ and it's representation name (for the NIH)
+
+2005-03-31 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmPixelReadConvert.cxx : problems of around of double to uint8, when
+ conversion of YBR to RGB pixels. So, now, the conversion is made using
+ integers only
+
+2005-03-30 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Testing/TestAllReadCompareDicom.cxx : now use test files (invented file
+ format) to replace 'at-run' dicom files generated by the
+ TestAllReadCompareDicom test
+
+Tue Mar 22 12:29:37 2005 by jpr
+ gdcmDocument.cxx
+ * FIX : element 0x0000 of shadow groups is now force to a ValEntry,
+ and it's VR is forced to UL
+ * ENH : user id now allowed to tell he doesn't want to deal with Sequences
+ and/or with Shadow groups
+ use SetLoadMode (NO_SEQ | NO-SHADOW);
+
+Tue Mar 22 12:40:13 2005 by jpr
+ gdcmFileHelper.cxx
+ *FIX Restore pushed out elements
+
+Fri Mar 11 12:08:31 2005 by jpr
+ gdcmDocEntry.cxx
+ Remove spurious #define MAX_SIZE_PRINT_ELEMENT_VALUE
+
+Fri Mar 11 12:12:13 2005 by jpr
+ gdcmFile.cxx
+ Final removal of gdcmFileHelper::InitializeDefaultFile();
+
+Wed Mar 9 20:29:38 2005 by jpr
+ gdcmDicomDir.h, .cxx
+ Add Anonymize method (not yet fully checked)
+
+2005-03-07 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmFileHelper.cxx : remove memory leaks and bugs when writing files
+
+Wed Mar 2 18:18:32 2005by jpr
+ gdcmFile.cxx
+ Fix gdcm::FileHelper::CheckMandatoryElements() to take into account David
+ Clunie's remarks.
+
+2005-02-22 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmFileHelper.cxx : JPR bad personal choices fix
+
+Mon Feb 21 18:45:41 2005 by jpr
+ gdcmFileHelper.cxx
+ * Replace method CheckMetaElements by CheckManadatoryElements
+ To deal with the pb of UID's, and with Type 1 an Type 2 Entries
+ (probabely some stuff still missing)
+ * We shall have to decide the way we proceed to allow user 'freeze' Serie UID
+ between a given call and the next one (to add images to a Serie he just
+ created)
+ * We shall have to decide the way we proceed to allow user 'freeze' Study UID
+ between a given call and the next one, or to reuse an already existing
+ Study UID (i he wants to add his own Series to an already existing Study)
+
+Thu Feb 17 17:18:33 2005 by jpr
+ gdcmFile.cxx
+ To avoid further pb, Initialize defaults now Photochromatic Interpretation to
+ MONOCHROME2 (low values = dark), better than MONOCHRONE1.
+ Thx to Benoit for reporting bug
+
+Thu Feb 17 11:56:20 2005 by jpr
+ gdcmUtil.cxx
+ Prepare FileMetaInformationVersion (group 0002) management
+
+Thu Feb 17 12:02:47 2005 by jpr
+ gdcmFile.cxx
+ Group 0002 management
+
+Thu Feb 17 12:03:32 2005 by jpr
+ gdcmDocEntryArchive.cxx
+ Fix comments
+
+Wed Feb 16 11:19:19 2005 CET by jpr
+ gdcmPixelReadConvert.cxx
+ Taking into account MONOCHROME1 + Signed Pixels (?!)
+
+Tue Feb 15 19:12:34 2005 by jpr
+ gdcmFile.cxx
+ Taking into account the difference between MONOCHROME1 (low values = bright)
+ and MONOCHROME2 (low values = dark)
+
+Mon Feb 14 11:45:04 2005by jpr
+ gdcmDocument.cxx
+ Remove some useless mask operations, to save CPU time
+
+Mon Feb 14 15:51:10 2005 by jpr
+ gdcmUtil.cxx
+ *never* forget to re-compile just *before* committing!
+
+Mon Feb 14 15:34:27 2005 by jpr
+ gdcmUtil.cxx
+ First commit on the post 1.0 (Version? / Tag? / Branch?) :
+ Fix Doxygen warnings
+
+Mon Feb 14 11:45:47 2005 by jpr
+ gdcmValEntry.cxx
+ remove useless comments
+
+2005-02-11 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Testing/TestMAkeIcon.cxx : complete the test
+
+2005-02-10 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Testing/TestWriteSimple.cxx, TestSequence.cxx : fix memory leaks
+
+Fri Feb 11 16:22:18 2005 by jpr
+ gdcmDocEntrySet.cxx
+ Typo, comments, doxygenation
+
+Thu Feb 10 11:55:26 2005 by jpr
+ gdcmFile.cxx
+ AnonymizeNoLoad improvement
+
+Thu Feb 10 10:07:19 2005 by jpr
+ gdcmFile.cxx
+ Duplicate Matthieu's hack to prevent bombing in Anonymize
+
+Thu Feb 10 12:20:34 2005by jpr
+ gdcmDocEntrySrt.cxx
+ The following gdcm::DocEntrySet methods, no re-definable is child classes are no
+ longer virtual
+ virtual ValEntry *GetValEntry(uint16_t group, uint16_t elem);
+ virtual BinEntry *GetBinEntry(uint16_t group, uint16_t elem);
+ virtual SeqEntry *GetSeqEntry(uint16_t group, uint16_t elem);
+ virtual bool SetValEntry(std::string const &content,
+ virtual bool SetBinEntry(uint8_t *content, int lgth,
+ virtual bool SetValEntry(std::string const &content, ValEntry *entry);
+ virtual bool SetBinEntry(uint8_t *content, int lgth, BinEntry *entry);
+ virtual ValEntry *InsertValEntry(std::string const &value,
+ virtual BinEntry *InsertBinEntry(uint8_t *binArea, int lgth,
+ virtual SeqEntry *InsertSeqEntry(uint16_t group, uint16_t elem);
+
+2005-02-09 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmFileHelper.[h|cxx] : now correctly set the VR of the datas when
+ writting the file
+
+2005-02-09 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/VTKTestWriteSeq.cxx : add a VTK test to write sequences
+
+2005-02-09 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/ : accelerate tests (it's not very significant accelerations).
+ Remove TestCopyDicom that is redundant with TestCopyRescaleDicom
+
+Mon Feb 7 15:48:34 2005 by jpr
+ gdcmDicomDir.h, .cxx
+ Add some commented out lines to prepare future version of 'Full DICOMDIR' stuff
+
+
+2005-02-07 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Testing/TestSequence.cxx : add test for sequences of images... test that
+ we have the same serie or the same study UID
+
+2005-02-07 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * gdcmPython/gdcm.i : bug fix. Now string are correctly converted in python
+ string type
+ * src/gdcmDict.h : remove commented code
+ * src/gdcmDocument.cxx : initialize values
+ * src/gdcmFile.cxx : bug fix when reading values
+ * gdcmPython/demo/ : change file names. Remove useless files
+
+Sun Feb 6 15:31:09 2005 by jpr
+ gdcmDicomDirStudy.h
+ Update comments for DicomDir stuff
+
+Sun Feb 6 15:39:35 2005 by jpr
+ gdcmDocument.cxx
+ * Add method File::AnonymizeNoLoad, to allow anomymizing files
+ even when the pixels are not gdcm Readable
+ * Add methods File::AddAnonymizeElement and File::ClearAnonymizeList
+ to allow user to choose the elements whose value
+ he wants to white out / replace
+
+2005-02-04 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmFile.cxx : remove the default array of initialization.
+ The static array contained pointers to non-static values (comming from
+ strings). To have coherences, when creating files, these values can't be
+ static. So, the array can't be static, too ! To simplify, the array have
+ been replaced by repeted lines to insert values in the File
+
+Fri Feb 4 15:49:01 2005 by jpr
+ gdcmDocEntry.cxx
+ * Add GetFirstValEntry + GetNextValEntry, for Python users
+ * Some more Doxygenation + typo fixing
+
+2005-02-03 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmBinEntry.cxx : bug fix for BIG_ENDIAN part when writing the content
+ * gdcmPython/gdcm.i : rename gdcmHeader to gdcmHelper
+
+Thu Feb 3 18:12:46 2005 by jpr
+ gdcmPixelReadConvert.cxx
+ Fix Doxygen warning
+
+2005-02-02 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * FIX SQItem::AddEntry inserts now *in the right place* any Entry
+ (Dicom Element) into the Sequence Item
+
+2005-01-31 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/*.cxx : first parss to normalize file organisation
+
+2005-01-31 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDirList.[h|cxx] : add method to find a directory
+ * Test/TestAllReadCompareDicom.cxx : bug fix under Windows
+
+2005-01-31 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Finish cleaning up my JPEG mess. Should be ok now.
+ * Getting toward a RLE very similar to JPEG. Every RLE stuff is now self
+ contained within the RLE* class(doh!)
+
+2005-01-30 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * SerieHeader::SetDirectory() allow recursive exploration of the Directory
+ * SerieHeader::AddFileName() creates as many Coherent Files lists
+ (same Serie UID) as it founds different Serie UID
+ amongst the files instead of discarting any file
+ that doesn't match with the first one he found.
+ * SerieHeader::OrderGdcmFileList has now one parameter :
+ the Coherent Files list the user wants to sort
+ * SerieHeader::GetFirstCoherentFileList() |
+ * SerieHeader::GetLastCoherentFileList() | allow to parse
+ the set of Coherent Files lists
+ * const SerieHeader::GdcmFileList &GetGdcmFileList() is kept, for backwards
+ compatibility (it returns the *first* Coherent Files list,
+ since there was only one before)
+ * Test/TestSerieHeader gets gdcmData as a default root directory
+
+2005-01-28 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Remove friend between DocEntry and File classes
+ * Remove friend between PixelReadConverter and RLEFramesInfo,
+ JPEGFragmentsInfo
+
+2005-01-28 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmFile.cxx, gdcmDocument.cxx : fix the bug on the group|element
+ 0002|0000. The value was incorrect.
+
+2005-01-28 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmWriter.[h|cxx] : add the gestion of UID
+
+2005-01-28 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmUtil.cxx : compilation fix on Win32
+ * src/gdcmUtil.[h|cxx] : Set the default GDCM UID in a static constant
+ variable, to be easy found. Add methods to change the default UID.
+ Amelioration of the CreateUniqueUID to use the correct default UID.
+ * src/gdcmFile.cxx : correct use of the CreateUniqueUID method to create
+ a new file
+
+2005-01-28 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/TestVR.cxx : fix memory leaks
+
+2005-01-27 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Rewrite the base 256 to base 10 conversion, using string operation only.
+ This allows us to get rid of the problematic 64bits integer type (does not
+ always exist on target platform).
+
+2005-01-27 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * Add construct and destructor to class gdcm::Debug to close the debug file
+ automatically
+ * Don't let uset to open twice the same file
+ * gdcm has now an official UID prefix,
+ supplied by http://www.medicalconnections.co.uk
+ 1.2.826.0.1.3680043.2.1143
+ (Thx to Mathieu for providing URL)
+ * Add a forty-entries private Dicom Dictionary (Philips MR Intera)
+ to be able to perform some more tests
+ * gdcm::ContentEntry : Contructors and Destructor are now protected,
+ in order to be sure no user will try to use them.
+ (at user level, only the children classes are meaningfull)
+
+2005-01-26 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * move RLEInfo & JPEGInfo from Document to File
+
+2005-01-26 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * FIX : remove so many friend between classes
+
+2005-01-25 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocEntrySet.cxx : Bug fix when getting the value
+ * src/gdcmContentEntry.[h|cxx], gdcmValEntry.cxx : amelioration of code
+
+2005-01-25 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ In order to avoid missbehaviour :
+ . gdcm::DocEntry is now specialized in
+ - gdcm::SeqEntry (Dicom Sequence) as opposed to :
+ - gdcm::ContentEntry (Dicom entry with a 'content')
+ . gdcm::ContentEntry is specialized in
+ - gdcm::ValEntry (Dicom entry with a std::string representable value, i.e.
+ characters value, or integers)
+ - gdcm::BinEntry (Dicom entry with a non strig representable value
+ (user hasn't any longer to thing about the precedence of his dynamic_casts)
+
+2005-01-25 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/VTKTest*.cxx : bug fix under linux
+
+2005-01-25 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/ : rename some methods on Entry (SetXxx, InsertXxx) to have a better
+ use with python. Some methods are moved from Document to ElementSet or
+ DocEntrySet. The equivalent methods to ElementSet have been added to
+ SQItem and are virtual in DocEntrySet. Methods that may have the same code
+ in SQItem and ElementSet is directly placed in DocEntrySet
+
+2005-01-25 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/VTKTest*.cxx : remove the show variable in each test method because
+ it's useless (the viewer variable replace this variable)
+
+2005-01-25 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocument.cxx : bug fix on potential memory leak
+ * src/gdcmSQItem.cxx : initialize the SQItemNumber value in the constructor
+ * src/gdcmSQItem.[h|cxx], gdcmElementSet.[h|cxx], gdcmDicomDir*.[h|cxx] :
+ Add ClearXxx methods to remove all the content of the list or map
+ * gdcmDocEntrySet.h : add GetFirst/NextEntry in pure virtual
+
+2005-01-25 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * methods ReplaceOrCreate renamed as Insert
+ (nobody will be any longer confused by 'CreateOrReplace')
+
+2005-01-24 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Grealty simplify the JPEg decompression, no need to differenciate based on
+ the JPEG possible type (with/without fragment, with/without multiple frame).
+ Everything is done throught the JPEG IO Suspension mechanism in IJG
+
+2005-01-24 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * Stage 3 of normalization :
+ in order to avoid any missunderstanding while reading method names :
+ - All the methods xxxEntry now deal with dicom Entries
+ - Methods GetEntry splitted into
+ GetEntryValue
+ GetEntryBinArea
+ - Method SetEntry renamed as SetEntryValue
+ - Method SetEntryBinArea let as it was
+
+2005-01-24 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ - Add empty nutshell for JPEG-LS (JPG-LS in NOT jpeg 'lossless')
+ - Position correctly the entry points for JPEG2000 and JPEG-LS
+ (Now Fragments info is get from the file, even for JPEG2000 and JPEG-LS)
+
+2005-01-22 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDicomDirElement.h, gdcmDict.h : rename AddNewXxx methods to AddXxx.
+ * src/gdcmDict.h : rename GetDictEntry moethod to GetEntry, to be coherent
+ with other method names
+ * gdcmPython/gdcm.i : bug fix. Add the typemaps for the TagName type
+ * Test/TestDicomDirElement.cxx : add new test
+
+2005-01-22 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Finish the CreateUniqueUID stuff. Seems to compiled/runs on every
+ plateforms ITK support. Had some troubles with uint64_t on Win32, go to
+ http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_langref_data_type_ranges.asp
+ for more info. Basically you can not used 'unsigned' __int8 in an ostream.
+ So can't you use __int64 in ostream at all.
+
+2005-01-22 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * bug fix for compilation on MSVC6
+ * gdcmPython/gdcm.i : rename of classes missed
+
+2005-01-21 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * Stage 2 of names normalization :
+ - A gdcm::Document is now either a gdcm::DicomDir or a gdcm::File
+ (easy to understand ...)
+ - gdcm::FileHelper replaces old class gdcm::File
+
+2005-01-20 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * gdcmDicomDirElement.[h|cxx] : change the AddEntry method. Now, it gets a
+ type and not a string. So, there remove problems on the format of the
+ string.
+
+2005-01-20 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * Add Example/TestPapyrus.cxx
+ - reads a Papyrus file (gdcm::Header compliant),
+ - gets the pixels of all the images, using low level iterators
+ - writes an multiframes Dicom image.
+ (Just to show it's *possible* to do that)
+ Uses SQItems accessors (we could use it as a 'Test' program, to improve test
+ coverage ...)
+
+2005-01-20 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDicomDirObject.h : set the FillObject method in protected.
+ Thus, DicomDirXXX are created with a flad that indicates if the created
+ object is empty or not (when not empty, the DicomDirElement is used to
+ fill the object)
+
+2005-01-20 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDicomDir.cxx : simplify the NewPatient method, like made in
+ gdcm::DicomDirPatient, gdcm::DicomDirStudy, gdcm::DicomDirSerie
+
+2005-01-20 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmSQItem[h|cxx] : rename some methods to have coherent names
+
+2005-01-20 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDicomDir*.[h|cxx] : rename methods to be logik in their name.
+ Remove all access to the hash-tables or lists in the objects.
+
+2005-01-20 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDebug.h : remove the Debug test in the gdcmErrorMacro
+ * src/gdcmDocument.[h|cxx] : rename the Initialise method to Initialize, to
+ be complient with all the gdcm source code
+
+2005-01-19 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocEntry.h : DocEntry is now secure. User can't change the
+ DictEntry or the VR.
+
+2005-01-19 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * gdcmPython/ : change GDCM_DATA_PATH to GDCM_DATA_ROOT to be complient with
+ all in gdcm
+
+2005-01-19 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/ : rename VTK tests to have a best name for the tests
+ * gdcmPython/demo/*.py.in : Change the InitTraversal/GetNextEntry use to
+ GetFirstEntry/GetNextEntry use
+
+2005-01-18 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * In SerieHeader::ImagePositionPatientOrdering()
+ // a Dicom 'Serie' may contain scout views
+ // and images may have differents directions.
+ // -> More than one may have the same 'pos'
+ // Sorting has then NO meaning !
+ Thx to Eduardo Davila for reporting bug.
+
+2005-01-18 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/ShowDicom.cxx, ShowDicomSeq.cxx, TestWriteWithVTK.cxx : change the
+ test. Now it's on image content and not on the resulting visualisation...
+ might solve the problem on linux when using the OpenGL drivers
+
+2005-01-18 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * ENH for DicomDir, DicomDirPatient, DicomDirStudy,
+ DicomDirSerie, DicomDirImage
+ Dict, DictSet classes :
+ -add method GetFirstEntry to replace call to InitTraversal+GetNextEntry
+ -remove InitTraversal method.
+ * UPD Test programs + Example programs
+
+2005-01-18 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * remove useless and never updated keyword \ingroup
+ * Solve pb when structure (list, map, ...) is empty.
+ Thx to Benoit for reporting bug
+
+2005-01-18 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * Taking into account of 'Transfer Syntax' value
+ (for 'true' Dicom V3 files, the 'ACR-NEMA' heuristics sometimes gives
+ unaccurate result)
+
+2005-01-17 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmUtil.cxx : bug fix to find the Windows MAC address. Now, there
+ is no memory access violation
+ * gdcmPython/demo : add python demos using VTK
+
+2005-01-16 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * FIX 'Dictionnary' is now spelt 'Dictionary'
+ 'wether' is now spelt 'whether'
+ 'archieve' is now spelt 'archive' ;-)
+
+2005-01-15 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * ADD DicomDir, DicomDirPatient, DicomDirStudy, DicomDirSerie, DicomDirImage
+ related methods, in order not to expose internal mechanisms
+ InitTraversal();
+ GetNextEntry();
+ * REM methods that exposed internal mechanisms :
+ DicomDir::GetDicomDirPatients()
+ DicomDirPatient::GetDicomDirStudies()
+ DicomDirStudy::GetDicomDirSeries()
+ DicomDirSerie::GetDicomDirImages()
+ * UPD Test programs :
+ makeDicomDir.cxx
+ BuildUpDicomDir.cxx
+ TestDicomDir.cxx
+ * UPD Example program
+ PrintDicomDir.cxx
+ * ADD DictSet methods
+ InitTraversal()
+ GetNextEntry()
+
+2005-01-15 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Removed the Print/indent/default parameter mess. There is absolutely no
+ reason to have to methods, moreover with the second taking the ostream as
+ *SECOND* parameter. This was clearly a bad hack to get things compile.
+
+2005-01-15 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Complete rewrite of the GetMacAddress code. Now the code is *much*
+ smaller (no more MacOSX specific crap). A lot more POSIX oriented.
+ Unfortunately the main code does not work on SunOS, thus provide a specific
+ code for this platform only (and Win32 of course). Since this seems to be
+ working, change CreateUniqueUID to use GetMACAddress instead of the
+ problematic GctestetIPAddress
+
+2005-01-14 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Unfortunately to be able to test gdcmDirList I had to break the API
+ a little. Now the class is not a std::list anymore but has a member
+ std::vector (more ITK compatible). Allow unit testing on Win32 and
+ shared libs.
+
+2005-01-14 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Update SerieHeader to take into account a Serie Instance UID to properly
+ sort DICOM files
+
+2005-01-13 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * ENH - Comment out Mathieu's (dangerous) Super Hack
+ for dealing with BIGENDIAN processors
+ - Move equivalent stuff to BinEntry::WriteContent
+ When necessary, 16 Bits Pixels are swapped in a small buffer
+ and then written. This avoid allocating a huge buffer, in
+ PixelWriteConvertor, and avoid modifying the Pixel Area.
+ Note :
+ Probabely, the same operation will have to be done when we want
+ to write image with Big Endian Transfert Syntax,
+ and we are working on Little Endian Processor
+
+2005-01-14 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocument.[h|cxx] : comment all methods concerning a flat hash
+ table.
+ * src/gdcmElementSet.[h|cxx] : rename Initialize into InitTraversal
+ * src/gdcmDict.[h|cxx] : add InitTraversal/getNextEntry methods to parse
+ all the dict content.
+ * src/gdcmDictEntry.cxx : add a carriage return at the end of the DictEntry
+ print
+ * Test/TestDict.cxx : add a new test for the dict classes
+
+2005-01-13 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * src/gdcmDebug.h : Adding an option to redirect debug stream to a
+ file. Debug is yanked if compiled with NDEBUG
+
+2005-01-13 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDictSet.h : set the default output to the os variable
+ * src/gdcmDictEntry.[h|cxx] : add the Print method
+ * gdcmPython/demo/ : add a new test
+
+2005-01-13 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * merging of Test/PrintDicomDir and Test/TestDicomDir
+ * removal of now redundant Test/PrintDicomDir
+ * enhancement of Example/PrintDicomDir
+
+2005-01-13 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Now, python test might work on systems
+ * Add the PrintDicomDir test
+
+2005-01-13 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * FIX : First entry following group 0002 was lost for
+ Explicit Big Endian Transfer Syntax files
+ (group and elem not swaped)
+
+2005-01-12 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * FIX : Old quick and dirty 'optimistic' heuristic to deal with
+ Big Endian Transfer Syntax supposed the group following 0002
+ begins always by element 0000 (element 0000 is *optional*)
+ To avoid further troubles, let's be pessimistic, and use
+ Document::HandleOutOfGroup0002() method
+ * FIX : comparison between GDCM_NOTLOADED and Transfer Syntax
+ (related pb not yet solved)
+
+2005-01-12 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Bug fix for the python part use
+ * Now, PrintHeader.py pass... but outside the ctest use. shit !
+
+2005-01-12 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * gdcmPython/gdcm.i : bug fix when compiling with MSCV
+
+2005-01-11 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Untangle TransferSynatx from gdcm::Document. Now Document only manipulate
+ a string and should ask the global TS dict what are the propreties of
+ the transfer syntax
+
+2005-01-11 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * Replace confusing name SwitchSwapToBigEndian name by SwitchByteSwapCode
+ * Add the Document::HandleOutOfGroup0002(uint16_t group) method
+ to swap the Swap Code, at parsing time, when we come out of group 0002
+ and Transfer Syntax is Big Endian
+ We should be able to read now 'true DICOM" Big Endian coded images
+ * Add optional run time SetDebugOn (last param) for PrintHeader, PrintFile
+ * Replace the french 'Transfert Syntax' by the english 'Transfer Syntax'
+
+2005-01-10 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Hopefully fix the bug on MacOSX and static global initialization.
+ This is the only -minor- patch I found that both please MacOSX and VS6.
+ Other patch would be to declare a const std::string & GDCM_UNFOUND() instead,
+ but this would require a lot of change. Another approach would be that Global
+ create those string and GDCM_UNFOUND becomes a pointer to a string (which
+ gdcm::Global would destroy at exit).
+
+2005-01-08 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Fix bug on MacOSX with static initialization in a multy threaded
+ environment. static const string in a header file used to be ill
+ initialized provoquing the freeze of any tests. patch should solve this
+ issue.
+
+2005-01-08 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * According to Benoit's suggestion, and without any objection from anybody
+ - methods SetxxxByNumber and GetxxxByNumber renamed as Setxxx and Getxxx
+ - methods Dict::Print() and Dict::PrintByKey() merged into Dict::Print()
+ - method gdcmDicomDirObject::GetEntry() renamed as
+ gdcmDicomDirObject::GetEntryHT() to avoid confusion (and compile error)
+
+2005-01-07 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Now gdcm::Debug is clearly a copy/paste of VTK approach. You can manipulate
+ you debug/warning message just as c++ streams which make them very convinient
+ to use. Once this is stabilize I will change the ostringstrem to be
+ redirected to a file (ofstream).
+ * Properly support C99 extension: __FUNCTION__ which allow us to display
+ the name of the function call (GNUC also allow __PRETTY_FUNCTION__ for c++)
+
+2005-01-07 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * Removal of useless and dangerous methods :
+ GetEntryByName, GetEntryVRByName, GetDocEntryByName, SetEntryByName
+ GetDocEntryByName, GetEntryByName, GetDictEntryByName
+ * Removal of usless methods :
+ Dict::PrintByName, Dict::GetDictEntryByName
+ * Commenting out of probabely useless methods :
+ Dict::GetDictEntryNames()
+ Dict::GetDictEntryNamesByCategory()
+ DictSet::GetPubDictEntryNames()
+ DictSet::GetPubDictEntryNamesByCategory()
+ * ENH : New Dicom Dictionary (with Value Multiplicity) is now used
+ * ENH : Use dicomTS.dic as described in 2004 version
+ * ENH : Removal out of the Dicom Dictionary of non dicom 'fourth' field
+ Add to the Dicom Dictionary of Dicom 'Value Multiplicity' field
+ Add Accessors on VM (Value Multiplicity), and VM related methods
+ * ADD : Add a list of 'Dicom Attribute types', as found in
+ http://medical.nema.org/dicom/2004/04_15PU.PDF
+ Unused till now...
+ * ADD : Add dicomGroupNameAbbreviations.dic
+ should be used to write a method to replace the former
+ Dict::GetDictEntryNamesByCategory()
+
+2005-01-07 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocEntry.[h|cxx] : now the ReadLength is the length of the data
+ to read in the file... and only it ! Length is the efective length of the
+ data in the DocEntry structure
+
+2005-01-07 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Change the gdcmDebug approach. Remov the global static debug 'dbg'.
+ And now use a static function call instead, with a global variable. i
+ This is much closer to the VTK approach. Hopefully should be bulletproof
+ and easier to use...hopefully
+
+2005-01-06 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Adding GetMACAddres very alpha for now. This is tricky to be cross plateform.
+
+2005-01-06 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocument.[h|cxx] : remove all copy of DocEntry when parsing a file
+
+2005-01-06 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocEntrySet.[h|cxx], gdcmDocument.[h|cxx] : amelioration of
+ ValEntry, BinEntry, SeqEntry creation or replace
+
+2005-01-06 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDictEntry.h : now, the IsVRUnknown is correct
+ * src/gdcmDocument.[h|cxx] : simplify the search of VR value when parsing
+ a file
+ * src/gdcmDocEntrySet.cxx : now the created DocEntry without values is good
+ when specifying the VR
+ * src/gdcmVR.[h|cxx] : add usefull method to test the validity of a VR
+ * src/gdcmDocEntry.cxx : amelioration of print
+
+2005-01-05 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
+ * ADD : Add the method Util::IsCurrentProcessorBigEndian
+ (we'll need it for 'Explicit VR Big Endian' Transfert Syntax)
+ * ADD Method Document::ComputeGroupLength
+ * ENH : now parsing creates a Vitual DictEntry for Pixels Element,
+ in order to allow further VR modification by user
+ * REM : removal of once-called method File::WriteBase
+ integration of its code in formerly one-line method File::Write
+
+2005-01-05 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmCommon.h : add the GDCM_UNKNOWN constant. This constant is to
+ replace the different values "??", "Unkn", "Unknown".
+ * src/gdcmDicomDirElement.h, gdcmDictEntry.h, gdcmDictSet.h,
+ gdcmDocEntry.cxx, gdcmDocEntrySet.[h|cxx], gdcmDocument.h, gdcmSQItem.cxx,
+ gdcmVR.cxx : use the GDCM_UNKNOWN constant.
+ * Appears a bug in gdcmDictEntry : IsVRUnknown always returns false... bad
+
+2004-12-16 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmBase.[h|cxx] : new base class. Contains the PrintLevel and an
+ empty Print Method
+ * Set the gdcm::Base class to some Printable classes
+
+2004-12-16 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmFile.[h|cxx] : add the Print method
+ * src/gdcmPixelReadConvert.[h|cxx] : add the generalized Print method
+ * src/gdcmDocEntrySet.h : generalize the Print with the PrintLevel
+ * src/gdcmDocument.h : remove the PrintLevel informations
+ * Example/PrintFile.cxx : use the new gdcm::File::Print
+
+2004-12-16 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmFile.cxx : Add the code of ReplaceOrCreateByNumber to not have
+ problems when compiling with the python wrapping
+
+2004-12-16 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmFile.cxx : bug fix. Omitted a Push in the DocEntryArchive when
+ writting in ImplicitVR
+
+2004-12-12 Jean-Michel Rouet <jm.rouet@noos.fr>
+ * src/gdcmPixelReadConvert.[h|cxx], src/gdcmJpeg*.cxx : new handling of
+ JPEG decompression, especially when dicom frames are split into several
+ JPEG Fragments. This makes use of jpeg decompression from memory buffer.
+ This solves reading for example gdcm-JPEG-Lossless_Thoravision.dcm.
+
+2004-12-10 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmHeader.cxx : change the initialisation of default header.
+ Now, this header is readable by gdm, e-film, DicomWorks
+
+2004-12-10 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmFile.[h|cxx], gdcmPixelReadConvert.[h|cxx] : change the API.
+ Rename Decompressed to Raw
+ * Use the API changes in gdcm::File.
+ * vtk/vtkGdcmWriter.[h|cxx] : add the possibility to write in other modes
+ Memory leaks fixed
+
+2004-12-10 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmWriter.cxx, Example/WriteDicomSimple.cxx : add comments for
+ each added entry in the header. Replace the 'Planes' field by the 'Number
+ of Frames' field
+
+2004-12-09 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmWriter.[h|cxx] : now can write stack of images.
+ * vtk/vtkWriteDicom.cxx : can write 2D stack or 3D image
+
+2004-12-09 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Example/WriteDicomSimple.cxx : example to write a dicom file from nothing.
+ At this time, this image isn't readable by e-film... waiting JPR help to
+ solve it.
+
+2004-12-09 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmPixelReadConvert.cxx : bug fix when would forcing load of a
+ DocEntry. Now use methods of the Document !
+
+2004-12-09 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/ShowDicomSeq.cxx : bug fix
+
+2004-12-08 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmReader.[h|cxx] : bug fix. Plane order isn't inverted
+ * vtk/vtkGdcmWriter.[h|cxx] : correctly write images (the Y axis is inverted)
+ * Test/ShowDicomSeq.cxx : new test to verify the use of AddFileName method
+ * Test/ShowDicom.cxx, TestWriteWithVTK.cxx : set the threshold of regression
+ test to 0.0
+ * Test/TestCopyRescaleDicom.cxx : remove unused variable
+ * Test/CMakeLists.txt : add the creation of the gdcmDataSeqImages.h file
+ containing found sequences
+
+2004-12-07 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/ShowDicom.cxx, TestWriteWithVTK.cxx : bug fix, now this test pass
+ not at all time
+ * Test/TestCopyRescaleDicom.cxx : rearrange the test to correctly pass...
+ Some fields in BinEntry must be copied to not seg fault when making the :
+ gdcm::File *copy = new gdcm::File( copyH );
+ and tests are now made on good variables
+
+2004-12-07 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmWriter.[h|cxx] : add a first version of vtkGdcmWriter
+ * src/gdcmValEntry.cxx : bug fix when setting the value. Problems of odd
+ length
+ * src/gdcmHeader.cxx : Remove a useless call to Util::DicomString
+ * Add vtkGdcmWriter example and test
+
+2004-12-07 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/TestUtil.cxx : reformat the source code
+ * vtk/vtkGdcmReader.cxx : remove and change prints
+ * src/gdcmValEntry.[cxx|h] : now set the length of the value when calling
+ SetValue
+ * src/gdcmBinEntry.[cxx|h] : SetValue method don't set the length
+ * src/*.cxx : remove all useless call to SetLength of a ValEntry object
+
+2004-12-07 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmPixelWriteConvert.[h|cxx] : ficnished this class
+ * src/gdcmFile.cxx : finished the correctly use of PixelWriteConvert
+
+2004-12-06 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocument.cxx : bug fix when opening the file. All read is followed
+ by an eof to prevent all bad read of the file... and in this case, the
+ file isn't readable.
+
+2004-12-06 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Example/Volume2Dicom.cxx : comment unused variables
+ * Test/PrintDicomDir.cxx : comment unused variables
+ * Test/BuildUpDicomDir.cxx : remove dbg.Verbose. Remove the FIXME.
+ * src/SQItem.[h|cxx] : remove the PtagHT variable. Remove the AddDocEntry
+ method that is redondant with AddEntry.
+ * src/gdcmDocEntrySet.h : add pure virtual methods common to ElementSet and
+ SQItem
+
+2004-12-04 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Bug fix due my last commit (compilation under Windows).
+ * Example/Volume2Dicom : bug fix in the file and reformatting source code
+ * src/gdcmFile.h : bug fix. Variable type and variable name had same name
+
+2004-12-03 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Huge cleanup:
+ - Remove printf / sprintf
+ - include iostream AFTER gdcm so we don't get warnings
+ - GDCM_NO_ANSI_STRING_STREAM shouldn't be used explitely ouside of gdcm
+ source
+ - Also remove tons of include from header files, hopefully this should
+ speeup the compilation time, since it was becoming a dog slow.
+ - Remove gdcm.h as it include way too many files and slow down compilation
+ (plus it is not up to date)
+ - remove 'using namespace std' this is BAD !
+
+2004-12-03 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Remove memory leaks on the DicomDir
+ * Remove some useless data in DicomDirObject
+ * Add usefull methods in SQItem, to be complient withe the ElementSet
+
+2004-12-03 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmFile.[h|cxx] : now use FileType instead of TWriteType.
+
+2004-12-03 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmPixelWriteConvert.[h|cxx] : new class to write data (and in the
+ future, with convertion)
+ * src/gdcmFile.[h|cxx] : the PixelWriteConverter instance replace Pixel_Data
+ and ImageDataSize values. Remove the method to get the PixelReadConverter
+ from the output of the class
+
+2004-12-03 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Rename src/gdcmPixelConvert.[h|cxx] to src/gdcmPixelReadConvert.[h|cxx]
+
+2004-12-02 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmReader.cxx : correct error in vtkDebugMacro, vtkWarningMacro
+ and vtkErrorMacro use.
+ * gdcmPython/gdcm.i : corrections to avoid warnings at compilation
+
+2004-12-02 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/TestCopyDicom.cxx : the new dicom created is created empty, without
+ file name in input
+ * src/gdcmSeqEntry.cxx : bug fix in destruction of an element
+ * src/gdcmHeader.cxx : bug fix. Keep the string, otherwise it is destroyed.
+ The string leaves only in the fonction. So when we make a .c_str(), we
+ get the pointeur on the first element, element that will be destroyed
+ immediately after thee instruction.
+ * src/gdcmDocument.cxx : remove memory leaks. Bug fix when testing if the
+ file has been opened : the test must be made on the content of the
+ pointer and not directly on the pointer !
+ Code formatting
+
+2004-12-02 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * gdcmPython/gdcm.i : change gdcmHeaderHelper to gdcmSerieHeader. Now,
+ the python part recompiles
+
+2004-11-30 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/ShowDicom.cxx : Change the test to only open one vtkImageViewer.
+ Otherwise, under linux (Graphic card : NVidia / SE : FedoraCore 1) the
+ X session is killed (for my computer... it seems to not be identic on
+ all linux)
+
+2004-11-30 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/ShowDicom.cxx : now can be used with an off-screen rendering to
+ avoid problems (otherwise, the difference test between the visible image
+ and the reference is incorrect. If the reference is greater than the
+ screen resolution, it's produce errors).
+ Can be used for only one image. Can be used with a visible flag.
+ * vtk/vtkGdcmReader.cxx : remove commented codes.
+ * vtk/vtkGdcmReader.h : add the gdcmCommon.h include file to avoid warnings
+ under windows at compilation
+ * vtk/vtkgdcmViewer.cxx : reformat the file. Apply a default window/level
+ for grayscale images
+ * vtk/GdcmToBaseline.cxx : new program to easy create the reference image
+
+2004-11-30 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmFile.[h|cxx] : bug fix for ACR-LIBIDO files when writting the file
+ * Test/TestAllReadCompareDicom.cxx, TestReadWriteReadCompare.cxx : add
+ tests on the image size X, Y, Z
+
+2004-11-26 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Remove some useless methods in gdcm::Document, gdcm::Header and gdcm::File
+ * Rename gdcmHeaderHelper.[h|cxx] to gdcmSerieHeader.[h|cxx] to be coherent
+ between the class name and the file name
+
+2004-11-25 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/ : fix compilation warnings for the Write method (2 different
+ proto). So Rename 'Write(ifstream* fp' into 'WriteContent(ifstream* fp'
+ fix compilation warnings for the gdcm::Document::TransferSyntaxStrings
+ variable... create a static method in gdcm::Document to access to
+ this variable content.
+
+2004-11-25 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocument.[h|cxx] : set the Transfert Syntax values to the header
+ file, to be accessed by other files (like gdcmFile). Remove commented
+ code. Move the change of the header to the gdcmFile, using the
+ DocEntryArchive
+ * src/gdcmHeader.[h|cxx] : the write is completely made in the Header.
+ To be sure of that (and simplify calls), the Write of the header now
+ gets a file name and not a file pointer (std::ifstream).
+ * src/gdcmFile.[h|cxx] : apply the write file type to the header, using the
+ DocEntryArchive. Remove all open of the written file
+
+2004-11-25 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmReader.cxx : compilation bug fix for the vtk part
+
+2004-11-25 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocument.cxx : fix bug... test if the fp is opened to use it
+ * src/gdcmPixelConvert.cxx : calculate the image size when while the grab of
+ the header.
+ * src/gdcmFile.[h|cxx] : remove PixelRead and ImageDataSizeRaw variables and
+ some corresponding methods. Write correctly the file and check before
+ write
+ * Test/TestCopyDicom.cxx, TestReadWriteReadCompare.cxx,
+ TestAllReadCompareDicom.cxx : pass the write of images to RGB and test
+ is now on RGB data (as before my last commit
+ * Example/PrintHeader.cxx, PrintFile.cxx : repad files.
+
+2004-11-24 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmBinEntry.cxx, gdcmSeqEntry.cxx, gdcmSQItem.cxx, gdcmValEntry.cxx :
+ Add a print information of the type of the entry
+ * src/gdcmDocument.cxx : add the write of the preambule of a Dicom file.
+ It was in the gdcmFile, and all write have been regrouped
+ * src/gdcmFile.[h|cxx] : add methods to get the Raw data elements and size.
+ Write correctly all dicom files (in decompressed mode only at this time)
+ * Test/ : test on files are now made using Raw data and not color data if
+ any.
+ * Example/PrintFile.cxx : add more printings
+
+2004-11-24 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Amelioration of code, remove some code copy. For the loading of
+ BinEntry (in gdcmDocument), add the test to verify if the file is already
+ opened or not.
+
+2004-11-24 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocEntryArchive.[h|cxx] : bug fix and add a method to temporary
+ remove a DocEntry in the header (push an empty DocEntry)
+ * src/gdcmFile.[h|cxx] : remove some useless variables, methods and code
+ lines. Bug fix in the initialization of the PixelConvert and the
+ DocEntryArchive
+ * src/gdcmElementSet.[h|cxx] : add methods Initialize and GetNext to
+ use in TestCopyDicom (now this test can run under windows... but fails)
+ * Test/TestCopyDicom.cxx : amelioration of the test :
+ - test the pixels written
+ - add test points to quickly find where is the error
+ - can set a file name input and output in arguments
+ * Test/TestAllReadCompareDicom.cxx, TestReadWriteReadCompare.cxx :
+ amelioration of the test output
+
+2004-11-23 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocEntryArchive.cxx : complete the print function, that prints
+ all replaced DocEntry's
+ * src/gdcmFile.[h|cxx] : remove all changes of the header when getting data.
+ Now, each needed DocEntry to modify is duplicated, modified and inserted
+ to the header using DocEntryArchive. Thus, after save, we can restore the
+ header initial state.
+
+2004-11-22 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmFile.h : fix compilation errors on zorglub linuc computer
+
+2004-11-19 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocEntry.cxx : remove the copy of the DictEntry... there isn't
+ correct to copy it. The DictEntry is specified at the DocEntry creation,
+ then, it musn't change in the time.
+ * src/gdcmDocEntryArchive.[h|cxx] : new class. It's goal is to change the
+ header correctly. At this time, the change is only made for the first
+ level of the Document. In the future, it might consider sequences.
+ The change is made by replacing a DocEntry by an other that is created
+ outside the class. The old value is kept. When we restore the header
+ status, the added DocEntry is deleted and replaced by the old value.
+ * src/gdcmElementSet.h : Set the DocEntryArchive like friend.
+ * src/gdcmFile.[h|cxx] : Use the gdcmDocEntryArchive. Add methods to
+ set the write type to explicit VR, implicit VR or ACR. Add methods to set
+ the write mode to native, decompressed or RGB (but not used at this time)
+
+2004-11-15 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmSeqEntry.cxx : add initialisation of variable SeqTerm
+ * src/gdcmDocument.cxx : add delete of DocEntry's to remove some memory leaks
+
+2004-11-15 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocument.cxx : now, when using the ReplaceOrCreateByNumber to
+ set a BinEntry, the binArea is copied (like to set a ValEntry, the string
+ is copied).
+ * Test/TestCopyDicom.cxx, Example/TestCopyDicom.cxx : the image data isn't
+ set because already copied when copying the BinEntry's of the header
+ * Test/TestAllReadCompareDicom.cxx : remove warnings
+
+2004-11-15 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * FIX : now, the DocEntries are all deleted in the gdcmElementSet.
+ Two problems appear when doing it :
+ - with the gdcmFile : when the GetImageData method is called, the pixels
+ are stored in the gdcmPixelConvert, but a gdcmBinEntry link to these
+ data (pixels). And each structure destruct the data when it's
+ destructed. So we have two destructions for the same data. To solve it,
+ a flag is added in the gdcmBinEntry to indicate if the BinEntry owns the
+ data or not. If it doesn't own data, then they will not destroyed by
+ the gdcmBinEntry.
+ - with the gdcmDicomDir : the sequences (gdcmSQItem) contain DocEntry
+ elements. The DicomDir* (DicomDirPatient, etc.) inherit from SQItem.
+ Thus destruct the DicomDir* elements and the TagHT of the ElementSet
+ create a double destruction of the same DocEntry's. So, to solve it,
+ the TagHT is simply cleared and the DicomDir* elements are destroyed.
+ * TODO : add an entry concerning memory leaks in the DicomDir
+
+2004-11-15 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * FIX : src/gdcmDocument.cxx Remove obvious code in the destructor
+ * FIX : src/gdcmPixelConvert : Set to NULL the deleted structures in the
+ squeeze method
+
+2004-11-15 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * FIX: src/gdcmUtil.cxx : to compile with MSVC6
+ * src/gdcmDocument.cxx : fix memory leaks. Fix possible bugs : use an object
+ after it have been deleted
+
+2004-11-16 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * FIX: src/* fix the doxygen warnings.
+ * src/gdcmVR.cxx: removed some redundant tests (e.g. LO)
+ * src/gdcmDocument.cxx: FIX ::ComputeRLEInfo() rleSegmentOffsetTable[]
+ was erroneously defined with a size of 15 instead of 16. [many thanks
+ to Jean Michel Rouet for pointing out this bug].
+
+2004-11-15 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ 1. Finish merging JMR patch for writting DICOM from scratch
+ 2. Fix -hopefully- bug with MONOCHROME and space vs null character
+ 3. Use const ref when possible
+ 4. Add a new function InitializeDefaultHeader, which create a template DICOM header (CT image for now)
+ 5. A few more comments
+ 6. CreateUniqueUID can now be called without parameter"
+
+2004-11-15 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * ENH: Slightly bigger patch:
+ 1. Getting toward full integration of JMR patch for writting dicom from scratch
+ 2. Update Test to test part of this patch: CreateUniqueUID
+ 3. File was not close properly in gdcmDict
+ 4. Use of typedef is to be prefered when possible (gdcmDict.cxx)
+ 5. Use of const ref instead of copy (speed issue)
+ 6. Remove temporary (duplicate) string in TranslateToKey
+ 7. Mark extremely dangerous code as such (gdcmDocument.cxx and AddEntry fallback case)
+ 8. Do not repeat virtual in subclasses
+ 9. Implemented in gdcm::Util two new function: GetIPAddress, and CreateUniqueUID
+
+2004-11-15 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Apply first patch toward better string comparison when dealing with broken
+ DICOM files. Essentially the string could be padded with a space instead
+ of a null character as defined by standard
+
+2004-11-15 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocument.[cxx|h] : fix memory leaks. The return is suppressed
+ because never used... and in the same time, that's remove some memory leaks
+
+2004-11-15 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmFile.cxx : now delete the PixelConvert instance.
+ * In examples and tests : change the type of image data variables from void*
+ to uint8_t*. Remmove all delete on image data variables
+
+2004-11-10 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDocument.cxx : Set the file pointer TP to 0 in the constructors.
+ Verify the file pointer value before open the file, and if it's not null,
+ a verbose message is generated.
+ Close correctly the file when the file isn't considered dicom-like. The
+ correctly close is a call to CloseFile.
+ When closing the file pointer, test if its not null to close the file.
+ * src/gdcmPixelConvert.cxx : bug fix for the SIEMENS_GBS_III-16-ACR_NEMA_1.acr
+ file. For an uncompressed image, the copied data correspond in the least
+ case to the image size (calculated) or the image size specified in the
+ header. A verbose is generated if these two size mismatch
+
+2004-11-09 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Test/TestAllReadCompareDicom.cxx : test the existence of the directory
+ using an 'ifstream' other than a 'FILE *'. The previous solution ('FILE *')
+ break under windows (with msvc6 compilation).
+
+2004-11-09 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmDicomDir.h : bug fix for the last Boix's commit (problem when
+ compiling with MSVC6)
+
+2004-11-09 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Bugs fix for the Windows build with VC6
+ * CMakeLists.txt : bug fix - The include of the VTK lib is made only when it's
+ needed (only for projects required VTK). If the VTK is included in all
+ projects, there is conflicts with the jpeg lib of vtk when compiling the
+ gdcmjpeg[8,12,16] projects. The first conflict is on the jmorecfg.h file.
+ * src/gdcmUtil.h : export binary_write methods. Otherwise, there's problems
+ when compiling the gdcm_wrap.cxx file (created by the compilation of the
+ gdcm.i file)
+ * vtk/vtkGdcmDemo.cxx : remove the use of std namespace for the cerr use
+ (like it's already made for the cout use). Otherwise, conflict with the
+ std::cerr of vtk.
+
+2004-11-09 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmDicomDit.h the Method typedef is now local to DicomDir class.
+ * gdcmPython/gdcm.i:
+ - comments on the DicomDir::Method related usage added.
+ - now that we use the namespace gdcm, a lot of internal classes do
+ NOT need to be wrapped anymore.
+ * gdcmPython/demo/DicomDirProgressMethod.py (that uses the above
+ DicomDir::Method) new example added.
+
+2004-11-05 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Improve string manipulation. I now inforce the notion of 'DicomString'
+ A DicomString can contain as many \0 as they want
+ and it is *always* of even length.
+ We only support odd length for very rare case.
+ And in the near future this should be removed.
+
+2004-11-03 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * /binary_write/ gdcm source. Now even on big endian we are writting
+ little endian. This should -heopfully- fix some tests
+
+2004-11-03 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Now the dictionary is compiled into gdcm lib. This is a default
+ behavior, thus any dic file specified is picked before failback to
+ the one comiled into lib
+
+2004-10-27 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Change internals for gdcmDict. Don't use any 'new' any more.
+ This should definitely solve any leak problem, and we should be
+ as fast as before, as long as don't modify too much the dictionary.
+
+2004-10-25 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * STYLE: ivars should start with a capital letter.
+ * Accessors should be const to avoid people starting modifying stuff (since this is a ref).
+ * remove 'virtual' as Style specify subclasses shouldn't reuse the keyword
+
+2004-10-22 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Doc/Dicom2004_Part5.pdf added (thanks to JPR).
+ * Dicts/dicomTS2004.dic, dicomV3VM2004.dic, groupNameAbbreviations2004.dic
+ new 2004 dictionaries added (thanks to JPR).
+ * FIX dashboard warning RLEFrame::NumberFragments is now of type unsigned int
+ * CLEANUP_ROUND (15) for gdcmPixelConvert
+ - RLEFrame::NumberFragments is now of type unsigned int
+ - gdcmFile::GetImageData(), GetImageDataIntoVector(), GetImageDataRaw()
+ are now all based on PixelConverter. ::GetImageDataIntoVectorRaw()
+ no longer exists.
+
+2004-10-21 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Initial work in gathering all transfer syntax accessors. clearly
+ IsDecompressed/IsJPEG2000/IsJPEGLossless/IsRLELossless shouldn't be all
+ ivars, but only one transfersyntax (class) ivar with equivalent method on
+ the class.
+
+2004-10-21 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Removed all FILE* ref and replace by ifstream/ofstream. For now I use a temp
+ solution with the two files jdatadst.cxx and jdatasrc.cxx, this need to be
+ discussed (plus I didn't like having a 2000 lines patch not commited)
+
+2004-10-21 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmDocument.cxx: wrong type on return fixed (thanks dashboard)
+ * CLEANUP_ROUND (14) for gdcmPixelConvert
+ - PixelConvert::GetLutRGBA(FILE*) is now GetLutRGBA() (no fp needed)
+ - PixelConvert::BuildRGBImage()(FILE*) is now BuildRGBImage() (no fp needed)
+ - File::GetImageDataIntoVector() doesn't need unnecessary OpenFile() and
+ CloseFile() anymore.
+ - File::GetImageDataRaw() doesn't call GetImageDataIntoVectorRaw()
+ anymore and hence avoids storing a copy of PixelConvert::Decompressed
+ into File::Pixel_Data.
+
+2004-10-20 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmDocument.cxx ftell() return properly stored in a long (i.e.
+ no longer depends on's programmers PMS = Preposterous Mood Swings ;).
+ * CLEANUP_ROUND (13) for gdcmPixelConvert
+ Substituted File::ParsePixelData() with PixelConvert::Print() new
+ method:
+ - src/gdcmParsePixels.cxx removed (only contained File::ParsePixelData())
+ - src/gdcmRLEFrame.cxx, gdcmJPEGFragment.cxx added. Added a ::Print()
+ method to those classes.
+ - src/gdcmFile.[cxx|h]:
+ -- Added a ::Print() method.
+ -- PixelConverter is now a reference instead of a member.
+ -- gdcmPython/gdcm.i: added "using namespace gdcm" in order for
+ gdcm_wrap.cxx to "understand" File::GetPixelConverter()
+
+2004-10-18 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Doc/CMakeLists.txt, doxygen.config.in: when dot is present the
+ collaboration diagram and inheritance diagram should be generated with
+ doxygen.
+ * Doc/Website/Sidebar.html: Dashboard is now also in the sidebar.
+ * gdcmPython/gdcm.i: gdcmRLEFramesInfo.h gdcmJPEGFragmentsInfo.h are
+ pointlessly wrapped (see
+ http://www.creatis.insa-lyon.fr/pipermail/dcmlib/2004-October/000692.html )
+ * CLEANUP_ROUND (12) for gdcmPixelConvert (sugar is my friend stage)
+ - Header::GetLUTRGBA() moved to PixelConvert::GetLutRGBA()
+ - vtk/vtkGdcmReader.cxx: adapted to displacment of Header::GetLUTRGBA()
+ - Document::RLEInfo and JPEGInfo are now pointer members (Swig thing)
+ - src/gdcmFile.[cxx|h] and gdcmPixelConvert.[cxx|h]:
+ -- File::Initialise: PixelConverter setup moved away to
+ PixelConverter::GrabInformationsFromHeader()
+ -- File::GetImageDataIntoVector(): Lut R + Lut G + Lut B color table
+ interpretation moved away to PixelConverter::BuildRGBImage()
+
+2004-10-16 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Remove GDCM_EXPORT keyword from gdcm::DirList due to :
+ http://support.microsoft.com/support/kb/articles/Q168/9/58.ASP
+
+2004-10-15 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmDebug.cxx last ditch attempt to get warning/error messages
+ displayed on Win32 when a brutal abort() occurs (because of uncatched
+ exception). See TODO new entry of this commit for more on this.
+ * TODO added new entry.
+ * CLEANUP_ROUND (12) for gdcmPixelConvert (nicotine is my friend stage)
+ src/gdcmFile.[cxx|h] and gdcmPixelConvert.[cxx|h]:
+ - HandleColor is no longer called from gdcmFile.cxx
+ - gdcmPixelConvert.cxx clean up on method arguments and internal
+ variable names for semantical coherence.
+
+2004-10-14 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Finished lossless transition, not only do we now read all lossless jpeg
+ images, without the need of the Cornwell lib, but we do read them properly now
+ * To reduce code (well to avoid code duplication), I defined a common place
+ for jpeg read/write: gdcmJpeg.cxx. Now gdcmJpeg[8,12 16] include this file and
+ redefine symbols. This is not perfect but this the best solution I found for a
+ compilation time jpeg option.
+
+2004-10-13 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Update jpeg ijg lib to support lossless jpeg implementation
+ For more info look in jpeg/libijg/README.GDCM.txt for necessary steps to
+ reproduce at home.
+ * Also added a special copyright for dcmtk since we use their bugfixes.
+ Thanks dcmtk crew !
+
+2004-10-13 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Doc/Website/MailingList.html added (Sidebar.html changed accordingly).
+ * gdcmPython/gdcm.i: fix for compilation of wrappers (Note: %include order
+ matters, as stated in warning note at beginning of %include section).
+ * src/gdcmDicomDir*.[cxx|h]: coding style
+ * src/gdcmDocument.h: doxygen \ref seems uncompatible with \todo.
+ * src/gdcmJpeg8.cxx: doxygen fix.
+ * CLEANUP_ROUND (12) for gdcmPixelConvert (seing the ligth stage)
+ src/gdcmFile.[cxx|h] and gdcmPixelConvert.[cxx|h]: color handling moved
+ from File:: to PixelConvert::.
+
+2004-10-12 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * CLEANUP_ROUND (11) for gdcmPixelConvert (cafeine is my friend stage)
+ src/gdcmFile.[cxx|h] and gdcmPixelConvert.[cxx|h]:
+ - more code moved away from File:: to PixelConvert::
+ - fat setup of PixelConverter set in place in File::Initialise.
+
+2004-10-12 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Apply patch for namespace in gdcm. Didn't rename files for keeping a sort of
+ namespace at the file system level. So now you should convert your examples
+ like this:
+ gdcmHeader -> gdcm::Header
+ It would be nice if people keep in mind to no open the namespace, since it
+ allows compilation on broken plateform which were defining common symbol in
+ the standard namespace (like LP, Unknown ...)
+
+2004-10-10 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * CLEANUP_ROUND (10) for gdcmPixelConvert (Xanax is my friend stage)
+ The JPEG fragments are now parsed at the same stage than the RLE
+ information. All code related to JPEG is now in gdcmPixelConvert:
+ - src/gdcmJPEGFragment.h and gdcmJPEGFragmentsInfo.[h|cxx] added
+ - src/gdcmJpeg12.cxx, gdcmJpeg2000.cxx and gdcmJpeg8.cxx no longer
+ export a gdcmFile:: method. Those are simply global functions
+ (for the time being this is better than having them attach to
+ either gdcmFile:: or gdcmPixelConvert::).
+ - src/gdcmDocument.[cxx|h], gdcmDocument:: now parser the JPEG fragments
+ and stores the result in a gdcmJPEGFragmentsInfo.
+ - src/gdcmFile.[cxx|h] and gdcmPixelConvert.[cxx|h]: all JPEG related
+ code (among other stuff) moved away from gdcmFile:; to
+ gdcmPixelConvert::
+
+2004-10-08 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmCommon.h now declares int8_t for non stdint.h plateforms.
+ * CLEANUP_ROUND (7) for gdcmPixelConvert (lost at sea)
+ - src/gdcmFile.h gdcmPixelConvert.cxx gdcmPixelConvert.h gdcmRLE.cxx:
+ clean up of RLE related code.
+ * CLEANUP_ROUND (8) for gdcmPixelConvert (end of RLE nigthmare)
+ - src/gdcmRLE.cxx removed
+ - src/gdcmPixelConvert.cxx all RLE code is now in PixelConvert::
+ - src/CMakeLists.txt gdcmFile.[cxx|h] changed accordingly
+ - src/gdcmRLEFrame*.h gdcmPixelConvert is now a friend class.
+ * CLEANUP_ROUND (9) for gdcmPixelConvert
+ - src/gdcmFile.[cxx|h} gdcmPixelConvert.[cxx|h], SwapZone(),
+ ConvertReorderEndianity(), ConvertDecmpres12BitsTo16Bits() moved
+ away from gdcmFile:: to gdcmPixelConvert::.
+
+2004-10-07 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * CLEANUP_ROUND (5) for gdcmPixelConvert (Upshit creek without a paddle)
+ - src/gdcmDocument.[cxx|h] Parse7Fe0 renamed to ComputeRLEInfo.
+ This is because Parse7Fe0 used to parse the pixels to compute the
+ length. This task was passed over to FindDocEntryLengthOB() a long
+ time ago, EXCEPT I forgot the OW case...
+ Hence Parse7Fe0 was no longer necessary. When renaming to ComputeRLEInfo
+ we just recylce the code for parsing RLE fragments and computing
+ offsets.
+ * CLEANUP_ROUND (6) for gdcmPixelConvert (man, I need a paddle bad)
+ - src/gdcmRLE.cxx: is now much simpler and avoids code replication
+ with the retired Parse7Fe0().
+ - src/gdcmRLEFrame.h: type fix for properly computing OffSet[]
+ - src/gdcmDocument.cxx: segments offset are now correct + clean up.
+
+2004-10-06 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * CLEANUP_ROUND (3) for gdcmPixelConvert (nightmare stage)
+ - src/gdcmRLEFramesInfo.[cxx|h], gdcmRLEFrame.h added
+ - src/gdcmDocument.[cxx|h] ::Parse7FE0 now sets up the RLEInfo.
+ - src/CMakeLists.txt: alphabetic order reodering + new entries.
+ * CLEANUP_ROUND (4) for gdcmPixelConvert
+ - src/gdcmDocument.[cxx|h] ::ParseDES and ::ParseSQ no longer bother
+ to return an unused length.
+
+2004-10-09 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Remove all sprintf from the code to centralize in one spot in gdcmUtil
+ this should be cleanner from the plane view. The iostream are erally a pain
+ to use to do simple stuff.
+
+2004-10-04 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Redo the compilation of the ijg jpeg library. Now only one source is
+ necesseray. No need to rename file by hand what so ever. CMake handle the
+ copying of the file within different directory, configure header file to
+ modify some symbol. The only addition made to ijg wasd a mangle table so
+ that symbol are different whether we are within 8bits or 12bits.
+
+2004-10-01 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Added documentation of vtkgdcmReader on Website:
+ - testvtkGdcmReader.cxx renamed to vtkGdcmDemo.cxx (to be compatible
+ with it's binary name).
+ - vtk/vtkGdcmDemo.cxx and vtkgdcmViewer.cxx: added comments for
+ the Website to be more complete.
+ - Doc/doxygen.config.in: vtk/vtkGdcmReader.cxx now appears on
+ doxygenated documentation.
+ - Doc/DoxyVtkGdcmReaderExamples.txt added
+ (see http://www.creatis.insa-lyon.fr/Public/Gdcm/html.developper/
+ DoxyVtkGdmReaderExamples.html )
+ * src/win32, vtk/win32 manually maintained .dsp and .dsw removed.
+ * CLEANUP_ROUND (3) for gdcmPixelConvert
+ - src/gdcmFile.cxx, gdcmFile.h splitting GetImageDataIntoVectorRaw
+
+2004-09-29 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * CLEANUP_ROUND (2) for gdcmPixelConvert
+ - src/gdcmFile.cxx, gdcmFile.h splitting GetImageDataIntoVectorRaw
+
+2004-09-29 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * CLEANUP_ROUND for gdcmPixelConvert:
+ - src/gdcmFile.cxx, gdcmFile.h, gdcmHeader.cxx, gdcmHeader.h clean up
+ - src/gdcmPixelStuff[h|cxx] removed
+ - src/gdcmPixelConvert[h|cxx] added. Preparatory work included.
+ - src/CMakeLists.txt changed accordingly
+ * GDCMHOME clean up:
+ - MANIFEST.in, WrapSwig.py, WrapVTK.py, distutilsWrapping.py and
+ gdcmVersion.py moved to newly created ATTIC related
+ gdcmPython/SetupOldies/ directory.
+ * Autotools clean up:
+ - */*/Makefile.am removed AT EXCEPTION of gdcmPython/Makefile.am
+ - autogen.sh configure.in acinclude.m4 python.m4 removed
+
+2004-09-27 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/*.cxx *.h Reference to License.htm fixed to License.html.
+ * Doc/CMakeLists.txt, doxygen.config.in: fix.
+ * Doc/Website/ConformanceSummary.html, minimal conformance statement added.
+
+2004-09-24 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * TODO updated with Mathieu suggestions. I proposed a template for
+ describing TODO entries and used it for new entries.
+ * Added Doc/Website/CodingStyle.html, Developpers.html,
+ DeveloppersPython.html, GdcmDataCvs.html and
+ DownloadVersion0_1.html, DownloadVersion0_3.html.
+ * Some Doc/*.txt Doxygen files (which do not really concern the
+ documentation itself, but the website) moved to html and
+ placed in directory Doc/Website:
+ - Doc/DoxyDevelInstal.txt moved to Doc/Website/Developpers.html
+ - Doc/DoxyInstallation.txt moved to Doc/Website/Installation.html
+ - Doc/DoxyIntroduction.txt included in Doc/Website/Main.html
+ * Doc/DoxyfileDeveloppers, DoxyfileUsers, Makefile.am oldies removed.
+ * CMakeLists.txt changed accordingly.
+ * DEVELOPPER spread out in Doc/Website/Developpers.html, CodingStyle.html,
+ DeveloppersPython.html
+ * INSTALL nows refers to Doc/Website/Installation.html
+
+2004-09-23 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Added Doc/Website directory, that contains a first raw version
+ of gdcm Web site.
+
+2004-09-23 Jean-Pierre Roux
+ * FIX In order not to be poluted any longer by casting problems,
+ the member VoidArea of gdcmBinEntry is now uint8_t* (instead of void *)
+ we can now delete[] it safely
+ * VoidArea is now called BinArea (less confusing name),
+ and all the methods called ...VoidArea... are now ... BinArea...
+ * class gdcmObject is now called gdcmDicomDirObject (less confusing name)
+
+2004-09-22 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmDocument.cxx: gdcmDocument::~gdcmDocument() doesn't clear (nor
+ clear) TagHT, which is an inherited member of gdcmElementSet. It is
+ up to the destructor of gdcmElementSet to clean up TagHt and it's
+ pointed content.
+
+2004-09-21 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Test/CMakeLists.txt: update to follow gdcmData renamings.
+ * src/gdcmCommon.h, gdcmDocument.cxx: doxygen typos
+
+2004-09-17 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * ENH: added some utility method that builds a flat dictionary
+ holding all the Dicom entries contained in the recursive structure
+ of a gdcmElementSet. Refer to add FlatHashTablePrint.cxx for
+ an example of usage.
+ - src/gdcmDocument.[h|cxx] added BuildFlatHashTableRecurse() and
+ BuildFlatHashTable() that build a flat dictionary.
+ - src/gdcmElementSet.h: added a new private GetTag() accessor.
+ gdcmDocument is now a friend of gdcmElementSet.
+ - src/gdcmElementSet.cxx: clean up.
+ - Example/FlatHashTablePrint.cxx added.
+ - Example/CmakeLists.txt changed accordingly
+
+2004-09-16 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * gdcmDocEntrySet::SQDepthLevel and gdcmDocEntrySet::BaseTagKey attributes
+ moved away from gdcmDocEntrySet (since this class is an abstract class
+ acting like an interface). SQDepthLevel and BaseTagKey are now
+ in class
+ - src/gdcmDocEntrySet.[h|cxx] removal of SQDepthLevel and BaseTagKey
+ and associated accessors. Doxygenation of the class.
+ - src/gdcmSQItem.[h|cxx] SQDepthLevel and BaseTagKey and associated
+ accessors added.
+ - src/gdcmSeqEntry.[h|cxx]: constructor doesn't handle depth anymore.
+ Use SQDepthLevel accessor instead. ::Print() adapted.
+ - src/gdcmElementSet.cxx changed according to changes in gdcmSeqEntry.
+ - src/gdcmDocument.cxx changed accordingly.
+
+2004-09-13 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Preparation of writing a gdcmHeader iterator: generalisation of gdcmTagKey
+ - The following is the doxygen comment of the typedef declaration
+ of gdcmTagKey in src/gdcmCommon.h:
+ gdcmTagKey is made to old an "universal" (as in URL, Universal
+ Ressource Locator) key to a gdcmDocEntry i.e. a dicom tag.
+ A dicom tag always has a group and an element, but a set of tags
+ embeded in various (optionally nested) sequences and sharing
+ the same group and element all share the same (group, element)
+ "identifier". Hence the (group, element) cannot be used as an
+ identifier (in gdcm we shall refer to a "TagKey") of a tag.
+ In order to construct a proper tag identifier (i.e. a key) we
+ consider the following definition of a TagKey:
+ - let Group, Element be the string representation of the
+ group and element dicom tag members,
+ - let ItemNumber be the string representation of the integer
+ index of the considered item number of a sequence,
+ Let the key of a tag embeded in a sequence, noted SeqTag, be
+ the form:
+ /ItemNumber#Group|Element
+ where "/", "#" and "|" are characters acting as separators.
+ Then the general form of a gdcmTagKey is given by:
+ Group|Element<SeqTag>
+ where <SeqTag> means NO or many instances of SeqTag.
+ Hence the gdcmTagKey of a tag not "leaving" in a sequence is the
+ string e.g.
+ 0028|1201
+ but the gdcmTagKey of a tag "embeded" is the first item of
+ a sequence, itself nested in the third item of a sequence is the
+ string e.g.
+ 0004|1220/2#0008|0082/0#0008|0090
+ - src/gdcmDocEntry.h: added a new Key (of type gdcmTagKey) member, in
+ order to hold the new sequence compatible key. Previously, the
+ GetKey() method would look in the underlying gdcmDictEntry.
+ - src/gdcmDocEntry.cxx:
+ -- constructor now copies the underlying DictEntry key, in the local
+ Key member.
+ -- ::Print: displays the member Key, instead of the (group, element).
+ - src/gdcmCommon.h: added some comments on typedef gdcmTagKey.
+ - src/gdcmDocEntrySet.h:xi
+ -- ::ParseDES() now setups the gdcmTagKey of the sequence it is parsing.
+ -- now has a new BaseTagKey member.
+ -- STYLE.
+ * src/gdcmValEntry.[h|cxx], src/gdcmBinEntry.[h|cxx]: the member VoidArea,
+ previously a member of gdcmValEntry, moved to gdcmBinEntry were is
+ truly belongs.
+ This poses the problem with the semantics of the following lines
+ LoadEntryVoidArea(0x0028,0x1201); // R LUT
+ LoadEntryVoidArea(0x0028,0x1202); // G LUT
+ LoadEntryVoidArea(0x0028,0x1203); // B LUT
+ in gdcmDocument::gdcmDocument(std::string const & ). Please refer
+ to the long FIXME note for what the problem is. Nevertheless in
+ order to get things working the dicom dictionary was altered !
+ Please fix things urgently...
+ * Dicts/dicomV3.dic WRONGLY altered (this means we introduced a uncorrect
+ information), see above note on moving the member VoidArea. Nevertheless
+ the following entries previously correctly set as US are now inproperly
+ set to OW:
+ 0028 1201 OW IMG Red Palette Color Lookup Table Data
+ 0028 1202 OW IMG Green Palette Color Lookup Table Data
+ 0028 1203 OW IMG Blue Palette Color Lookup Table Data
+ * src/gdcmDocEntry.[h|cxx], src/gdcmSeqEntry.h: SQDepthLevel member
+ of gdcmDocEntry moved to gdcmSeqEntry.
+ * src/gdcmSeqEntry.cxx: STYLE.
+
+2004-08-04 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Test/TestAllEntryVerify.cxx minor fix and added comments.
+
+2004-08-03 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * gdcmPython/testSuite.py: all the test suite in python is now moved
+ to it's C++ version (see gdcmData/TestAllEntryVerifyReference.txt)
+ * Test/CMakeLists.txt adapted to renaming of files in gdcmData
+ * gdcm/TODO and src/gdcmDictSet.h cleaned up frow the "TODO Swig" oldies
+
+2004-08-02 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * gdcmPython/CMakeLists.txt: SWIG_FLAGS doesn't declare includeall
+ to avoid inclusion recursion until STL is reached.
+ * src/gdcmDocument.[h|cxx]: exceptions substituted to errno C-style
+ mecanism. errno.h is not included in gdcm anymore.
+ * src/gdcmException.h: introduced new gdcmFormatUnexpected class
+ (gdcmFormatError now inherits from gdcmFormatUnexpected).
+ * TODO updated
+ * gdcmPython/testSuite.py checks on CR-MONO1-10-chest.dcm moved to
+ gdcmData/TestAllEntryVerifyReference.txt
+ * Test/TestAllEntryVerify.cxx is now effective (used always return true)
+ * src/gdcmDocument.[cxx|h]: constructors no longer use the bool
+ exception_on_error parameter.
+ - src/gdcmFile.[cxx|h], src/gdcmHeader.[cxx|h] changed accordingly,
+ - vtk/vtkGdcmReader.cxx changed accordingly,
+ - Example/*.cxx and Test/*.cxx changed accordingly.
+
+2004-07-06 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmDicomDir.cxx, gdcmDocEntrySet.cxx: removed inclusion of errno.h
+ * src/gdcmDocument.[h|cxx], gdcmFile.[h|cxx], gdcmHeader.[h|cxx]:
+ enable_sequences removed from gdcmHeader constructor and dependencies.
+ * Example/PrintHeader.cxx: fixed accordingly (enable_sequences removal).
+ * gdcmPython/demo/PrintHeader.py: dummy fix.
+ * src/gdcmDocument.[h|cxx], gdcmFile.[h|cxx], gdcmHeader.[h|cxx]:
+ skip_shadow removed from gdcmHeader constructor and dependencies.
+ * Example/*.cxx and Test/*.cxx changed accordingly.
+
+2004-07-27 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Test/CMakeLists.txt: newly re-introduced SIEMENS_Sonata-12-MONO2-SQ.dcm
+ in gdcmData (previously known as E00001S03I0015.dcm) is blacklisted.
+
+2004-07-21 Jean-Pierre Roux
+ * FIX Now, Parsing and Printing a DICOMDIR do work!
+ ( troubles remain in makeDicomDir and BuildUpDicomDir :-(
+
+2004-07-20 Jean-Pierre Roux
+ * FIX Some brain damaged headers have Zero-Lenght fields
+ for 'Transfert Syntax UID', or 'Media Stored SOP Class UID'.
+
+2004-07-19 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmCommon.h, gdcmDict.cxx, gdcmTS.cxx : bug fix for msvc6 compilation
+ * src/gdcmDebug.[h|cxx] : bug fix for msvc6 compilation. Replace the dbg
+ variable (instance of gdcmDebug) by a definition macro, and the instance
+ is now in static in the gdcmDebug class
+ * src/gdcmSQItem.h : (FIXME) remove an undefined method
+ * Test/PrintAllDocument.cxx : bug fix in the result of the test
+
+2004-07-06 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * WARNING: ctest now depends more tightly on gdcmData. You should
+ check out gdcmData properly for things to run smoothly...
+ * src/gdcmDocument.cxx MAX_SIZE_LOAD_ELEMENT_VALUE is set back to 0xfff
+ (4096) for "ctest -R TestAllEntryVerify" to be able to run (i.e.
+ we need the pixels not be loaded in order to use the ValEntry
+ that displays position and size).
+ * Test/TestAllEntryVerify.cxx a new low level test now seems fair.
+ This is a C++ based equivalent of gdcmPython/testSuite.py that should
+ be deprecated. If you have any doubts about the advantages of a
+ modern scripting language (read Python) versus grass root C++ (i.e.
+ without lex + yacc, because of gdcm commitement to MS-VC++, sighhh),
+ I suggest you compare TestAllEntryVerify.cxx (639 lines, without the
+ reference file gdcmData/TestAllEntryVerifyReference.txt) and testSuite.py.
+ Anyhow, consider documenting the gdcmData images in
+ gdcmData/TestAllEntryVerifyReference.txt (and please run ctest before
+ commiting changes).
+ * Test/CMakeLists.txt:
+ - now uses TestAllEntryVerify.cxx
+ - specific comments on oldACR00001.ima (now renamed in gdcmData
+ to SIEMENS_GBS_III-16-ACR_NEMA_1.acr) moved away to
+ gdcmData/TestAllEntryVerifyReference.txt
+ * TODO updated.
+
+2004-07-02 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/*.[h|cxx] : typedef clean up
+ - guint16 and guint32 removed. Use ISO C uint16_t, uint32_t instead.
+ - TagKey renamed to gdcmTagKey (for external usage)
+ - VRKey renamed to gdcmVRKey (for external usage)
+ - removal of typedef duplication.
+ - Removed all unecessary inline keyword from class inline definitions.
+ - Some method|function(void) declarations replaced with method|function().
+ * src/jpeg/libijg12/jdhuff12.c:
+ - printf polluting ctest removed.
+ - TAB removal for comminting
+ * Test:
+ - TestAllReadCompareDicom.cxx: added a test that compares all the
+ images in gdcmDataImages.h with corresponding images in
+ gdcmData/BaselineDicom/. When baseline images are not present
+ this test creates them.
+ Note: we need to validate each reference image, but before that
+ I'd like to rename them with a more explicit name...
+ - CMakeLists.txt: changed accordingly.
+ * Example/*.cxx: examples now only include gdcm.h (as opposed to
+ including each header needed).
+
+2004-07-01 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Test/*.cxx and Example/*.cxx: moved some examples away from the
+ test suite to the Example directory. Are concerned:
+ - PrintHeader.cxx
+ - TestDcm2Acr.cxx
+ - TestFindTags.cxx
+ - TestWrite.cxx was
+ - TestWriteSimple.cxx
+ * Test/CMakeLists.txt: added some comments on reasons for black listing
+ image gdcmData/oldACR00001.ima
+
+2004-06-30 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Test/CmakeList.txt: removed the following from black list (to be coherent
+ with removal from gdcmData):
+ - gdcm-MR-PHILIPS-16-Multi-Seq.fixed.dcm
+ - gdcm-MR-PHILIPS-16.dcm
+ - US.3405.1.dcm
+ Added the following because after last cvs update, they cause
+ ctest -R TestReadWriteReadCompare
+ to segfault:
+ - gdcm-MR-SIEMENS-16-1.acr
+ - oldACR00001.ima
+ * Test/TestReadWriteReadCompare.cxx was properly written (with a call
+ to gdcmFile::SetImageData()) BUT since gdcmFile is brain damaged (see
+ new comments in this file) we temporarily (sigh) move to a weaker
+ form of test...
+ * Test/CmakeList.txt: with the change to Test/TestReadWriteReadCompare.cxx
+ we don't need to black list the following images anymore:
+ - 8BitsUncompressedColor.dcm
+ - OT-PAL-8-face.dcm
+ - US-PAL-8-10x-echo.dcm
+ * src/gdcmDocument.[h|cxx]: RE-Reverting to version 1.42 with the proper
+ fixes and the beautified code ;-)
+ This fixes the bug introduced in version 1.42 (when beautifying)
+ that made the parsing of 8BitsRunLengthColor.dcm unproper.
+ Note: ctest was blind to this bug (this means we need to still
+ improve the test suite). The bug could be detected by using
+ gdcmbin/bin/PrintDocument $GDCM_DATA/8BitsRunLengthColor.dcm
+ or by using
+ gdcmbin/bin/ReadWrite $GDCM_DATA/8BitsRunLengthColor.dcm
+ and by displaying the (garbage) produced file temp.XDCM...
+
+2004-06-29 Jean-Pierre Roux
+ FIX : - remove Frog's beautified, but never checked 'Parse7FE0' code,
+ - replace by uggly but working old code :-(
+ A lot of things should be OK again.
+ It's really urgent to have a test suite that *tests*,
+ to prevent Frog's beautifying sessions to break all the stuff
+ (twice, withing a fortnigh ...)
+
+2004-06-28 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Test/TestWriteRead.cxx and TestReadWrite.cxx merged (because of
+ redundancy) to added Test/TestReadWriteReadCompare.cxx
+ * Test/CmakeList.txt: because the compare test of
+ Test/TestReadWriteReadCompare.cxx fails, the following images are
+ black listed: - 8BitsUncompressedColor.dcm
+ - OT-PAL-8-face.dcm
+ - US-PAL-8-10x-echo.dcm
+ * src/gdcmDocument.cxx: for broken (non DICOM V3 conformal) images
+ (e.g. gdcm-JPEG-LossLess3a.dcm see comments in
+ gdcm/gdcmPython/testSuite.py for details) ::FindDocLengthOB() had
+ and ad-hoc kludge. This kludge is now removed, and on encountering
+ such an image (OB field brain damaged) we set errno. Then in
+ ::FindDocLength() we "fix" the length as being ALL what remains
+ in the file (until EOF). We then proceed, hoping for the best...
+ This fixes a SegFault in ShowDicom when trying to write such an
+ image.
+ * Test/CmakeList.txt: 8BitsRunLengthColor.dcm is now blacklisted
+ (because TestWriteRead breaks on it, after a non conformal commit?).
+ ctest now runs properly, except for MakeDicomDir (which was always
+ broken) and the Python related stuff (still not fixed).
+
+2004-06-24 Jean-Pierre Roux
+ ADD : Examples/WriteRead, that acts like the former Test/TestWriteRead
+ FIX : Test/TestReadWrite now iterates on all the file names
+ (instead of infinite loop)
+ ENH : Test/TestWriteRead now iterates on all the file names
+
+2004-06-28 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Test/TestReadWrite.cxx: now uses all the images of gdcmData.
+
+2004-06-24 Jean-Pierre Roux
+ FIX : - now Write drops LUT Descriptors and LUTs (if any)
+ when SamplesPerPixel =3
+ - now Write is no longer confused by
+ 'BitsAllocated = 12" and 'BitsStored=12"
+ - "UN" value representation Elements are now written correctly
+ (their legth is stored on 4 bytes -just like OB, OW, and SQ-)
+ ENH : - now gdcmHeader has its own Write methods
+ (in order to split the job that has not to be done
+ for gdcmDicomDir)
+
+2004-06-23 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Test/PrintAllDocument.cxx: looping on files is now effective. It used to
+ loop on the same image until memory went out.
+ Note: this means we still have gobs of memory loss in PrintDocument
+ * src/gdcmDocument.cxx: fixes problem on parsing on file
+ gdcmData/16BitsJpegLosslessGrayScale.dcm.
+
+2004-06-24 Jean-Pierre Roux
+ FIX : Write - All the Sequences and Sequence Item are now written
+ as 'no length' stuff, and a Sequence Delimitor aor an Item Delimitor
+ is added a the end, when necessary.
+ - A lot of brain-damaged images, that were read correctly are
+ now written correctly
+ - length compatible BinEntry are now loaded correctly
+ (even for odd groups)
+ Note : only Explicit Value Representation was checked.
+ (question : is implicit VR really necessary for gdcm ?)
+
+2004-06-23 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * DEVELOPPER: added a proposition of coding style.
+ * src/gdcmDocEntry.h: removed every inline declaration (for test of
+ coding style).
+
+2004-06-23 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * gdcmDocEntry::PrintCommonPart() and ::WriteCommonPart() removed.
+ Use the gdcmDocEntry::Print() and Write() instead.
+ * src/gdcmDocument.cxx: bug fix.
+
+2004-06-22 Jean-Pierre Roux
+ FIX : gdcmDocument.cxx
+ - Now we do recognize the JpegLossLess format (there was a misstyping in
+ code 'beautyfication' :-(
+ - Now we automaticaticaly load the Luts, if any
+
+2004-06-22 Jean-Pierre Roux
+ In order : to write Sequences, whatever their imbrication level,
+ : to allow user to create his own Sequences
+ a lot of modif where necessary (adding, moving, or virtualising methods)
+
+ WARNING : save your own sources *before* cvs up !
+
+ - gdcmBinEntry
+ ADD virtual void Write(FILE *fp, FileType filetype);
+
+ - gdcmDocEntry
+ ADD virtual void Write(FILE *fp, FileType filetype);
+ ADD void gdcmDocEntry::WriteCommonPart(FILE *fp, FileType filetype);
+
+ - gdcmDocEntrySet
+ ADD virtual void Write (FILE *fp, FileType filetype)=0;
+ ADD virtual gdcmDocEntry *GetDocEntryByNumber(guint16 group,guint16 element) = 0;
+ ADD gdcmDocEntry *GetDocEntryByName(std::string name);
+ ADD virtual std::string GetEntryByNumber(guint16 group,guint16 element) = 0;
+ ADD std::string GetEntryByName(TagName name);
+ ADD gdcmDictEntry *NewVirtualDictEntry(guint16 group,
+ guint16 element,
+ std::string vr = "unkn",
+ std::string fourth = "unkn",
+ std::string name = "unkn");
+ ADD gdcmValEntry *NewValEntryByNumber(guint16 group, guint16 element);
+ ADD gdcmBinEntry *NewBinEntryByNumber(guint16 group, guint16 element);
+ ADD gdcmDocEntry *NewDocEntryByNumber(guint16 group, guint16 element);
+ ADD gdcmDocEntry *NewDocEntryByName (std::string Name);
+ ADD gdcmDictEntry *GetDictEntryByName (std::string Name);
+ ADD gdcmDictEntry *GetDictEntryByNumber(guint16, guint16);
+ REM virtual gdcmDocEntry *NewDocEntryByNumber(guint16 group, guint16 element)=0;
+ REM virtual gdcmDocEntry *NewDocEntryByName (std::string Name)=0;
+
+ - gdcmDocument
+ ADD virtual bool WriteF(FileType type); // New stuff, with recursive exploration
+ ADD virtual std::string GetEntryByName (TagName tagName);
+ ADD virtual std::string GetEntryVRByName (TagName tagName);
+ REM virtual bool Write(FILE *, FileType);
+ REM virtual void WriteEntryTagVRLength(gdcmDocEntry *tag,
+ FILE *_fp, FileType type);
+ REM virtual void WriteEntryValue(gdcmDocEntry *tag,FILE *_fp,FileType type);
+ REM virtual bool WriteEntry(gdcmDocEntry *tag,FILE *_fp,FileType type);
+ REM virtual bool WriteEntries(FILE *_fp,FileType type);
+ REM virtual std::string GetEntryByName (std::string tagName);
+ REM virtual std::string GetEntryVRByName (std::string tagName);
+ REM gdcmDictEntry *GetDictEntryByName (std::string Name);
+ REM gdcmDictEntry *GetDictEntryByNumber(guint16, guint16);
+ REM gdcmDictEntry *NewVirtualDictEntry(guint16 group,
+ guint16 element,
+ std::string vr = "unkn",
+ std::string fourth = "unkn",
+ std::string name = "unkn");
+ REM gdcmDocEntry *NewDocEntryByNumber(guint16 group, guint16 element);
+ REM gdcmDocEntry *NewDocEntryByName (std::string Name);
+ REM gdcmValEntry *NewValEntryByNumber(guint16 group, guint16 element);
+ REM gdcmBinEntry *NewBinEntryByNumber(guint16 group, guint16 element);
+
+ - gdcmElementSet
+ ADD virtual void Write(FILE *fp, FileType filetype);
+
+ - gdcmSeqEntry
+ ADD virtual void Write(FILE *fp,FileType filetype);
+
+ - gdcmSQItem
+ ADD virtual void Write(FILE *fp, FileType filetype);
+ ADD virtual std::string GetEntryByNumber(guint16 group, guint16 element);
+ REM std::string GetEntryByNumber(guint16 group, guint16 element);
+ REM std::string GetEntryByName(TagName name);
+
+ - gdcmValEntry
+ ADD virtual void gdcmValEntry::Write(FILE *fp, FileType filetype);
+
+2004-06-21 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Test/TestWriteSimple.cxx: fix to gdcmHeader-gdcmHeaderHelper revamping.
+ The default constructor invoked by the line
+ gdcmHeader *f1 = new gdcmHeader( header );
+ was gdcmHeader::gdcmHeader(bool) instead of the expected
+ gdcmHeader::gdcmHeader(std::string const &, bool = false, bool, bool).
+ Hence the parsing wasn't executed... See also below.
+ * src/gdcmHeader.h: the declaration of gdcmHeader::gdcmHeader(bool)
+ as explicit constructor didn't do the trick to fix the above problem.
+ Could anyone explain why ?
+ * src/gdcmBinEntry.cxx, gdcmValEntry.cxx: gdcmBinEntry::Print() now
+ properly calls gdcmValEntry::Print() (that was weed out from
+ code related to gdcmBinEntry).
+
+2004-06-20 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * In order to fix memory leaks:
+ - Test/TestWriteSimple.cxx: added cleaning of free store through
+ some delete calls.
+ - src/gdcmBinEntry.cxx: fix to avoid SegFault.
+ - src/gdcmDicomDir.[cxx|h]: fixed initialisation in constructor
+ gdcmDicomDir::gdcmDicomDir(bool) [either the constructor itself
+ (through the call to ::AddDicomDirMeta()) or the destructor
+ would crash when deleting uninitialized ::metaElems].
+ - src/gdcmDictEntry.cxx: annotation of ununderstood memory leak.
+ - src/gdcmDocument.cxx:
+ -- ::~gdcmDocument() destructor now cleans up all dictionary entries
+ from dynamic stores.
+ -- ::ParseDES() misplaced deletion of temporary NewDocEntry
+ was causing memory leaks.
+ - src/gdcmSQItem.cxx:
+ -- ::~gdcmSQItem() dummy code cleaned (learned that deletion is
+ cleanly handled with polymophism: sorry but my milage is low).
+ -- ::SetEntryByNumber(string, guint16, guint16) now cleanly allocates
+ a gdcmValENtry, and makes no assumption on type (gdcmDocEntry,
+ gdcmSeqEntry vs gdcmValEntry) of existing entry (when present).
+ This avoids SegFaulting.
+ - src/gdcmSQItem.h: coding style.
+ * Conclusion:
+ - Test/TestWriteSimple still severely sucks. The output image content
+ (when $(GDCMDATA_HOME)/012345.002.050.dcm in input) is brain
+ damaged when displayed with vtkgdcmViewer.
+ - on memory leaks: TestWriteSimple leaks really less (see entry
+ of 2004-06-18 in Changelog file for the call to valgrind).
+ - on segfaults: ctest now passes all the tests but one (no more
+ segfaults).
+ * Erroneous leading white fix:
+ - src/gdcmDict.cxx: getline(from,xxx) doesn't remove the leading
+ white[s] (as opposed to from >> xxx, that removes it [them].
+ - src/gdcmTS.cxx: ditto.
+ - gdcmPython/testSuite.py: dirty related kludge removed.
+ * src/*: remaining references to gdcmParser removed.
+ * src/*[cxx|h]: added copy[way]left header.
+
+
+2004-06-18 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * In order to fix writing of dicom files:
+ - Test/TestWriteSimple.cxx: a simpler example of writing.
+ - Test/CMakeLists.txt changed accordingly.
+ - src/gdcmDocument.cxx:
+ -- The destructor now recursilvely removes potential sequences.
+ -- Bug fix in ::IsJPEG2000()
+ -- ::ReplaceOrCreateByNumber(std::string, guint16, guint16)
+ now handles promotion of gdcmDocEntry to gdcmValEntry in a cleaner
+ manner.
+ -- ::GetValEntryByNumber(guint16, guint16) now defined (as opposed
+ to only declared) and build on top of
+ ::GetDocEntryByNumber(guint16, guint16).
+ -- ::SetEntryByNumber() now uses GetValEntryByNumber(group, element)
+ - src/gdcmElementSet.[h|cxx]: added ::RemoveEntry(gdcmDocEntry *)
+ for usage in destructor and treatement of promotion in
+ ::ReplaceOrCreateByNumber().
+ - src/gdcmSQItem.cxx: destructor should better handle his job.
+ Test/TestWriteSimple now runs (or at least it DOES something).
+ * We can now start hutting memory links. A good starting point is:
+ valgrind -q --skin=memcheck --leak-check=yes --leak-resolution=high
+ --num-callers=100 --show-reachable=yes gdcmTests TestWriteSimple
+ $(GDCMDATA_HOME)/012345.002.050.dcm foo.dcm
+
+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 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
+ big endian made volumes
+ * ENH Now gdcmParser constructor and destructor are protected to forbid
+ end user to instanciate class gdcmParser
+ (only gdcmHeader and gdcmDicomDir are meaningfull)
+
+2004-03-22 Benoit Regrain
+ * FIX : src/gdcmDicomDir.cxx : make windows compilable
+ * FIX : gdcmPython/gdcm.i : change gdcmStudy to gdcmDicomDirStudy and
+ gdcmSerie to gdcmDicomDirSerie
+
+2004-03-19 Jean-Pierre Roux
+ * ENH Now the tree-like structure describing a DICOMDIR comming from
+ an already existing DICOMDIR file is consistent with
+ the home-made tree-like structure build ex-nihilo
+ or build from the files held (recursively) in a Directory
+ functions gdcmDicomDir::CheckBoundaries()
+ gdcmObject::SetBoundaries() added
+
+2004-03-17 Jean-Pierre Roux
+ * REM (Eric Boix bug) : removal of meaningless
+ gdcmDicomDirImage::NewImage function.
+ * FIX now file names and directory name are written properly in the
+ DICOMDIR
+ * FIX now gdcmDicomDir constructor may be call without any trick
+ about the name
+
+2004-03-16 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * FIX (JPR bug) : src/gdcmDicomDirImage.cxx added missing definition
+ of gdcmDicomDirImage::NewImage as empty function.
+
+2004-02-28 Jean-Pierre Roux
+ * ENH add gdcmDicomDir:NewPatient
+ add gdcmDicomDirPatient:NewStudy
+ add gdcmDicomDirStudy:NewSerie
+ add gdcmDicomDirSerie:NewImage
+ to allow making gdcDicomDir object.
+ * ADD PrintDicomDir executable that uses gdcmDicomDir tree-like structure
+ (as opposite to the gdcmHeader chained list)
+
+2004-02-11 Benoit Regrain
+ * FIX : memory leaks and the set of ArgDelete methods in gdcmDicomDir
+ when using from python
+
+2004-02-10 Benoit Regrain
+ * FIX : bug fix in the gdcmDirList for the recursivity in directories
+ * FIX : in gdcmDicomDir when the directory is empty
+ * ENH : add callback and methods to get the progression of dicomDir
+ directory parsing
+
+2004-02-06 Jean-Pierre Roux
+ * ENH : - now gdcmDicomDir::CreateDicomDir() returns also the meta elements
+ - GDCM_META added to gdcmDicomDirType
+ - class gdcmMeta created
+ * ENH : - A brief summary is now displayed at the beginning of
+ 'testDicomDir' to help disaster magnitude estimation
+ * REM : Now useless Test/explDICOMDIR.cxx
+
+2004-02-05 Benoit Regrain
+ * ENH : add methods in gdcmObject to get the hash table or the list of
+ header entries
+ * FIX : wrapping python for ListPatient, ListStudy, ListSerie, ListImage
+ * FIX : wrapping python for TagHeaderEntryHT
+
+2004-02-04 Benoit Regrain
+ * FIX : even length for some strings when writting the dicom dir
+ * FIX : sort the images in the dicom dir
+ * FIX : Bug fix for python use of dicom dir
+ * ADD : a python demo
+
+2004-02-04 Jean-Pierre Roux
+ * FIX : Final solution (?) for icone embedded images
+ * FIX : dicomVR.dic Overlay group is not *only* 6000, but 60xxx
+ (see http://medical.nema.org/dicom/2003/03_06PU.PDF)
+ add groups 6002, 6004, 6006, to allow 'clean' parsing of
+ gdcmData/gdcm-MR-SIEMENS-16.acr1
+ * ENH add gdcmData/checkWriteExplicit.sh gdcmData/checkWriteImplicit.sh
+ to make full checking easier
+
+2004-02-04 Benoit Regrain
+ * FIX : WriteEntries : coding style & logic in parameters
+ * FIX : Set the elements to create the DicomDir in a dictionary file
+
+2004-02-03 Benoit Regrain
+ * gdcmDirList : to parse a hard drive directory in recursive (or not)
+ * gdcmDicomDir : add the load of directory
+ * Bug fix and print add-on
+
+2004-02-03 Jean-Pierre Roux
+ * ENH gdcmParser : allows "DICM" files, with NO group '0002'
+ * FIX handling 'non string elements' unsecure area (LUT, overlays, etc)
+ * FIX Dicts/dicomV3.dic : Add a few missing 'group length' Elements
+ * FIX gdcmParser.cxx : 'group length' elements are now considered
+ as integers, even for shadow groups, when file is Implicit VR
+
+2004-02-02 Jean-Pierre Roux
+ * FIX : gdcmWrite : equal_range() for multimap doesn't return a 'second'
+ iterator on last
+ of the last synonym :-(
+ * FIX : gdcmWrite::WriteBase : method stops if Pixels not yet Read (except
+ for DICOMDIR ;-)
+ * ENH gdcmData/checkWrite.sh :modif for full check of Explicit VR writting
+ * FIX taking into account the possible 7fe0,0010 multiplicity
+ * FIX add GRPixel,NumPixel,countGrPixel (gdcmParser protected members)
+ to allow removal of references to 7fe0,0010, to deal with
+ ACR-NEMA images, when 0028,0200 is meaningfull
+
+2004-01-31 Jean-Pierre Roux
+ * FIX gdcmParser::WriteEntries : when a VR is tagged as 'Unknown'
+ no longer writes 'Un' on disk
+ * FIX SQ elements with actual length are now dealt with corectly
+ * FIX gdcmFile::WriteBase make the difference, for color images, between
+ the length (for Palette expanded images)
+ and Raw Length (non expanded image + Palette)
+ * FIX Dicts/dicomV3.dic : removal of 'CTX' (context dependant) VR
+ (that broke Write). Replaced by UL.
+ Aware user will reload the field if he
+ thinks it's necesssary
+
+2004-01-30 Jean-Pierre Roux
+ * gdcmParser::CheckSwap() now defaults the filetype to ACR
+ when 'dirty Acr' is found, to be compliant with the new
+ IsReadable() methods.
+
+ * gdcmHeaderHelper :add Pixel Type 'FD', for dealing with 'double' images.
+ (no DOUBLE images in kosher DICOM,
+ but so usefull for people that miss them ;-)
+
+ * add Test/testDicomDir.cxx, Test/makeDicomDir.cxx , Test/explDICOMDIR.cxx
+ DICOMDIR related utilities (not checked as Windoze compliant)
+
+2004-01-28 Jean-Pierre Roux
+ * upgrade GdcmHeaderEntry Print Method for DICOMDIR
+
+2004-01-27 Jean-Pierre Roux
+ * gdcmParser constructor has a new boolean param,'ignore_shadow',
+ to allow skipping the shadow elements, to save memory space.
+ The TRUE value for this param has to be used
+ with a FALSE value for the 'enable_sequence' param.
+ ('public elements' may be embedded in 'shadow Sequences')
+ * gdcmHeader methods now deal with 'embedded icones images' in the header
+ (even when an 'icone image sequence' is announced by the
+ element (0x0088,0x0200), but there is NO icone at all ...
+
+ * gdcmHeader sometimes Image Location value doesn't follow
+ the supposed processor endianity (see gdcmData/cr172241.dcm).
+ Fixed
+
+ * gdcmHeader add the method
+ IterHT GetHeaderEntrySameNumber(grPixel,numPixel);
+ to get *all* the Header Entries with the same tag.
+ GetHeaderEntrySameName is probabely *useless*
+ (no meaning : Name is *not* an identifier within the Dictionary)
+
+2004-01-26 Benoit Regrain
+ * Bug fix in the print of hexadecimal representations. Remove long fields
+ in the print and add a third level of print to print them
+
+2004-01-23 Benoit Regrain
+ * Bug fix on field having a VR = 'UI'. Assume that is a string field
+ * Bug fix on test suite after remove the strip made on not string fields
+ * Split the IsReadable method between gdcmParser which test that the file
+ is dicom and gdcmHeader which test that it's an image file
+
+2004-01-22 Benoit Regrain
+ * DicomDir : clean code, add methods, set variables in protected or private
+ * gdcmUtil : bug fix for the clean string method
+
+2004-01-19 Benoit Regrain
+ * Add the use of shadow dictionaries
+ * bug fix and coding style
+
+2004-01-19 Benoit Regrain
+ * src/gdcmFile.cxx : bug fix concerning the close of file
+ * src/gdcmParser.[h|cxx] : remove obvious Pub informations
+ * Add the update of header entries using the shadow library
+
+2004-01-19 Benoit Regrain
+ * removal of file gdcmHeader2.cxx
+ * split class gdcmHeader into gdcmParser and gdcmHeader, with gdcmHeader
+ inheriting from gdcmParser. This split is to prepare the integration
+ of dicom dir parsing
+ * bug fix under python
+
+2004-01-16 Jean-Pierre Roux
+ * REM removal of class gdcmHeaderEntrySet
+ * REM removal of files gdcmHeaderEntrySet.cxx, gdcmHeaderEntrySet.h
+ * ADD add file gdcmHeader2.cxx
+ * ADD add method gdcmHeader::SetPrintLevel (for PrintHeader)
+
+2004-01-15 Benoit Regrain
+ * src/gdcmDicSet.[h|cxx] : add virtual entries to have a reference of
+ entries created while parsing the header. Thus, they will be destroyed
+ when the gdcmDictSet will be destroyed
+ * src/gdcmHeader.cxx, gdcmHeaderEntrySet.cxx : uses virtual entries of
+ gdcmDictSet
+
+2004-01-15 Benoit Regrain
+ * vtk/vtkGdcmReader.cxx : bug fix : before, with python only, the program
+ made a fatal error because of the memory release at the end of program.
+ The problem was in vtkGdcmReader::ExecuteData where we were allocate
+ some memory and vtk seems to have some problems with that.
+ * src/gdcmHeaderEntrySet.cxx : bug fix for std lib and cout
+
+2004-01-14 Benoit Regrain
+ * src/gdcmHeaderEntry.[h|cxx] : gdcmElValue -> gdcmHeaderEntry
+ * src/gdcmHeaderEntrySet.[h|cxx] : gdcmElValSet -> gdcmHeaderEntrySet
+ * src/*.[h|cxx] : make changes due to class name changes
+ * gdcmPython/demo/*.py : bug fix due to method names
+
+2004-01-13 Benoit Regrain
+ * src/*.[h|cxx] : coding style
+ * vtk/*.[h|cxx] : coding style
+
+2004-01-13 Benoit Regrain
+ * gdcmPython/testSuite.py : test the readable flag of file for tests
+ * src/gdcmDict.cxx, gdcmElValSet.cxx : bug fix under windows for prints.
+ It's lied to the stl compilation by MSVC (windows, always windows...)
+ * src/gdcmIdo.h, gdcmHeaderIdo.cxx : remove the Ido unused files
+
+2004-01-12 Benoit Regrain
+ * src/*.h : add comments
+ * src/gdcmDictSet.h : set the method BuildDictPath in public
+ * src/gdcmTS.cxx, gdcmVR.cxx : use now a dictionary file other than to be
+ directly setted in the source code
+ * Dicts/dicomTS.dic, dicomVR.dic : 2 new dictionary files loaded by
+ gdcmTS and gdcmVR
+
+2004-01-09 Benoit Regrain
+ * gdcmPython/gdcmVersion.py : add a gdcmVERSION variable information
+ * setup.py : use a reference to gdcmVERSION
+
+2004-01-07 Benoit Regrain
+ * Modification to compile with the distutils.
+ * Bug fix in code
+
+2003-12-10 Benoit Regrain
+ * gdcmHeader is now aggregating gdcmFile, and not derived into. Thus, we
+ can use a gdcmHeaderHelper to load data
+ * gdcmPython/testSuite.py : make the testSuite compliant with modifications
+ made in the source code
+
+2003-12-10 Benoit Regrain
+ * Update Windows projects and .cvsignore files
+
+2003-11-12 Jean-Pierre Roux
+ * 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-11-12 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * ENH: Update gdcmPython/CMakeLists
+ * FIX: (gdcmHeaderHelper) GetRescale and GetSlope
+ * FIX: (gdcmElValSet) char 'tag' was overiding private members (VC++)
+
+2003-11-10 Jean-Pierre Roux
+ * FIX : gdcmHeader::LoadElements is now based
+ on the ListTag listElem member,
+ not longer on the TagElValueHT tagHt member
+ * ENH : PrintPubElVal shows (temporarily) both results,
+ with the tagHt member and the listElem member.
+ (it's easier to 'see' the problems when using Printheader)
+
+ * FIX : old private member LgrElem is now splitted into
+ ReadLength : Length actually found on disk (updated only
+ if bug fixing is necessary), for internal
+ use only
+ UsableLength : Updated by FixFoundLength, to fix a bug
+ or to allow Parser going on.
+ Will allow to re-write a kosher header when a SeQuence
+ with a length (not 0000) is found
+ Warning : gdcmFile::Write still uses the TagHt (not ListElem)
+ because gdcmElValSet::Add does not update ListElem
+ (to be written)
+
+2003-11-07 Jean-Pierre Roux
+ * FIX misstyping in Transfert Syntax name table
+ * ENH gdcmHeader::FixFoundLength now allow to 'go inside' tge SeQuences
+ when they have an actual length (not 0000 nor FFFFF)
+ (Nobody should care of it, but DICOMDIR explorers)
+
+2003-11-06 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * ENH: vtkgdcmViewer now works with LUT dicom (OT-PAL-face ...)
+
+2003-11-05 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * ENH: vtkGdcmReader now supports LUT !
+ (vtkgdcmViewer for now is not able to use them though)
+
+2003-11-05 Jean-Pierre Roux
+ * in testSuite.py : new files names for checking the package
+ * FIX : Forgot to commit gdcmFile::GetImageDataSizeRaw();
+ that returns the pixel area size to the *aware* (vtk) user
+ that DOESN'T want to turn the PALETTE COLOR image into an RGB image
+
+2003-11-05 Benoit Regrain
+ * in testSuite.py : Modify the rules for checking the paths
+ : Explicit error messages
+ * in __init__.py : Related modif
+
+2003-11-03 Jean-Pierre Roux
+ * add gdcmHeaderHelper::GetNumberOfScalarComponentsRaw()
+ to be used by aware (vtk) users that want to manage
+ LUT (and no to turn the PALETTE image into an RGB pixels one)
+ * GetPixelType now returns 8U for 24 Bits images
+ (vtkGdcmReader compliant)
+
+2003-10-31 Jean-Pierre Roux
+ * Removal of *all* gdcmData images and add them again
+ in order to loose the 'history' of un-anonymised images
+
+2003-10-31 Jean-Pierre Roux
+ * RMV : removal of useless jBitsInJsample.h
+ for both 8 and 12 Bits JPEG Lossy Libraries
+
+2003-10-31 Jean-Pierre Roux
+ * ENH : Add the functions gdcmFile::GetImageDataRaw
+ gdcmFile::GetImageDataIntoVectorRaw
+ that act as GetImageData and GetImageDataIntoVector
+ except the making of an RGB Plane from Gray Plane + LUT
+ Intended to aware (vtk) users who know how to manage
+ such an image :
+ After gdcmHeader :
+ GetLUTRGBA return a R,G,B,A LUT if any
+ lgrTotaleRaw gives the 'Raw' length
+ GetImageDataRaw returns the gray Plane
+ * FIX : no more dirty trick for 'Segmented xxx Palette Color Lookup' images
+ (They stay Grey, just like with other Dicom viewers :-(
+
+2003-10-30 Jean-Pierre Roux
+ * FIX : a VC++ intended syntax modif broke the 12/12 Bytes expanding
+
+2003-10-29 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * ENH: Can be used like this '$vtkgdcmViewer *.dcm' with *.dcm
+ being coherents dicom files.
+
+2003-10-29 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * FIX: DOH ! Forgot about windo$e users, they couldn't read lossless jpeg,
+ from medcon lib !
+ * ENH: Turn it into DOS file type to match libgdcmijpeg8.dsp file type
+ * ENH: Two steps is necessary to please VC++ compiler...
+ * FIX: DOH ! libgdcmijpg8 -> libgdcmljpeg
+ * ENH: Add include dir to medcon lib
+ * FIX: only one function is being exported for now !
+ You should use GLOBAL(return type) see ljpg/jpeg.h for more info
+
+2003-10-29 Jean-Pierre Roux
+ * adding gdcmHeader::GetLUTRGBA
+ returns a 4 * 256 Bytes Reg/Green/Blue/Alpha vtk compliant LUT
+ --> Mathieu, the modif u're waiting for is not yet committed
+ * removal of now useless GetLUTRed,GetLUTGreen,GetLUTBlue,GetLUTRGB
+
+2003-10-27 Jean-Pierre Roux
+ * adding some xmedcon breaker files (courtesy of Loïc Boussel)
+ 00191113.dcm DermaColorLossLess.dcm
+ MxTwinLossLess.dcm RadBWLossLess.dcm
+ * ENH: For version prior to vtkImageViewer2 -r 1.19
+ * FIX: avoid pb with xmedcon-breaker CT McTwin Elscint images
+
+2003-10-27 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Removal of ido stuff in CMakeLists.txt
+
+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 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'
+ * FIX: More pragma disable fro VC++,
+ 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
+ * gdcm now deals with 16 Bits Run Length Encoded images
+ (they are compressed as 2 planes images,
+ one for the high Bytes, the other for low Bytes)
+
+2003-10-22 Jean-Pierre Roux
+ * Now CheckRead takes into account :
+ - the bugged 'Leonardo' Siemens images
+ - the XA images, sent thru the burning VPRO station
+ * add I9000001.dcm, a GE dlx XA image, thru the VEPRO burning station
+ (breaks DicomWorks)
+
+2003-10-22 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * FIX: When copying a Makefile.am to CMakeLists.txt
+ one should remove the '\'
+
+2003-10-22 Jean-Pierre Roux
+ * in gdcmData adding a bugged 'Leonardo' Siemens image
+ (wrong lengths in header)
+ OK with gdcm, KO with the other viewers :-)
+ * add a GE dlx XA image, thru the VEPRO burning station
+ (breaks DicomWorks)
+
+2003-10-21 Jean-Pierre Roux
+ * in gdcmData add the checkvtkgdcmViewer.sh shell script
+ for a brutal checking of vtkgdcmViewer compliance
+
+2003-10-21 Jean-Pierre Roux
+ * add the files for 'xmedcon' Jpeg Lossless library
+ * call of 'xmedcom' Jpeg Lossles libray (instead of the old LibIDO one)
+
+2003-10-21 Jean-Pierre Roux
+ * 'Compacted Files' (12 Bits Allocate, 12 Bits Stored) are now dealt with
+
+2003-10-21 Jean-Pierre Roux
+ * garbage Siemens 'Leonardo' images dealt with
+ (the patch is easy to remove)
+ * cosmetic changes to avoid warnings
+
+2003-10-20 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * ENH: vtkgdcmViewer now autoscale color/window level on start-up,
+ no need to press 'r' now.
+
+2003-10-20 Jean-Pierre Roux
+ * upgrade of checkRead.sh checkWrite.sh according
+ to new Jpeg Lossless decompressor
+ * add US.3405.1.dcm, a genuine RGB medical file ...
+ * add gdcm-ACR-LibIDO.acr, unnormalized Rectangular LibIDO format image
+ * add CLIP0001-Sequoia-U11.dcm, US 'Clip', from SEQUOIA machine,
+ UNIT 11, Hop Cardio
+2003-10-15 Jean-Pierre Roux
+ * general anonymisation in gdcmData
+ * adding the 'color files' from
+ http://www.leadtools.com/SDK/Medical/DICOM/ltdc19.htm
+ * adding some well knowed bugged-header images
+ * adding checkRead.sk, checkReadColor.sh, checkWrite.sh,
+ waiting for their inclusion in Python testsuite
+
+2003-10-15 Jean-Pierre Roux
+ * gdcmHeader::gdcmHeader(const char *InFilename, bool exception_on_error)
+ 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
+
+2003-10-14 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * TODO: *.in file to genereate a UseGDCM later
+
+2003-10-14 Jean-Pierre Roux
+ * Some supposed-to-be Dicom Images have no preamble.
+ OpenFile takes it into account
+ * Jpeg LossLess 24 Bits images doesn't break any longer gdcm
+ * Missing elements added in dicomV3.dic
+ (just to be affraid : have a look at
+ ftp://medical.nema.org/medical/dicom/2003/01v03dif/01v03_06.pdf
+ and do it again next year ;->
+
+2003-10-13 Jean-Pierre Roux
+ * According to PS 3.3-2003 C.11.1.1.2 p 619, when each pixel of
+ a PALETTE COLOR is stored on 2 Bytes, theese 2 Bytes must be equal.
+ But there are NOT. It's fixed !
+
+2003-10-13 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * FIX: "jpeglib.h" was not found on VC++
+ * FIX: vtkgdcm was not being installed
+
+2003-10-10 Jean-Pierre Roux
+ * ENH : OpenFile closes the file if it *really* doesn't look like
+ an ACR-NEMA / DICOM one.
+ * FIX : testWrite no longer writes an empty file if the source file
+ is not gdcm Readable
+ * ENH : One more JPEG LossLess type "JPEG Baseline (Process 14)"
+ is now decoded.
+
+2003-10-10 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * FIX: CMake generate now documentation
+ * ENH: out of source doc build !
+ * ENH: Generate both user and dev documentation
+ * ENH: Should work on windows too
+ * ENH: Only one doxygen config.in file is needed
+ * FIX: make install should be ok now on Unix plateform
+ * FIX: PATH to dictionary was wrong (missing /)
+ * ENH: OpenFile, return true if the file looks like an ACR or DICOM file
+
+2003-10-09 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * vtkGdcmReader is now able to read rgb dicom file.
+ * src/gdcmHeaderHelper : GetNumberOfScalarComponents()
+ * added a gdcmViewer to vtk test, use mouse to control
+ window level & window width
+
+2003-10-09 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * CMake-ification of gdcm, we have now two build system
+ * FIX: on cygwin Wsock32 doesn't exist
+ * FIX: force jpeg dir to the local one (gdcm/src/jpeg)
+
+2003-10-06 Emanuel Ollart
+ * FIX : compilation process wad broken.
+ Changed gdcmViewer_sources to vtkgdcmViewer_sources
+
+2003-10-06 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * change gdcmViewer -> vtkgdcmViewer
+ * change GetXSpacing and GetYSpacing "%f\\%" is parsed backward
+
+2003-10-06 Jean-Pierre Roux
+ * FIX :A few nasty patches to allow the reading of a lot of nasty images
+ ( e.g : well known GE images with a wrong elem length,
+ : Philips MRI Images with a wrong Huffman table)
+ * still to be done : allow the reading of bugged LEONARDO Siemens images
+
+2003-10-03 Jean-Pierre Roux
+ * Odd length strings are padded with '\0' (not with spaces,
+ to remain compliant with already defined strings,
+ like Transfert Syntax UID and others)
+
+2003-10-03 Jean-Pierre Roux
+ * ENH :gdcmHeaderHelper::GetNumberOfScalarComponents() added,
+ to allow displaying RGB images (not only by affim ;-)
+
+2003-10-03 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * vtkGdcmReader is now able to read rgb dicom file.
+ * src/gdcmHeaderHelper : GetNumberOfScalarComponents()
+
+2003-10-03 Jean-Pierre Roux
+ * A few nasty patches to allow the reading of a lot of nasty images
+ ( e.g : well known GE images with a wrong elem length,
+ : Philips MRI Images with a wrong Huffman table)
+ * still to be done : allow the reading of bugged LEONARDO Siemens images
+
+2003-10-03 Jean-Pierre Roux
+ * One more JPEG LossLess type "JPEG Baseline (Process 14)" is now decoded.
+
+2003-10-03 Jean-Pierre Roux
+ * gdcmHeaderHelper::GetNumberOfScalarComponents() added,
+ to allow displaying RGB images (not only by affim ;-)
+
+2003-10-03 Jean-Pierre Roux
+ * gdcmFile::GetImageDataIntoVector now
+ - 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.
+ (no sample found :-(
+
+2003-10-02 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * src/*.cxx removed pragma thingies to src/gdcmCommon.h
+ Two reasons: - clear things
+ - third parties acces gdcm through header files, so won't
+ suffer anymore VC++ complains
+
+2003-09-30 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * add argv[1] in testvtkGdcmReader.cxx
+ * removed leaks
+
+2003-09-24 Jean-Pierre Roux
+ * The lines are now eigthy characters long for
+ gdcmHeader.cxx gdcmHeaderHelper.cxx gdcmParse.cxx
+
+2003-09-22 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmUtil.[cxx|h] : change the _CreateCleanString return value from
+ char* to std::string. Thus, the use of strdup becomes useless. (see
+ previous commis of Malaterre)
+ * src/gdcmElValSet.cxx : reuse commented call to _CreateCleanString like
+ before the last Malaterre's commit.
+
+2003-09-19 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * This commit should fix the Debug building under VC++, the problem
+ was mainly a mixture of debug and release lib being loaded at startup.
+ * I also remove a depency to a specific C function: strdup. Because I had
+ to force the link to msvcrtd (whereas strdup is in libc).
+
+2003-09-16 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * "gdcm::Unfound" string changed to a constant variable (GDCM_UNFOUND)
+ located in the gdcmCommon.h file. All use of reference of tha has been
+ changed to now use the variable GDCM_UNFOUND.
+
+2003-09-16 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
+ * Cosmetic changes:
+ - gdcmPython/testSuite.py adapted to the JPR updated Dicts/dicomV3.dic
+ Dicom dictionary. The test suite can now be run again. Note:
+ I'm note very happy with the " (RET)" changes. I believe this
+ RETAINED comment should be dropped when parsing the dictionary.
+ - PACKAGER corrected
+ - DEVELOPPER added.
+ - AUTHORS updated and now in alphabetical order
+ * Makefile.am now exports gdcm.dsw for Windoze users.
+
+2003-09-11 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * cygwin complains about missing std:: in subdir Test/
+
+2003-09-10 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * remove some methods that are now in gdcmHeaderHelper
+
+2003-09-10 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * vtkGdcmReader set spacing and origin correctly
+
+2003-09-09 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * Fix a few delete/delete[] mismatch
+
+2003-09-08 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * src/gdcmHeaderHelper.[h cxx]: added new class that provide an
+ interpretation to data given by gdcmHeader. For instance there are
+ heuristics to get informations (look at different places).
+ * it also include a specific class: gdcmSerieHeaderHelper devoted to
+ sorting DICOM images based on different strategies.
+ * modified Makefiles accordingly.
+
+2003-09-05 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * src/*.cxx : added pragma disable 4786/4251 to get rid of ~4300 warning
+ when building in debug mode
+ * vtk/win32/vtkgdcm.dsp : change /MT -> /MD and /MTd -> /MDd to match
+ src/win32/gdcmdll.dsp
+ * 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.
+
+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/gdcmdll.dsp: + /I "..\jpeg\libijg12"
+
+2003-07-29 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmHeader.h : add std:: prefix for stl elements... like others in
+ the file
+ * src/gdcmFile.cxx : bug fix in affectation type
+ * src/jpeg/libijpeg12/jmorecfg12.h : export for windows modified... like
+ in src/jpeg/libijpeg8/jmorecfg8.h (JPR : copy/paste exists !!!)
+ * Modifs of MVSC projects to compile them. Not concerning 2 identic
+ symbols... future problem ?
+
+2003-07-29 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * src/win32/libgdcmijpeg12.dsp was missing
+ * modified gdcm.dsw accordingly
+
+2003-07-28 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
+ * src/gdcmHeader.cxx : misplaced return 0.; for ACR/NEMA
+
+2003-07-24 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/jpeg/libijg12/.cvsignore, jconfig.* : ommited files while last
+ commit of JPR (before his hollidays to facilitate our work).
+ * setup.py : bug fix in code. Modifications made while the last commit
+ of JPR. The code hasn't been tested before the commit... it's so
+ useless to make that (for best programmer that is JPR) !!!
+
+2003-07-08 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * tagged the current version as Version0_3 (i.e. version 0.3)
+
+2003-07-08 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * vtk/testvtkGdcmReader.cxx : remove a symbol that is unused
+ * src/jpeg/libijg8/jmorecfg.h : adding export symbol for windows
+ * *.dsp : modifications to use new libgdcmijpeg8 library
+ * setup.py : bug fix on VTKPATH variable
+ * PACKAGER : adding all concerning windows
+
+2003-07-07 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmElValSet.cxx, gdcmFile.cxx: JPR bug fix, removal of
+ garbage debug code.
+ * TODO, vtk/vtkGdcmReader.cxx: upcoming fixes comments.
+ * gdcmPython/testSuite.py: JPR bug fix, brutal erasement of
+ test suite reported error.
+ * PACKAGER file added (describes what a packager must do when
+ packaging a new release).
+ * MANIFEST.in, now declares jconfig.linux and jconfig.vc
+ * configure.in: upgraded version number to 0.3.0
+ * fixing build of rpm (through rpm -ta):
+ - Doc/Makefile.am exports proper doxygen files
+ - src/jpeg/libijg8/Makefile.am exports the include files.
+
+2003-07-07 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmReader.cxx : bug fix when loading only 1 file.
+ * src/gdcmHeader.h : formatting code
+
+2003-07-07 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmReader.[cxx|h] : bug fix when loading only one file.
+ We were obtaining error message from vtk. Now, creation of file list
+ is made in an internal list to prevent this problem.
+ Bug fix when output is empty.
+ Bug fix in update of progress value. Previous commit for this was a bad
+ correction.
+ * vtk/vtkGdcmReader.h : adding comments for InternalFileNaleList variable
+
+2003-07-04 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/gdcmHeader.h : added method to get the file name
+ * vtk/vtkGdcmReader.[cxx|h] : bug fix concerning loading of bad dicom
+ files. Added method to remove all files on the input
+ Added FIXME comment concerning the bad parsing of header made by
+ ExecuteInformation method (in ExecuteData method)
+
+2003-07-03 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * vtk/Makefile.am: vtkGdcmReader.h should now be cleany installed
+ when using make instal.
+ * src/gdcmFile.cxx : bug fix under Window after JPR commit
+ RQ : the JPR doesn't appear in the ChangeLog... normal for him
+
+2003-07-03 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * setup.py : adding include dir of jpeg lib to compile all sources
+ * */Win32/*.dsp : JPR fix for windows compilation
+
+2003-07-02 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * src/jpeg/libijg8/jconfig.* : JPR bug fix : now compile on both
+ linux and WINDOWS !
+ * src/gdcmJpeg.cxx : JPR bug fix : erroneous include
+ * src/win32/gdcmdll.dsp : JPR fix for windows compilation
+
+2003-07-02 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * setup.py is again effective on un*x (takes into account the
+ addon of the jpeg library)
+ * Doc/DoxyDevelInstal.txt added (developper's raw documentation)
+ * Doc/Doxy* updated (includes above enhancements)
+ * INSTALL now points to web documentation
+
+2003-07-01 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmHeader.h doesn't make unnecessary reference to
+ gdcmUtil.h anymore.
+ * gdcmPython/Makefile.am now avoids calling the wrappers for the
+ clean target.
+ * src/gdcm*.[cxx|h] :
+ - to allow compilation with gcc 3.x
+ -- clean up of STL usage (added explicit usage of std::)
+ -- small fixes on exceptions.
+ Note: linking not tested !
+ - clean of doxygen comments to avoid warnings at documentation
+ building stage.
+ * vtk/vtkGdcmReader.cxx: g++ warning message clean up (platform
+ dependent convertion).
+
+2003-06-20 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * Clean up of previous JPR garbage commit (not even commented in the
+ Changelog):
+ - Test/Makefile.am removed the reference to unexisting testTS.cxx
+ - moved all jpeg related files from src to src/jpeg/libijg8, with
+ addition/modification of Makefile.am and configure.in.
+ - the testSuite is still brain damage (not guilty).
+
+2003-06-02 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * WrapVTK.py : modifications to get correctly vtk source files to
+ compile
+ * vtk/vtkGdcmReader.cxx : modification for an already existing name
+ (FileName -> Filename)
+
+2003-06-11 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmReader.[cxx/h]:
+ - UpdateProgress method should now be effective
+ - removed the limitation on having only images loaded (as opposed
+ to volumes),
+ - when building a stack of images/volume, a lesser number of
+ gdcmHeader and gdcmFile instances should be used (hopefully
+ accelerating things).
+ - when building a stack of images/volumes, files which are not
+ loadable (wrong path-filename, wrong permissions on existing file,
+ or file not parsable by gdcm) are replaced with a black image
+ in the stack (for the caller to notice the problem).
+
+2003-06-03 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmReader.cxx: hopefully corrected Z extent.
+
+2003-06-02 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmReader[cxx|h] : makes correct code to remove conflicts
+ between standard library (std) and vtk library (problems are found
+ under Windows... thanks Windows !)
+
+2003-05-30 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmReader[cxx|h] should now be volume aware (read ready for
+ debug stage).
+ * gdcmPython/demo/vtkGdcmReader.py: commented lines for volume test
+
+2003-05-29 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * vtk/vtkGdcmReader[cxx|h] preparation addons for loading volumes.
+
+2003-05-28 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * When compiling with distutils (see setup.py) the C++ compiler is
+ called with different flags than the default ones (with automake).
+ In order to fix all those warning, I compiled gdcm with the command
+ make 'CXXFLAGS=-Wall -Wstrict-prototypes -D__STDC_LIMIT_MACROS'
+ and went for warning fixes:
+ - src/gdcmHeader.cxx, Test/dcm2acr.cxx, pourFindTaggs.cxx cleaned
+ up from unused variables.
+ - vtk/vtkGdcmReader.cxx: potential bug fix.
+ * src/gdcmHeader.h: Doxygen warning cleanup
+
+2003-05-27 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * gdcmPython/gdcm.i:
+ - typemaps correction to take into account the systematic replacement
+ of "using namespace std" with std:: prefix e.g. std::list,
+ std::string... (cf changes of 2003-05-21).
+ - gdcmGlob global variable of type gdcmGlobal (defined in
+ src/gdcmUtil.cxx and declared in gdcmPython/gdcm.i) is now
+ exported to Python a as cvar.
+ * gdcmPython/__init__.py now defines two functions GetPubDictTagNames()
+ and GetPubDictTagNamesByCategory() as a replacement for deprecated
+ gdcmDictSet.GetPubDictTagNames() and
+ gdcmDictSet.GetPubDictTagNamesByCategory() class functions (i.e.
+ C++ static methods).
+ * gdcmPython/demo/printGroupedPublicDict.py is operational again,
+ with the above changes.
+
+2003-05-22 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * setup.py, manifest.in : bug fix under linux
+
+2003-05-22 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * Modification of setup.py to compile vtk part too. Then, we have 2
+ wrappers which must work with same distutils. For that, we have a
+ generic distutils in distusiltsWrapping.py ; with :
+ - build_extWrap class to wrap generically all extensions,
+ - ExtensionWrap base class for all wrapping extension that contains
+ a wrapper
+ - Wrapper interface which wrap sources
+ + In WrapSwig.py we have extension and wrapper for Swig
+ + In WrapVTK.py we have extension and wrapper for VTK
+ * MANIFEST.in : modifications to consider vtk directory and new python
+ files for compilation
+
+2003-05-21 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with Benoit Regrain
+ * Added python wrappers of vtkGdcmReader vtk class (see the
+ source in vtk/vtkGdcmReader.cxx) :
+ - vtk/Makefile.am now builds a library
+ - gdcmPython/Makefile.am now builds vtkgdcmPython a second import
+ python library (as opposed to _gdcm.so wich are the python
+ wrappers of gdcm). vtkgdcmPython.so uses the vtk python wrappers
+ (vtkWrapPython and vtkWrapPythonInit utility) to build vtkgdcmPython
+ import library.
+ - configure.in has an additional flag --enable-vtk that needs
+ to be set to enable compilation of vtk related code, that is:
+ + vtk/vtkGdcmReader.so and
+ + vtk/testvtkGdcmReader C++ demo of vtk wrappers of gdcm)
+ + gdcmPython/vtkgdcmPython.so (see above)
+ - gdcmPython/demo/vtkGdcmDemo.py corrected (some images cannot
+ be read when compressed or when HighBit + 1 != BitsStored),
+ - gdcmPython/demo/vtkGdcmReader.py added. This demo illustrates
+ the usage of the python wrapper of vtkGdcmReader vtk class.
+ * vtk/vtkGdcmReader.cxx: bug fixed (thanks to Benoit Regrain).
+ * src/*.[h] all occurences of stl classes are now prefixed with
+ std::, and all occurences of "using namespace std;" where removed.
+ This is to avoid pollution of global namespace in included files.
+ Apparently vtk does not avoid this pitfall: when using both
+ gdcm and vtk (as in vtk/vtkGdcmReader.cxx) this ended up in a
+ collision of various stl members (principally cout...).
+ * gdcmPython/testSuite.py now cleanly removes temprory generated
+ file.
+ * gdcmPython/gdcm.i now declares a typemap for std::string (to
+ comply with above changes)
+
+2003-05-12 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
+ * src/gdcmHeader>[h/cxx] added gdcmHeader::GetPixelSize()
+ * vtk/vtkGdcmReader.cxx now properly inports the image in the
+ vtk data structure (an image Flip was required).
+ * vtk/testvtkGdcmReader.cxx refers to gdcmData subdir instead of Data.
+ * cosmetic changes in documentation.
+
+2003-05-7 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
+ * src/gdcmHeader.cxx: the constructor no longer exits when an
+ unexisting file is given as argument.
+ * The subdirectory Data (containing all the images used for the
+ test suite) is not part of this repository anymore. A new module
+ containing those images is now available at
+ :pserver:xxx@cvs.creatis.insa-lyon.fr:2402/cvs/public
+ with the name gdcmData.
+ All the python scripts (including the package initialisation file
+ gdcmPython/__init__.py) were adapated to take this change into
+ account (basically GDCM_DATA_PATH is now GDCM_TEST_DATA_PATH).
+
+2003-05-5 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
+ * vtk subdir added. Contains vtkGdcmReader.[cxx|h] a vtk class
+ inherinting from vtkImageReader and testvtkGdcmReader.cxx a small
+ demo of the usage of this class.
+ Compilation of this vtk part is only done when using the --enable-vtk
+ at configure (or autogen.sh) stage.
+
+2003-04-16 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
+ * More memory link related corrections and documentation fixes.
+ Notes on valgrind:
+ - maximum info is obtained with a command of the form:
+ valgrind --leak-check=yes --leak-resolution=high --num-callers=40
+ --show-reachable=yes PrintHeader
+ - the remaining reachable blocks seem to come from the STL
+ allocation scheme through the usage of map and list. It looks
+ like this memory cannot be freed but it is not a memory leak
+ (in fact further invocation to the STL would recollect the
+ unused memory allthough it cannot explicitely be freed).
+ * gdcmPython/demo/vtkGdcmDemo.py added: this is a small demo
+ of displaying an image parsed with gdcm and displayed with VTK.
+ Note: some images don't seem to work e.g.
+ python vtkGdcmDemo.py ../../Data/US-RGB-8-esopecho.dcm
+ * src/gdcmHeader.x: dicom_vr and Dicts are not class members anymore.
+ Allthough this weakens the semantics, it is a ditch attempt to
+ make gdcm more thread friendly.
+
+2003-04-15 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
+ * Memory link hunt (by using valgrind through the command
+ valgrind --show-reachable=yes --leak-check=yes PrintHeader).
+ - added src/gdcmVR.cxx gdcmVR.h that objectify the previous
+ gdcmHeader::_dicom_vr.
+ - gdcmHeader::InitVRDict transfered as gdcmVR::gdcmVR().
+ - gdcmHeader::dicom_vr is now of type gdcmVR* as opposed to
+ VRHT*.
+ - gdcmGlobal global object contained class added (see src/gdcmUtil.x)
+
+2003-04-9 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
+ * src/Makefile.am now exports all the necessary include files at
+ make install stage.
+
+2003-04-9 JPR
+ * UpdateGroupLength replaced by new one
+
+2003-04-7 JPR
+ * UpdateGroupLength re-written using H-Table
+ (named UpdateGroupLengthNew untill checks are over)
+
+2003-04-7 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
+ * Data/im_00001 renamed to gdcm-MR-PHILIPS-16-Multi-Seq.dcm
+ * gdcmPython/testSuite.py now include a test of gdcmFile::Write.
+ * src:
+ - gdcmHeader::GetPubElValSet removed.
+ - gdcmElValSet::WriteDcm, WriteAcr, WriteExplVR, revamped to
+ UpdateGroupLength, WriteElements, Write.
+ - gdcmHeader::FileType moved to gdcmCommon.h. The enum FileType
+ doesn't contain TrueDicom anymore since ExplicitVR and ImplicitVR
+ carried the same semantics.
+ - src/gdcmHeaderIdo.cxx changed accordingly.
+ - gdcmFile::WriteBase now regroups all the codes from previous
+ versions of WriteDcm, WriteDcmImplVR, and WriteACR.
+ - enum FileType moved to gdcmCommon.h
+ * src/gdcmHeader.cxx AddDefault trashed
+ * gdcmGetXSize added
+ * getimageDataSize now calls gdcmGetXSize
+ * Test/*.cxx changed to agree with above changes
+
+2003-03-31 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmHeader.h: LoadElements() is not a public method anymore
+ (to avoid double call by end user).
+ * Test/*.cxx LoadElements() doesn't need to be called explicitely
+ by end user, since gdcmHeader::gdcmHeader now handles it.
+
+2003-03-29 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * gdcm/Doc many doxygen changes:
+ - Doxyfile now has two different versions, DoxyfileUsers that generates
+ the html.users end users oriented documentation and
+ DoxyfileDeveloppers that generates the html.developper developper
+ oriented documentation.
+ - README changed accordingly
+ - requirement.txt removed (old design info moved to TODO).
+ - Additional files DoxyInstallation.txt, DoxyIntroduction.txt,
+ DoxyMainPage.txt, DoxyPython.txt provide more information.
+ - Note: the website http://www.creatis.insa-lyon.fr/Public/Gdcm/ can now
+ be updated by simply regenerating the docs with doxygen and copying
+ html.developper and html.users to tux:/home/httpd/html/Public/Gdcm
+ * src/gdcmElValSet.cxx: stl <map>.count() can only return 0 or 1. Hence
+ all the tests in the form "if (<map>.count() >1)" were removed.
+ * src/gdcmFile.cxx: cosmetic changes to avoid messages of doxygen about
+ ill-formed documentation sections.
+ * src/gdcmHeader.cxx: ditto
+
+2003-03-27 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * setup.py fixed for un*x (needed macro for stdint.h)
+ * Test/test.cxx renamed to PrintHeader.cxx to avoid collision on
+ un*ces with sh-utils test utility.
+ * gdcmPython/demo/test.py renamed to PrintHeader.py
+ * gdcmPython/demo/ReorganiseFiles.py new demo script added.
+ * gdcmPython/win32/gdcmpycomplet.dsp renamed to gdcmpyembedded.dsp.
+ * gdcmPython/win32/gdcmpy.dsp trashed away (brain damaged).
+ * src/gdcm*.cxx JPR's bad inclusion fixed.
+
+2003-03-26 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmHeader[h, cxx] gdcmHeader now has an IsReadable predicate.
+ * gdcmPython/demo/test.py changed accordingly.
+
+2003-03-25 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * gdcmPython/Makefile.am fixed linking against libstdc++
+ * gdcmPython/_gdcm.so symbolic link to gdcmPython/.libs/pygdcm.so added.
+ * Swig subdir (historical tests of swig version 1.3.17++) removed
+ * Test/testChangeEntete.cxx some lines commented out in order to make
+ compilation work.
+ * src/gdcmHeader.cxx cleaned up wild JPR's dirty kludge.
+ * src/gdcmElValSet.cxx cleaned up frog's forgotten debug message
+
+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 environment 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 dictionary 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 an 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.
+