X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=ChangeLog;h=7fb87396bdc0c39d7d755ea41b75edd10cace4aa;hb=ba7aa1959cabf4ed402177c080723bc284983140;hp=cb3908f362b928e0c7f27c2f51325b6ceb01cfc9;hpb=2012716d624d631dcdb825fdd4470908e115a717;p=gdcm.git diff --git a/ChangeLog b/ChangeLog index cb3908f3..7fb87396 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,262 @@ +2004-07-06 Eric Boix + * 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 + * 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 + * 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 + * 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 + * 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 + * 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 + * 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 + * DEVELOPPER: added a proposition of coding style. + * src/gdcmDocEntry.h: removed every inline declaration (for test of + coding style). + +2004-06-23 Eric Boix + * 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 + * 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 * In order to fix memory leaks: - Test/TestWriteSimple.cxx: added cleaning of free store through @@ -37,6 +296,7 @@ * src/*: remaining references to gdcmParser removed. * src/*[cxx|h]: added copy[way]left header. + 2004-06-18 Eric Boix * In order to fix writing of dicom files: - Test/TestWriteSimple.cxx: a simpler example of writing.