+Sat Nov 12 09:59:24 EST 2005 by malaterre
+ * Some more update to the DICOMV3 dic. Tons of fix most of them should not
+ impact gdcm internal since VR/VM are not used...well except for SQ item
+ wich should explain some bizarre case :)
+ -> group 0000 is still in DICOMV3 dict whereas it should clearly be in
+ ACR-NEMA only.
+
+Mon Oct 24 13:34:45 EDT 2005 by malaterre
+ * Adding the OpenJPEG library. It contains a patch from Antonin compared to
+ the official release that allow us to work around the famous 16bits issues
+ in jasper
+
+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.