+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 datas (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 datas and not color datas 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 datas.
+ 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
+ datas (pixels). And each structure destruct the datas when it's
+ destructed. So we have two destructions for the same datas. To solve it,
+ a flag is added in the gdcmBinEntry to indicate if the BinEntry owns the
+ datas or not. If it doesn't own datas, 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 datas 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 prefect 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 begining 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 standart 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 had forgotten 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 wether 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 dictionnary
+ 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 gdcmagKey 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 allways 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 allways 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 allways
+ 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
+ when SamplesPerPixel =3
- now Write is no longer confused by
- 'BitsAllocated = 12" and 'BitsStored=12"
+ '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-)
+ (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)
+ (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
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.
+ 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)
+ 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 ?)
+ (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.
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)
+ : 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);
-
+ 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 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 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 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 *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
+
+ - 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);
* .... 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
+ * 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