]> Creatis software - gdcm.git/log
gdcm.git
19 years ago * WARNING: ctest now depends more tightly on gdcmData. You should
frog [Tue, 6 Jul 2004 09:50:51 +0000 (09:50 +0000)]
   * 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.

19 years ago Parsing is hell... Frog
frog [Mon, 5 Jul 2004 14:02:28 +0000 (14:02 +0000)]
Parsing is hell... Frog

19 years ago - guint16 and guint32 removed. Use ISO C uint16_t, uint32_t instead.
frog [Fri, 2 Jul 2004 13:55:26 +0000 (13:55 +0000)]
 - 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().

19 years ago * src/jpeg/libijg12/jdhuff12.c:
frog [Fri, 2 Jul 2004 09:19:00 +0000 (09:19 +0000)]
   * 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).

19 years ago * Test/*.cxx and Example/*.cxx: moved some examples away from the
frog [Thu, 1 Jul 2004 13:03:01 +0000 (13:03 +0000)]
   * 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

19 years ago * Test/CmakeList.txt: removed the following from black list (to be coherent
frog [Wed, 30 Jun 2004 00:10:58 +0000 (00:10 +0000)]
   * 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

19 years ago * Test/TestReadWriteReadCompare.cxx was properly written (with a call
frog [Tue, 29 Jun 2004 23:43:19 +0000 (23:43 +0000)]
   * 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...

19 years agoupdate ChangeLog
jpr [Tue, 29 Jun 2004 14:43:09 +0000 (14:43 +0000)]
update ChangeLog

19 years agoFIX : remove Frog's beautified, but never checked 'Parse7FE0' code,
jpr [Tue, 29 Jun 2004 14:38:29 +0000 (14:38 +0000)]
FIX : remove Frog's beautified, but never checked 'Parse7FE0' code,
      replace by uggly but working old code :-(
A lot of stuff should be OK again.

19 years ago * Test/TestWriteRead.cxx and TestReadWrite.cxx merged (because of
frog [Tue, 29 Jun 2004 14:00:37 +0000 (14:00 +0000)]
   * 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

19 years ago * src/gdcmDocument.cxx: for broken (non DICOM V3 conformal) images
frog [Tue, 29 Jun 2004 11:27:13 +0000 (11:27 +0000)]
   * 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).

19 years ago ADD : PrintFile.cxx
jpr [Tue, 29 Jun 2004 08:36:10 +0000 (08:36 +0000)]
 ADD : PrintFile.cxx
       Write.cxx
 + tabs hunting

19 years agoFix warnings, and fix TestWriteRead
malaterre [Mon, 28 Jun 2004 16:07:21 +0000 (16:07 +0000)]
Fix warnings, and fix TestWriteRead

19 years agoDoxygenation
jpr [Mon, 28 Jun 2004 16:00:18 +0000 (16:00 +0000)]
Doxygenation

19 years agoupdtae ChangeLog
jpr [Mon, 28 Jun 2004 15:29:00 +0000 (15:29 +0000)]
updtae ChangeLog

19 years agoAdd the 'WriteRead' example
jpr [Mon, 28 Jun 2004 15:06:33 +0000 (15:06 +0000)]
Add the 'WriteRead' example

19 years agoremove old mutimap related code
jpr [Mon, 28 Jun 2004 14:29:52 +0000 (14:29 +0000)]
remove old mutimap related code

19 years agoBUG: Fix default value
malaterre [Mon, 28 Jun 2004 14:12:03 +0000 (14:12 +0000)]
BUG: Fix default value

19 years ago now uses all the images of gdcmData. Frog
frog [Mon, 28 Jun 2004 14:01:05 +0000 (14:01 +0000)]
now uses all the images of gdcmData.   Frog

19 years agoupdate ChangeLog
jpr [Mon, 28 Jun 2004 11:26:12 +0000 (11:26 +0000)]
update ChangeLog

19 years agoJean-Pierre Roux
jpr [Mon, 28 Jun 2004 11:23:20 +0000 (11:23 +0000)]
Jean-Pierre Roux
"UN" value representation Elements are now written correctly
     (their legth is stored on 4 bytes -just like OB, OW, and SQ-)

19 years agoFIX : odd length of string corresponding to an integer pb
jpr [Mon, 28 Jun 2004 11:01:18 +0000 (11:01 +0000)]
FIX : odd length of string corresponding to an integer pb

19 years agoupdate ChangeLog
jpr [Mon, 28 Jun 2004 09:58:46 +0000 (09:58 +0000)]
update ChangeLog

19 years ago- now gdcmHeader has its own Write methods (in order to split
jpr [Mon, 28 Jun 2004 09:51:02 +0000 (09:51 +0000)]
- now gdcmHeader has its own Write methods (in order to split
      the job that has not to be done for gdcmDicomDir)

19 years ago- now Write drops LUT Descriptors and LUTs (if any) when SamplesPerPixel =3
jpr [Mon, 28 Jun 2004 09:30:58 +0000 (09:30 +0000)]
- now Write drops LUT Descriptors and LUTs (if any) when SamplesPerPixel =3
- now Write is no longer confused by 'BitsAllocated = 12" and 'BitsStored=12"

+ Tabs hunting

19 years agoENH: Some cosmetic cleanup of gdcmFile, main changes are: lgrTotal -> ImageDataSize...
malaterre [Sat, 26 Jun 2004 04:09:32 +0000 (04:09 +0000)]
ENH: Some cosmetic cleanup of gdcmFile, main changes are: lgrTotal -> ImageDataSize / lgrTotaleRaw -> ImageDataSizeRaw, it matches then there accessors (simple et de bon gout in french).
* I also marked some lines as dangerous (mem leaks), and a comment for 12 bits images
* Added conversion table in DEVELOPPERS
* Also untabify, checkTabs is working :P

19 years agoENH: * 3'tabify
malaterre [Fri, 25 Jun 2004 20:48:25 +0000 (20:48 +0000)]
ENH: * 3'tabify
* Fix bug where gdcmHeader was passed a const char*
* use const_iterator where possible
* made some method const correct
* moved a method in class (inline)
...hopefully should be more readable

19 years agoENH: flipping -W -Wall into -Wall -W does not produce the same warnings
malaterre [Fri, 25 Jun 2004 19:37:05 +0000 (19:37 +0000)]
ENH: flipping -W -Wall into -Wall -W does not produce the same warnings

19 years agoremoval of methode gdcmDocument::WriteF, replaced by gdcmDocument::Write
jpr [Fri, 25 Jun 2004 17:48:45 +0000 (17:48 +0000)]
removal of methode gdcmDocument::WriteF, replaced by gdcmDocument::Write
(beware of 'virtual' !)

19 years agoAdd a 'test' - reads an image
jpr [Fri, 25 Jun 2004 15:42:17 +0000 (15:42 +0000)]
Add a 'test' - reads an image
             - writes it as an uncompressed, (RGB if necessary), Explicit VR
             - reads it
             - compares the PixelData Length and the Pixels.
             - The, *we* cry            :

19 years agotabs
jpr [Fri, 25 Jun 2004 12:58:24 +0000 (12:58 +0000)]
tabs

19 years ago * Test/PrintAllDocument.cxx: looping on files is now effective. It used to
frog [Fri, 25 Jun 2004 12:56:38 +0000 (12:56 +0000)]
   * 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.

19 years agotest
jpr [Fri, 25 Jun 2004 12:54:35 +0000 (12:54 +0000)]
test

19 years ago* reverted.
bellet [Fri, 25 Jun 2004 12:40:13 +0000 (12:40 +0000)]
* reverted.

19 years ago* test the chekcTabs script (take 2)
bellet [Fri, 25 Jun 2004 12:37:35 +0000 (12:37 +0000)]
* test the chekcTabs script (take 2)

19 years ago* test the checkTabs script.
bellet [Fri, 25 Jun 2004 12:27:06 +0000 (12:27 +0000)]
* test the checkTabs script.

19 years agoEMH: *Add PrintAllDocument, dog slow right now
malaterre [Fri, 25 Jun 2004 03:06:37 +0000 (03:06 +0000)]
EMH: *Add PrintAllDocument, dog slow right now
*Moved PrintDocument as example instead
* vtkGdcmReader was free'ing instead of delete[]'ing
* 3'tabulify ShowDicom / PrintAllDocument
* Minor comments for -W -Wall compilation

19 years agoENH: VTK 4.x update, plus apply andy's suggestion
malaterre [Fri, 25 Jun 2004 01:24:55 +0000 (01:24 +0000)]
ENH: VTK 4.x update, plus apply andy's suggestion

19 years agoupdate ChangeLog
jpr [Thu, 24 Jun 2004 18:05:44 +0000 (18:05 +0000)]
update ChangeLog

19 years agoJean-Pierre Roux
jpr [Thu, 24 Jun 2004 18:03:14 +0000 (18:03 +0000)]
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 ?)

19 years agoDOC: typo
malaterre [Thu, 24 Jun 2004 17:45:40 +0000 (17:45 +0000)]
DOC: typo

19 years ago * DEVELOPPER: added a proposition of coding style.
frog [Thu, 24 Jun 2004 11:44:35 +0000 (11:44 +0000)]
   * DEVELOPPER: added a proposition of coding style.
   * src/gdcmDocEntry.h: removed every inline declaration (for test of
     coding style).  --- Frog

19 years agoENH: Testing is now able to compare to the baseline properly
malaterre [Thu, 24 Jun 2004 04:19:09 +0000 (04:19 +0000)]
ENH: Testing is now able to compare to the baseline properly

19 years ago'(' and ')' removed around the return
jpr [Wed, 23 Jun 2004 16:34:36 +0000 (16:34 +0000)]
'(' and ')' removed around the return

19 years agominor modif to avoid casts
jpr [Wed, 23 Jun 2004 16:22:21 +0000 (16:22 +0000)]
minor modif to avoid casts

19 years ago Bugfixes. --- JPR (with frog)
frog [Wed, 23 Jun 2004 15:01:57 +0000 (15:01 +0000)]
 Bugfixes.  --- JPR (with frog)

19 years ago src/gdcmDocument.cxx: bug fix.
frog [Wed, 23 Jun 2004 13:54:56 +0000 (13:54 +0000)]
 src/gdcmDocument.cxx: bug fix.

19 years ago gdcmDocEntry::PrintCommonPart() and ::WriteCommonPart() removed.
frog [Wed, 23 Jun 2004 13:02:35 +0000 (13:02 +0000)]
 gdcmDocEntry::PrintCommonPart() and ::WriteCommonPart() removed.
     Use the gdcmDocEntry::Print() and Write() instead.

19 years agoremove tabs
jpr [Wed, 23 Jun 2004 12:29:58 +0000 (12:29 +0000)]
remove tabs

19 years agoremove 'tab' caracters
jpr [Wed, 23 Jun 2004 12:21:56 +0000 (12:21 +0000)]
remove 'tab' caracters

19 years agogdcmDocument.cxx
jpr [Wed, 23 Jun 2004 09:30:22 +0000 (09:30 +0000)]
gdcmDocument.cxx
- Now we do recognize the JpegLossLess format (there was a misstyping in
code 'beautyfication' :-(
- Now we automaticaticaly load the Luts, if any

19 years agoSTYLE: Cleanup outside API, there is still too much offered to user
malaterre [Wed, 23 Jun 2004 03:36:24 +0000 (03:36 +0000)]
STYLE: Cleanup outside API, there is still too much offered to user

19 years agoFIX: GDCM was not compiling with -W -Wall
malaterre [Wed, 23 Jun 2004 02:13:14 +0000 (02:13 +0000)]
FIX: GDCM was not compiling with -W -Wall

19 years agoNow Binary data are loaded, whenever it's possible (i.e : not too long)
jpr [Tue, 22 Jun 2004 15:31:17 +0000 (15:31 +0000)]
Now Binary data are loaded, whenever it's possible (i.e : not too long)

19 years agoRemoval of now useless gdcmDocument::LoadVLEntry method
jpr [Tue, 22 Jun 2004 14:57:10 +0000 (14:57 +0000)]
Removal of now useless gdcmDocument::LoadVLEntry method

19 years agoWell ...
jpr [Tue, 22 Jun 2004 14:42:01 +0000 (14:42 +0000)]
Well ...
gdcmBinEntry::Write doesn't need filtetype parameter
(only PrintCommonPart does)

19 years agoENH : method gdcmValEntry::Write doesn't need the filetype parameter (onlu
jpr [Tue, 22 Jun 2004 14:37:04 +0000 (14:37 +0000)]
ENH : method  gdcmValEntry::Write doesn't need the filetype parameter (onlu
PrintCommonPart does)

19 years agoremove tabs
jpr [Tue, 22 Jun 2004 14:14:01 +0000 (14:14 +0000)]
remove tabs

19 years agoplease compile before commit
malaterre [Tue, 22 Jun 2004 14:11:34 +0000 (14:11 +0000)]
please compile before commit

19 years agoENH: stdify
malaterre [Tue, 22 Jun 2004 14:03:30 +0000 (14:03 +0000)]
ENH: stdify

19 years agoremove tabs
jpr [Tue, 22 Jun 2004 14:02:31 +0000 (14:02 +0000)]
remove tabs

19 years agoremove tabs
jpr [Tue, 22 Jun 2004 13:56:08 +0000 (13:56 +0000)]
remove tabs

19 years agoUpdate ChangeLog
jpr [Tue, 22 Jun 2004 13:53:05 +0000 (13:53 +0000)]
Update ChangeLog

19 years ago2004-06-22 Jean-Pierre Roux
jpr [Tue, 22 Jun 2004 13:47:33 +0000 (13:47 +0000)]
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);

19 years agoERR: Remove bad legacy mode
malaterre [Mon, 21 Jun 2004 21:51:01 +0000 (21:51 +0000)]
ERR: Remove bad legacy mode

19 years ago * src/gdcmBinEntry.cxx, gdcmValEntry.cxx: gdcmBinEntry::Print() now
frog [Mon, 21 Jun 2004 12:38:28 +0000 (12:38 +0000)]
* src/gdcmBinEntry.cxx, gdcmValEntry.cxx: gdcmBinEntry::Print() now
      properly calls gdcmValEntry::Print() (that was weed out from
      code related to gdcmBinEntry).

19 years ago * Test/TestWriteSimple.cxx: fix to gdcmHeader-gdcmHeaderHelper revamping.
frog [Mon, 21 Jun 2004 08:47:13 +0000 (08:47 +0000)]
* 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 ?   --- Frog

19 years agoENH: const'ify gdcmFile thus remove double signature with const char*
malaterre [Mon, 21 Jun 2004 04:52:08 +0000 (04:52 +0000)]
ENH: const'ify gdcmFile thus remove double signature with const char*

19 years agoENH: Ok second chunk of patch, tests seems to go smoothly
malaterre [Mon, 21 Jun 2004 04:43:01 +0000 (04:43 +0000)]
ENH: Ok second chunk of patch, tests seems to go smoothly
1. Compile with CMAKE_CXX_FLAGS (need to turn advanced ON) = -W -Wall -Werror
2. Add two virtual to destructor, with a bit of luck these were the leaks reported by frog

19 years agoENH:First chunk of patch:
malaterre [Mon, 21 Jun 2004 04:18:23 +0000 (04:18 +0000)]
ENH:First chunk of patch:
1. Get rid of gdcmHeaderHelper, the class was only gdcmHeader with nice default values, no big deal
2. Left a legacy mode where you can still use the class gdcmHeaderHelper
3. Some minor clean up, but all the tests are passing

19 years ago * Erroneous leading white fix:
frog [Sun, 20 Jun 2004 18:08:46 +0000 (18:08 +0000)]
* 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.    --- Frog

19 years ago * In order to fix memory leaks:
frog [Sat, 19 Jun 2004 23:51:03 +0000 (23:51 +0000)]
* 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).

19 years ago * In order to fix writing of dicom files:
frog [Fri, 18 Jun 2004 12:26:53 +0000 (12:26 +0000)]
   * 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

19 years ago * Valgrind note: after Mathieu Malaterre teached me how to read
frog [Fri, 18 Jun 2004 00:11:44 +0000 (00:11 +0000)]
   * 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.           --- Frog

19 years ago * src/gdcmDocument.[h|cxx]:
frog [Tue, 15 Jun 2004 13:10:18 +0000 (13:10 +0000)]
* 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.

19 years agoupdate ChangeLog
jpr [Tue, 15 Jun 2004 10:08:39 +0000 (10:08 +0000)]
update ChangeLog

19 years agoJean-Pierre Roux
jpr [Tue, 15 Jun 2004 10:06:10 +0000 (10:06 +0000)]
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

19 years agoJean-Pierre Roux
jpr [Tue, 15 Jun 2004 08:41:09 +0000 (08:41 +0000)]
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
gdcmDocument.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

19 years agoupdate ChangeLog
jpr [Tue, 15 Jun 2004 08:40:42 +0000 (08:40 +0000)]
update ChangeLog

19 years ago * Memory leak hunt with the following command:
frog [Mon, 14 Jun 2004 08:35:35 +0000 (08:35 +0000)]
* 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;
          }
      -----

19 years agonow gdcmFile::GetImageData loads pixels *and* updates 7fe0,0010 voidArea
jpr [Thu, 10 Jun 2004 15:17:05 +0000 (15:17 +0000)]
now gdcmFile::GetImageData loads pixels *and* updates 7fe0,0010 voidArea
(it helps !)

19 years ago * src/gdcmHeader.[cxx|h]:
frog [Thu, 10 Jun 2004 13:28:53 +0000 (13:28 +0000)]
* src/gdcmHeader.[cxx|h]:
      - Predicates on the Transfer syntax (of the form Is[JPEF|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[JPEF|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.

19 years ago * src/gdcmValEntry.h: member voidArea type changed from char* to void*.
frog [Wed, 9 Jun 2004 15:00:42 +0000 (15:00 +0000)]
* 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.

19 years agosub-minor ... and so forth
jpr [Wed, 9 Jun 2004 10:44:20 +0000 (10:44 +0000)]
sub-minor ... and so forth

19 years ago Sub-minor fixes on std inclusion... JPR + Frog
frog [Wed, 9 Jun 2004 09:01:17 +0000 (09:01 +0000)]
 Sub-minor fixes on std inclusion... JPR + Frog

19 years agoStill in a debugging status.
jpr [Wed, 9 Jun 2004 08:41:02 +0000 (08:41 +0000)]
Still in a debugging status.
Don't use it (except Eric)

19 years ago src/CMakeLists.txt :
frog [Tue, 8 Jun 2004 10:51:34 +0000 (10:51 +0000)]
src/CMakeLists.txt :
     *  kernel (i.e. src/gdcm*) doesn't compile gdcmParser.cxx nor
        gdcmHeaderEntry.cxx anymore.
     * converted the file format from DOS return to un*x ones (it caused
       my lincvs graphical diff mode to display kinky results).   --- Frog

19 years ago Sub-minor std-related fixes... Jpr+Frog
frog [Tue, 8 Jun 2004 10:14:20 +0000 (10:14 +0000)]
 Sub-minor std-related fixes... Jpr+Frog

19 years agoForget this one
jpr [Tue, 8 Jun 2004 10:02:09 +0000 (10:02 +0000)]
Forget this one

19 years agomoved from gdcmParser to gdcmDocument.
jpr [Tue, 8 Jun 2004 09:15:17 +0000 (09:15 +0000)]
moved from gdcmParser to gdcmDocument.
Please wait a little more before using

19 years ago Moved from gdcmHeader to gdcmDocument .
jpr [Tue, 8 Jun 2004 09:12:31 +0000 (09:12 +0000)]
  Moved from gdcmHeader to gdcmDocument .

19 years agoENH: scandir was leaking like crazy, we shouldnt be using this function anyway
malaterre [Mon, 7 Jun 2004 20:16:29 +0000 (20:16 +0000)]
ENH: scandir was leaking like crazy, we shouldnt be using this function anyway

19 years agoLast commit before the final(?) one, for the new version.
jpr [Mon, 7 Jun 2004 14:41:35 +0000 (14:41 +0000)]
Last commit before the final(?) one, for the new version.
Please keep on wainting.

19 years agoENH: Add a new flag to vtkGdcmReader: AllowLookupTable, user can now select if he...
malaterre [Mon, 7 Jun 2004 03:21:43 +0000 (03:21 +0000)]
ENH: Add a new flag to vtkGdcmReader: AllowLookupTable, user can now select if he wants to use a lookuptable when possible, disable by default

20 years agoENH: copy gdcm.py to the right place thus we only need PYTHONPATH to point to binary...
malaterre [Fri, 4 Jun 2004 03:45:09 +0000 (03:45 +0000)]
ENH: copy gdcm.py to the right place thus we only need PYTHONPATH to point to binary dir now

20 years agoBUG: Broke cmake183 by mistake, also enhance the init.py script
malaterre [Fri, 4 Jun 2004 03:21:44 +0000 (03:21 +0000)]
BUG: Broke cmake183 by mistake, also enhance the init.py script

20 years agoENH: New support for cmake 2.0.1
malaterre [Fri, 4 Jun 2004 01:42:03 +0000 (01:42 +0000)]
ENH: New support for cmake 2.0.1

20 years agoSooooon, it will be OK
jpr [Wed, 19 May 2004 16:26:44 +0000 (16:26 +0000)]
Sooooon, it will be OK

20 years agoPLEASE : keep on waiting for the final version !
jpr [Tue, 18 May 2004 17:55:48 +0000 (17:55 +0000)]
PLEASE : keep on waiting for the final version !

20 years ago * gdcmPython/gdcm.i : remove useless lines concerning the gdcmGlobal
regrain [Tue, 18 May 2004 09:00:19 +0000 (09:00 +0000)]
* 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
    -- BeNours