]> Creatis software - gdcm.git/commitdiff
* src/gdcmDicomDirElement.h, gdcmDict.h : rename AddNewXxx methods to AddXxx.
authorregrain <regrain>
Mon, 24 Jan 2005 14:14:07 +0000 (14:14 +0000)
committerregrain <regrain>
Mon, 24 Jan 2005 14:14:07 +0000 (14:14 +0000)
   * src/gdcmDict.h : rename GetDictEntry moethod to GetEntry, to be coherent
     with other method names
   * gdcmPython/gdcm.i : bug fix. Add the typemaps for the TagName type
   * Test/TestDicomDirElement.cxx : add new test
   -- BeNours

22 files changed:
ChangeLog
Example/TestChangeHeader.cxx
Testing/CMakeLists.txt
Testing/TestDicomDirElement.cxx [new file with mode: 0644]
Testing/TestDict.cxx
gdcmPython/demo/PrintDicomDir.py.in
gdcmPython/demo/PrintDict.py.in
gdcmPython/demo/PrintHeader.py.in
gdcmPython/gdcm.i
src/gdcm.h
src/gdcmDefaultDicts.cxx.in
src/gdcmDicomDir.cxx
src/gdcmDicomDirElement.cxx
src/gdcmDicomDirElement.h
src/gdcmDicomDirObject.cxx
src/gdcmDict.cxx
src/gdcmDict.h
src/gdcmDocEntrySet.cxx
src/gdcmDocEntrySet.h
src/gdcmDocument.cxx
src/gdcmDocument.h
src/gdcmSQItem.cxx

index 2e038e7e7f1a09bbd95efb56cd63f94fd0ae2a34..47756030c63461812838ee81705f7e3c390d3ff0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,16 @@
+2005-01-22 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+   * src/gdcmDicomDirElement.h, gdcmDict.h : rename AddNewXxx methods to AddXxx.
+   * src/gdcmDict.h : rename GetDictEntry moethod to GetEntry, to be coherent 
+     with other method names
+   * gdcmPython/gdcm.i : bug fix. Add the typemaps for the TagName type
+   * Test/TestDicomDirElement.cxx : add new test
+
 2005-01-22 Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
    * Finish the CreateUniqueUID stuff. Seems to compiled/runs on every
-        plateforms ITK support. Had some troubles with uint64_t on Win32, go to 
-        http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_langref_data_type_ranges.asp
-        for more info. Basically you can not used 'unsigned' __int8 in an ostream.
-        So can't you use __int64 in ostream at all.
+     plateforms ITK support. Had some troubles with uint64_t on Win32, go to
+     http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_langref_data_type_ranges.asp
+     for more info. Basically you can not used 'unsigned' __int8 in an ostream.
+     So can't you use __int64 in ostream at all.
 
 2005-01-22 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
    * bug fix for compilation on MSVC6
 
 2005-01-18 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
    * ENH for DicomDir, DicomDirPatient, DicomDirStudy, 
-                 DicomDirSerie, DicomDirImage
-                 Dict, DictSet classes :
+             DicomDirSerie, DicomDirImage
+             Dict, DictSet classes :
          -add method GetFirstEntry to replace call to InitTraversal+GetNextEntry
          -remove InitTraversal method.
-       * UPD Test programs + Example programs
+   * UPD Test programs + Example programs
 
 2005-01-18 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
-   remove useless and never updated keyword \ingroup         
+   remove useless and never updated keyword \ingroup         
 
 2005-01-17 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
    * src/gdcmUtil.cxx : bug fix to find the Windows MAC address. Now, there
    * gdcmPython/demo : add python demos using VTK
 
 2005-01-16 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
-        * FIX 'Dictionnary' is now spelt 'Dictionary'
-              'wether' is now spelt 'whether'
-                        'archieve' is now spelt 'archive'   ;-)
+    * FIX 'Dictionnary' is now spelt 'Dictionary'
+          'wether' is now spelt 'whether'
+          'archieve' is now spelt 'archive'   ;-)
 
 2005-01-15 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
     * ADD DicomDir, DicomDirPatient, DicomDirStudy, DicomDirSerie, DicomDirImage
-              related methods, in order not to expose internal mechanisms
+          related methods, in order not to expose internal mechanisms
         InitTraversal();
         GetNextEntry();
-        * REM methods that exposed internal mechanisms :
+    * REM methods that exposed internal mechanisms :
         DicomDir::GetDicomDirPatients()
         DicomDirPatient::GetDicomDirStudies()
         DicomDirStudy::GetDicomDirSeries()
         DicomDirSerie::GetDicomDirImages()
-        * UPD Test programs :
-            makeDicomDir.cxx
-            BuildUpDicomDir.cxx
-            TestDicomDir.cxx
-         * UPD Example program
-            PrintDicomDir.cxx
+    * UPD Test programs :
+        makeDicomDir.cxx
+        BuildUpDicomDir.cxx
+        TestDicomDir.cxx
+     * UPD Example program
+        PrintDicomDir.cxx
     * ADD DictSet methods
         InitTraversal()
         GetNextEntry()
 
 2005-01-15 Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
    * Removed the Print/indent/default parameter mess. There is absolutely no
-        reason to have to methods, moreover with the second taking the ostream as
-        *SECOND* parameter. This was clearly a bad hack to get things compile.
+    reason to have to methods, moreover with the second taking the ostream as
+    *SECOND* parameter. This was clearly a bad hack to get things compile.
 
 2005-01-15 Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
    * Complete rewrite of the GetMacAddress code. Now the code is *much*
-        smaller (no more MacOSX specific crap). A lot more POSIX oriented.
-        Unfortunately the main code does not work on SunOS, thus provide a specific
-        code for this platform only (and Win32 of course). Since this seems to be
-        working, change CreateUniqueUID to use GetMACAddress instead of the
-        problematic GctestetIPAddress
+    smaller (no more MacOSX specific crap). A lot more POSIX oriented.
+    Unfortunately the main code does not work on SunOS, thus provide a specific
+    code for this platform only (and Win32 of course). Since this seems to be
+    working, change CreateUniqueUID to use GetMACAddress instead of the
+    problematic GctestetIPAddress
 
 2005-01-14 Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
    * Unfortunately to be able to test gdcmDirList I had to break the API
 
 2005-01-13 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
    * ENH - Comment out Mathieu's (dangerous) Super Hack
-             for dealing with BIGENDIAN processors
-                       - Move equivalent stuff to BinEntry::WriteContent
-                       When necessary, 16 Bits Pixels are swapped in a small buffer
-                       and then written. This avoid allocating a huge buffer, in
-                       PixelWriteConvertor, and avoid modifying the Pixel Area.
-                       Note :
-             Probabely, the same operation will have to be done when we want 
-             to write image with Big Endian Transfert Syntax, 
-             and we are working on Little Endian Processor
-                                               
+         for dealing with BIGENDIAN processors
+         - Move equivalent stuff to BinEntry::WriteContent
+         When necessary, 16 Bits Pixels are swapped in a small buffer
+         and then written. This avoid allocating a huge buffer, in
+         PixelWriteConvertor, and avoid modifying the Pixel Area.
+         Note :
+         Probabely, the same operation will have to be done when we want 
+         to write image with Big Endian Transfert Syntax, 
+         and we are working on Little Endian Processor
+                  
 2005-01-14 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
    * src/gdcmDocument.[h|cxx] : comment all methods concerning a flat hash
      table.
 
 2005-01-13 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
    * merging of Test/PrintDicomDir and Test/TestDicomDir
-       * removal of now redundant Test/PrintDicomDir
-       * enhancement of Example/PrintDicomDir
+   * removal of now redundant Test/PrintDicomDir
+   * enhancement of Example/PrintDicomDir
 
 2005-01-13 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
    * Now, python test might work on systems
 
 2005-01-13 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
    * FIX : First entry following group 0002 was lost for
-               Explicit Big Endian Transfer Syntax files
+           Explicit Big Endian Transfer Syntax files
           (group and elem not swaped)
-       
+   
 2005-01-12 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
    * FIX : Old quick and dirty 'optimistic' heuristic to deal with
-               Big Endian Transfer Syntax supposed the group following 0002
-                         begins always by element 0000 (element 0000 is *optional*)
-                         To avoid further troubles, let's be pessimistic, and use
-                         Document::HandleOutOfGroup0002() method 
-        * FIX : comparison between GDCM_NOTLOADED and Transfer Syntax
+           Big Endian Transfer Syntax supposed the group following 0002
+           begins always by element 0000 (element 0000 is *optional*)
+           To avoid further troubles, let's be pessimistic, and use
+           Document::HandleOutOfGroup0002() method 
+    * FIX : comparison between GDCM_NOTLOADED and Transfer Syntax
               (related pb not yet solved)
 
 2005-01-12 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
 2005-01-11 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
    * Replace confusing name SwitchSwapToBigEndian name by SwitchByteSwapCode
    * Add the Document::HandleOutOfGroup0002(uint16_t group) method
-           to swap the Swap Code, at parsing time, when we come out of group 0002
-                and Transfer Syntax is Big Endian
-                We should be able to read now 'true DICOM" Big Endian coded images
-        * Add optional run time SetDebugOn (last param) for PrintHeader, PrintFile
-        * Replace the french 'Transfert Syntax' by the english 'Transfer Syntax'
+       to swap the Swap Code, at parsing time, when we come out of group 0002
+       and Transfer Syntax is Big Endian
+       We should be able to read now 'true DICOM" Big Endian coded images
+    * Add optional run time SetDebugOn (last param) for PrintHeader, PrintFile
+    * Replace the french 'Transfert Syntax' by the english 'Transfer Syntax'
 
 2005-01-10 Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
    * Hopefully fix the bug on MacOSX and static global initialization.
 
 2005-01-08 Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
    * Fix bug on MacOSX with static initialization in a multy threaded
-        environment. static const string in a header file used to be ill
-        initialized provoquing the freeze of any tests. patch should solve this
-        issue.
+    environment. static const string in a header file used to be ill
+    initialized provoquing the freeze of any tests. patch should solve this
+    issue.
 
 2005-01-08 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
    * According to Benoit's suggestion, and without any objection from anybody
    * Removal of useless and dangerous methods :
          GetEntryByName, GetEntryVRByName, GetDocEntryByName, SetEntryByName
          GetDocEntryByName, GetEntryByName, GetDictEntryByName
-       * Removal of usless methods :
+   * Removal of usless methods :
          Dict::PrintByName, Dict::GetDictEntryByName
    * Commenting out of probabely useless methods :
          Dict::GetDictEntryNames()
          Dict::GetDictEntryNamesByCategory()
          DictSet::GetPubDictEntryNames()
-         DictSet::GetPubDictEntryNamesByCategory()                     
-       * ENH : New Dicom Dictionary (with Value Multiplicity) is now used      
-       * ENH : Use dicomTS.dic as described in 2004 version    
-       * ENH : Removal out of the Dicom Dictionary of non dicom 'fourth' field
+         DictSet::GetPubDictEntryNamesByCategory()         
+   * ENH : New Dicom Dictionary (with Value Multiplicity) is now used    
+   * ENH : Use dicomTS.dic as described in 2004 version   
+   * ENH : Removal out of the Dicom Dictionary of non dicom 'fourth' field
            Add         to the Dicom Dictionary of Dicom 'Value Multiplicity' field
-                         Add Accessors on VM (Value Multiplicity), and VM related methods                        
+           Add Accessors on VM (Value Multiplicity), and VM related methods           
    * ADD : Add a list of 'Dicom Attribute types', as found in
            http://medical.nema.org/dicom/2004/04_15PU.PDF
-                                    Unused till now...                   
-       * ADD : Add dicomGroupNameAbbreviations.dic
+                      Unused till now...           
+   * ADD : Add dicomGroupNameAbbreviations.dic
            should be used to write a method to replace the former
            Dict::GetDictEntryNamesByCategory()
 
 2005-01-05 Jean-Pierre Roux <jpr@creatis.univ-lyon1.fr>
    * ADD : Add the method Util::IsCurrentProcessorBigEndian
           (we'll need it for 'Explicit VR Big Endian' Transfert Syntax)
-       * ADD  Method Document::ComputeGroupLength
-       * ENH : now  parsing creates a Vitual DictEntry for Pixels Element,
+   * ADD  Method Document::ComputeGroupLength
+   * ENH : now  parsing creates a Vitual DictEntry for Pixels Element,
            in order to allow further VR modification by user
-   * REM : removal of once-called method File::WriteBase       
-               integration of its code in formerly one-line method File::Write
+   * REM : removal of once-called method File::WriteBase   
+           integration of its code in formerly one-line method File::Write
 
 2005-01-05 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
    * src/gdcmCommon.h : add the GDCM_UNKNOWN constant. This constant is to
    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 ...)     
+   (twice, withing a fortnigh ...)    
 
 2004-06-28 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
    * Test/TestWriteRead.cxx and TestReadWrite.cxx merged (because of
      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",
      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);
-         
+                                             
+   - gdcmElementSet
+     ADD virtual void Write(FILE *fp, FileType filetype);
+     
    - gdcmSeqEntry
-         ADD virtual void Write(FILE *fp,FileType filetype);
+     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);       
+     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); 
-                                 
+    ADD virtual void gdcmValEntry::Write(FILE *fp, FileType filetype); 
+              
 2004-06-21 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
     * Test/TestWriteSimple.cxx: fix to gdcmHeader-gdcmHeaderHelper revamping.
       The default constructor invoked by the line
       - Specific clean up of Parse7FE0() (umproperly named actually).
     * gdcmPython/testSuite.py: an odd temporary kludge introduced.
 
-2004-06-14 Jean-Pierre Roux            
+2004-06-14 Jean-Pierre Roux      
    *  gdcmSeqEntry.cxx
-          - fix the display of Sequence Delimitor (SQDepthLevel pb)
-               - fix the display of SQItem ordinal number
+      - 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     
-               
+      - remove some useless never written private methods   
+      
 2004-06-14 Jean-Pierre Roux
    * gdcmBinEntry.cxx 
       - adding a constructor taking a gdcmDocEntry as an input param
-          - ReplaceOrCreateByNumber now returns :
-             a gdcmBinEntry * if a Binary (void *) value is passed as a param
-                  a gdcmValEntry * if a string value is passed as a param
+      - ReplaceOrCreateByNumber now returns :
+         a gdcmBinEntry * if a Binary (void *) value is passed as a param
+         a gdcmValEntry * if a string value is passed as a param
    * dcmDocument.cxx
       - SetEntryByNumber now allows setting gdcmValEntry or gdcmBinEntry, 
-             according to the param type (no longer sets a gdcmDocEntry)
-          - GetValEntryByNumber, GetBinEntryByNumber added
+         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
       - 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  
+            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   
+      - adding a constructor taking a gdcmDocEntry as an input param   
 
 2004-06-14 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
     * Memory leak hunt with the following command:
            SeQuence indented printing of Dicom Header.
      * ENH merge methods gdcmParser::Parse and gdcmParser::LoadHeaderEntries
            into the single gdcmParser::LoadHeaderEntries for efficiency purpose.
-          Computation of SQDepthLevel is now part of gdcmHeader constructor
+      Computation of SQDepthLevel is now part of gdcmHeader constructor
      * ENH add self defined param 'new' to PrintHeader to 'show' the SeQuence
            tree-like structure of a Dicom Header.
      * FIX Test code cleaning     
      * ENH Minor changes to the Print() methods.
      * ADD gdcmParser::PrintEntryNiceSQ() to allow SQ-indented
            Header printing. Example given with :
-          > PrintHeader fileName  2 new
+      > PrintHeader fileName  2 new
           (SQ based tree-like structure still to be done for the Header ...)
-          
+      
 2004-04-22  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
      * ENH: Some cosmetic clean up for compilation with -W -Wall -Werror
          1. I have added some unsigned where needed
      * FIX gdcmHeaderHelper::GetXSpacing
            when a single value is found (bug ?), xpacing is now 
            defaulted to yspacing
-          
+      
 2004-04-19  Jean-Pierre Roux
      * ADD gdcmData/Wrist.pap (PAPYRUS 3.0 -single frame-) for checking purpose
      * ENH add parameters :
                bool  exception_on_error = false, 
                bool  enable_sequences   = false,
-              bool  ignore_shadow      = false
+          bool  ignore_shadow      = false
            to the gdcmFile constructors to be full gdcmParser compliant
      * FIX vtk/vtkGdcmReader.cxx now uses  enable_sequences = true in gdcmFile
            to allow reading of PAPYRUS 3.0 files 
-             
+         
 2004-04-06  Jean-Pierre Roux
      * ADD gdcmData/E00001S03I0015.dcm for SQ checking purpose
      
      * ADD : Test/checksequence.sh, for a general recap on SQ pb
      * FIX : gdcmParser::WriteEntryTagVRLength emprovement of special treatement
              for Philips spurious Tag fffe|0000 while rewritting Dicom files
-            
+        
 2004-03-30  Jean-Pierre Roux
      * FIX gdcmParser::ReplaceOrCreateByNumber shouldn't seg fault any more 
          for ACR file, written out as DICOM files (hope so...)
              from gdcmParser::WriteEntry to gdcmParser::WriteEntries
      * FIX : gdcmObject::ResetBoundaries now stops properly
              when end-of-list is reached
-          : gdcmVersion modified (as Benoit Regrain asked)
+      : gdcmVersion modified (as Benoit Regrain asked)
 
 2004-03-29  Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
      * src/gdcmParser.cxx: removal of all TAB character. Indentation fixed.
            add gdcmDicomDirPatient:NewStudy
            add gdcmDicomDirStudy:NewSerie
            add gdcmDicomDirSerie:NewImage
-          to allow making gdcDicomDir object.
+      to allow making gdcDicomDir object.
      * ADD PrintDicomDir executable that uses gdcmDicomDir tree-like structure
           (as opposite to the gdcmHeader chained list)
 
 2004-02-11 Benoit Regrain
      * FIX : memory leaks and the set of ArgDelete methods in gdcmDicomDir
              when using from python
-                                
+             
 2004-02-10 Benoit Regrain
      * FIX : bug fix in the gdcmDirList for the recursivity in directories
      * FIX : in gdcmDicomDir when the directory is empty
              not longer on the TagElValueHT tagHt member
       * ENH : PrintPubElVal shows (temporarily) both results,
              with the tagHt member and the listElem member.
-            (it's easier to 'see' the problems when using Printheader)
+        (it's easier to 'see' the problems when using Printheader)
 
       * FIX : old private member LgrElem is now splitted into
              ReadLength   : Length actually found on disk (updated only
-                           if bug fixing is necessary), for internal
-                           use only
-            UsableLength : Updated by FixFoundLength, to fix a bug
-                           or to allow Parser going on.
-            Will allow to re-write a kosher header when a SeQuence
-            with a length (not 0000) is found
+                       if bug fixing is necessary), for internal
+             use only
+        UsableLength : Updated by FixFoundLength, to fix a bug
+                       or to allow Parser going on.
+        Will allow to re-write a kosher header when a SeQuence
+        with a length (not 0000) is found
       Warning : gdcmFile::Write still uses the TagHt (not ListElem)
-               because gdcmElValSet::Add does not update ListElem
-               (to be written)
+           because gdcmElValSet::Add does not update ListElem
+      (to be written)
 
 2003-11-07 Jean-Pierre Roux
      * FIX misstyping in Transfert Syntax name table
              
 2003-10-29  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
      * ENH: Can be used like this '$vtkgdcmViewer *.dcm' with *.dcm 
-          being coherents dicom files.
+      being coherents dicom files.
      
 2003-10-29  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
      * FIX: DOH ! Forgot about windo$e users, they couldn't read lossless jpeg,
          - deals with YcBcR (YBR_FULL) files
          - deals with YBR_YBR_FULL_422 files (they work as RBG files ?!?)
           WARNING : nothing was checked for YBR_PARTIAL_422, YBR_ICT, 
-                                           YBR_RCT files.
+                                       YBR_RCT files.
           (no sample found :-(
 
 2003-10-02  Mathieu Malaterre  <Mathieu.Malaterre@creatis.insa-lyon.fr>
index c2d4b4d992cb772f39ddaf180c83e4f89f7ec2d5..a35f143234437696fc9b6e5f7a576b43e8bfe0b5 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: TestChangeHeader.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/21 11:40:52 $
-  Version:   $Revision: 1.8 $
+  Date:      $Date: 2005/01/24 14:14:08 $
+  Version:   $Revision: 1.9 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -37,7 +37,7 @@ int main(int argc, char* argv[])
 
     // 0018 1310 US ACQ Acquisition Matrix
     gdcm::DictEntry *dictEntry =
-       f2->GetFile()->GetPubDict()->GetDictEntry( 0x0018, 1310 );
+       f2->GetFile()->GetPubDict()->GetEntry( 0x0018, 1310 );
     std::cerr << std::hex << dictEntry->GetGroup() << "," << dictEntry->GetElement() << std::endl;
 
     std::string matrix = f2->GetFile()->GetEntry(0x0018, 0x1310);
index df64ba0e894143ed788963292a7eb84060e545dc..fb86ee41ca3069247ca29a8b8bb246eba8df8319 100644 (file)
@@ -12,6 +12,7 @@ SET(TEST_SOURCES
   TestHash.cxx
   TestTS.cxx
   TestVR.cxx
+  TestDicomDirElement.cxx
   TestUtil.cxx
   TestDicomString.cxx
   TestDict.cxx
diff --git a/Testing/TestDicomDirElement.cxx b/Testing/TestDicomDirElement.cxx
new file mode 100644 (file)
index 0000000..82e3f66
--- /dev/null
@@ -0,0 +1,28 @@
+/*=========================================================================
+                                                                                
+  Program:   gdcm
+  Module:    $RCSfile: TestDicomDirElement.cxx,v $
+  Language:  C++
+  Date:      $Date: 2005/01/24 14:14:09 $
+  Version:   $Revision: 1.1 $
+                                                                                
+  Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
+  l'Image). All rights reserved. See Doc/License.txt or
+  http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
+                                                                                
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notices for more information.
+                                                                                
+=========================================================================*/
+#include "gdcmDicomDirElement.h"
+
+#include <iostream>
+
+int TestDicomDirElement(int , char *[])
+{
+   gdcm::DicomDirElement ddElt;
+   ddElt.Print( std::cout );
+
+   return 0;
+}
index 6d5b4e207fe7bf7a3dde828beb0486c14b4ffda8..db151958f1c070bd188ea57bbd73d2fa9262e369 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: TestDict.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/18 07:56:21 $
-  Version:   $Revision: 1.4 $
+  Date:      $Date: 2005/01/24 14:14:09 $
+  Version:   $Revision: 1.5 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -65,7 +65,7 @@ int TestDict(int , char* [])
    const int ENTRY_GR = 0x10;
    const int ENTRY_EL = 0x20;
    std::string key=gdcm::DictEntry::TranslateToKey(ENTRY_GR,ENTRY_EL);
-   gdcm::DictEntry *entry=pubDict->GetDictEntry(ENTRY_GR,ENTRY_EL);
+   gdcm::DictEntry *entry=pubDict->GetEntry(ENTRY_GR,ENTRY_EL);
    if(!entry)
    {
       std::cout<<"The DictEntry hasn't be found... Failed\n";
@@ -79,7 +79,9 @@ int TestDict(int , char* [])
    entry=pubDict->GetFirstEntry();
    while(entry)
    {
-      entry->Print();
+      std::cout << entry->GetGroup() << "|" << entry->GetElement()
+                << " [" << entry->GetVR() << "] - M" << entry->GetVM()
+                << " : " << entry->GetName() << " ( " << entry->GetKey() << ")\n";
       entry=pubDict->GetNextEntry();
    }
 
index 1e97623edaa06da4a01f8809ba6a718ec132f9eb..703ee20ec7846354e50c9421832b5c910c1b2930 100644 (file)
@@ -21,7 +21,7 @@ try:
 except IndexError:
    printLevel = 1
 
-### Build the header element list
+### Build the DicomDir element list
 dicomdir = gdcm.DicomDir(fileName)
 if not dicomdir.IsReadable():
    print
index 03ac74973d9fc41496d7da9fcd5dc8cd087e04cd..82537d05d6cc5bcb634ab0ed3057ee10077fb3d9 100644 (file)
@@ -14,7 +14,7 @@ print "#####################################################################"
 # Print the DictSet
 dicts=gdcm.Global.GetDicts()
 if(not isinstance(dicts,gdcm.DictSet)):
-       raise RuntimeError,"The DictSet hasn't the good type (%s)" % type(dicts)
+   raise RuntimeError,"The DictSet hasn't the good type (%s)" % type(dicts)
 print "DictSet content :"
 dicts.Print()
 
@@ -22,7 +22,7 @@ print "#####################################################################"
 # Print the Dict (public)
 pubDict=dicts.GetDefaultPubDict()
 if(not isinstance(pubDict,gdcm.Dict)):
-       raise RuntimeError,"The public Dict hasn't the good type (%s)" % type(dict)
+   raise RuntimeError,"The public Dict hasn't the good type (%s)" % type(dict)
 print "Public Dict content :"
 pubDict.Print()
 
@@ -30,10 +30,10 @@ print "#####################################################################"
 # Print the DictEntry (0010|0020)
 ENTRY_GR = 0x10
 ENTRY_EL = 0x20
-entry=pubDict.GetDictEntry(ENTRY_GR,ENTRY_EL)
+entry=pubDict.GetEntry(ENTRY_GR,ENTRY_EL)
 if(not isinstance(entry,gdcm.DictEntry)):
-       raise RuntimeError,"The entry (%04x|%04x) hasn't the good type (%s)" % \
-             (ENTRY_GR,ENTRY_EL,type(entry))
+   raise RuntimeError,"The entry (%04x|%04x) hasn't the good type (%s)" % \
+         (ENTRY_GR,ENTRY_EL,type(entry))
 print "Entry (%04x|%04x) content :" % (ENTRY_GR,ENTRY_EL)
 entry.Print()
 
@@ -42,6 +42,8 @@ print "#####################################################################"
 print "dict content :"
 entry=pubDict.GetFirstEntry()
 while(entry):
-       entry.Print()
-       entry=pubDict.GetNextEntry()
+   print "%4x|%4x [%s] - M%s : %s (%s)" %\
+         (entry.GetGroup(),entry.GetElement(),entry.GetVR(),entry.GetVM(),
+          entry.GetName(),entry.GetKey())
+   entry=pubDict.GetNextEntry()
 
index 74d4b4eed7258350df2080a60c6d5d2c4bf4dce8..a0539c7f322e2499cc575362d27432810e709565 100644 (file)
@@ -21,10 +21,10 @@ try:
 except IndexError:
    printLevel = 1
 
-### Build the header element list
+### Build the file element list
 print fileName, type(fileName)
-header = gdcm.Header(fileName)
-if not header.IsReadable():
+file = gdcm.File(fileName)
+if not file.IsReadable():
    raise RuntimeError,"The '%s' file is not readable with gdcm." % fileName
 
 print "##############################################################"
@@ -32,10 +32,10 @@ print "### Display all the elements and their respective values"
 print "## found in the ", fileName, " file."
 print "##############################################################"
 
-val=header.GetFirstEntry()
+val=file.GetFirstEntry()
 while(val):
-       val.Print()
-       print ""
-       val=header.GetNextEntry()
+   val.Print()
+   print ""
+   val=file.GetNextEntry()
 val=None
 
index cb5aaeac68e414c75cb41400cceac4755156ead0..98298ca00e9877b9ed9111d69303eb3c13bebf77 100644 (file)
@@ -1,5 +1,7 @@
 %module gdcm
 %{
+#include <iostream>
+
 #include "gdcmCommon.h"
 #include "gdcmBase.h"
 #include "gdcmDict.h"
@@ -75,6 +77,17 @@ using namespace gdcm;
 
 ///////////////////////  typemap section  ////////////////////////////////////
 
+////////////////////////////////////////////////
+// Redefine all types used
+typedef char int8_t;
+typedef unsigned char uint8_t;
+typedef short int16_t;
+typedef unsigned short uint16_t;
+typedef int int32_t;
+typedef unsigned int uint32_t;
+typedef long long int64_t;
+typedef unsigned long long uint64_t;
+
 ////////////////////////////////////////////////
 // Convert a DocEntry * to the real derived class
 %typemap(out) gdcm::DocEntry * 
@@ -99,139 +112,139 @@ using namespace gdcm;
 
 ////////////////////////////////////////////////
 // Convert an STL list<> to a python native list
-%typemap(out) std::list<std::string> * 
-{
-   PyObject *newItem = (PyObject *)0;
-   PyObject *newList = PyList_New(0); // The result of this typemap
-
-   for (std::list<std::string>::iterator strIt = ($1)->begin();
-        strIt != ($1)->end();
-        ++strIt)
-   {
-      newItem = PyString_FromString(strIt->c_str());
-      PyList_Append( newList, newItem);
-   }
-   $result = newList;
-}
+//%typemap(out) std::list<std::string> * 
+//{
+//   PyObject *newItem = (PyObject *)0;
+//   PyObject *newList = PyList_New(0); // The result of this typemap
+//
+//   for (std::list<std::string>::iterator strIt = ($1)->begin();
+//        strIt != ($1)->end();
+//        ++strIt)
+//   {
+//      newItem = PyString_FromString(strIt->c_str());
+//      PyList_Append( newList, newItem);
+//   }
+//   $result = newList;
+//}
 
 //////////////////////////////////////////////////////////////////
 // Convert an STL map<> (hash table) to a python native dictionary
-%typemap(out) std::map<std::string, std::list<std::string> > * 
-{
-   PyObject *newDict = PyDict_New(); // The result of this typemap
-   PyObject *newKey = (PyObject *)0;
-   PyObject *newVal = (PyObject *)0;
-
-   for (std::map<std::string,
-        std::list<std::string> >::iterator tag = ($1)->begin();
-        tag != ($1)->end(); ++tag)
-   {
-      std::string first = tag->first;
-      // Do not publish entries whose keys is made of spaces
-      if (first.length() == 0)
-         continue;
-      newKey = PyString_FromString(first.c_str());
-
-      PyObject *newList = PyList_New(0);
-      for (std::list<std::string>::iterator itemIt = tag->second.begin();
-           itemIt != tag->second.end();
-           ++itemIt)
-      {
-         newVal = PyString_FromString(itemIt->c_str());
-         PyList_Append( newList, newVal);
-      }
-      PyDict_SetItem( newDict, newKey, newList);
-   }
-   $result = newDict;
-}
+//%typemap(out) std::map<std::string, std::list<std::string> > * 
+//{
+//   PyObject *newDict = PyDict_New(); // The result of this typemap
+//   PyObject *newKey = (PyObject *)0;
+//   PyObject *newVal = (PyObject *)0;
+//
+//   for (std::map<std::string,
+//        std::list<std::string> >::iterator tag = ($1)->begin();
+//        tag != ($1)->end(); ++tag)
+//   {
+//      std::string first = tag->first;
+//      // Do not publish entries whose keys is made of spaces
+//      if (first.length() == 0)
+//         continue;
+//      newKey = PyString_FromString(first.c_str());
+//
+//      PyObject *newList = PyList_New(0);
+//      for (std::list<std::string>::iterator itemIt = tag->second.begin();
+//           itemIt != tag->second.end();
+//           ++itemIt)
+//      {
+//         newVal = PyString_FromString(itemIt->c_str());
+//         PyList_Append( newList, newVal);
+//      }
+//      PyDict_SetItem( newDict, newKey, newList);
+//   }
+//   $result = newDict;
+//}
 
 /////////////////////////////////////////////////////////
 // Convert a c++ hash table in a python native dictionary
-%typemap(out) gdcm::TagDocEntryHT & 
-{
-   PyObject *newDict = PyDict_New(); // The result of this typemap
-   std::string rawName;              // Element name as gotten from gdcm
-   PyObject *newKey = (PyObject *)0; // Associated name as python object
-   std::string rawValue;             // Element value as gotten from gdcm
-   PyObject *newVal = (PyObject *)0; // Associated value as python object
-
-   for (gdcm::TagDocEntryHT::iterator tag = $1->begin(); tag != $1->end(); ++tag)
-   {
-      // The element name shall be the key:
-      rawName = tag->second->GetName();
-      // gdcm unrecognized (including not loaded because their size exceeds
-      // the user specified treshold) elements are exported with their
-      // TagKey as key.
-      if (rawName == "Unknown")
-         rawName = tag->second->GetKey();
-      newKey = PyString_FromString(rawName.c_str());
-
-      // Element values are striped from leading/trailing spaces
-      gdcm::ValEntry *valEntryPtr = dynamic_cast< gdcm::ValEntry* >(tag->second);
-      if ( valEntryPtr )
-      {
-         rawValue = valEntryPtr->GetValue();
-      }
-      else
-        continue; 
-      newVal = PyString_FromString(rawValue.c_str());
-      PyDict_SetItem( newDict, newKey, newVal);
-   }
-   $result = newDict;
-}
+//%typemap(out) gdcm::TagDocEntryHT & 
+//{
+//   PyObject *newDict = PyDict_New(); // The result of this typemap
+//   std::string rawName;              // Element name as gotten from gdcm
+//   PyObject *newKey = (PyObject *)0; // Associated name as python object
+//   std::string rawValue;             // Element value as gotten from gdcm
+//   PyObject *newVal = (PyObject *)0; // Associated value as python object
+//
+//   for (gdcm::TagDocEntryHT::iterator tag = $1->begin(); tag != $1->end(); ++tag)
+//   {
+//      // The element name shall be the key:
+//      rawName = tag->second->GetName();
+//      // gdcm unrecognized (including not loaded because their size exceeds
+//      // the user specified treshold) elements are exported with their
+//      // TagKey as key.
+//      if (rawName == "Unknown")
+//         rawName = tag->second->GetKey();
+//      newKey = PyString_FromString(rawName.c_str());
+//
+//      // Element values are striped from leading/trailing spaces
+//      gdcm::ValEntry *valEntryPtr = dynamic_cast< gdcm::ValEntry* >(tag->second);
+//      if ( valEntryPtr )
+//      {
+//         rawValue = valEntryPtr->GetValue();
+//      }
+//      else
+//        continue; 
+//      newVal = PyString_FromString(rawValue.c_str());
+//      PyDict_SetItem( newDict, newKey, newVal);
+//   }
+//   $result = newDict;
+//}
 
 /////////////////////////////////////
-%typemap(out) ListDicomDirPatient & 
-{
-       PyObject *newItem = (PyObject *)0;
-       $result = PyList_New(0); // The result of this typemap
-
-       for (std::list<gdcm::DicomDirPatient *>::iterator newIt = ($1)->begin();
-           newIt != ($1)->end(); ++newIt)
-   {
-               newItem = SWIG_NewPointerObj(*newIt,SWIGTYPE_p_DicomDirPatient,0);
-               PyList_Append($result, newItem);
-       }
-}
-
-%typemap(out) ListDicomDirStudy & 
-{
-       PyObject *newItem = (PyObject *)0;
-       $result = PyList_New(0); // The result of this typemap
-
-       for (std::list<gdcm::DicomDirStudy *>::iterator newIt = ($1)->begin();
-           newIt != ($1)->end(); ++newIt)
-   {
-               newItem = SWIG_NewPointerObj(*newIt,SWIGTYPE_p_DicomDirStudy,0);
-               PyList_Append($result, newItem);
-       }
-}
-
-%typemap(out) ListDicomDirSerie & 
-{
-       PyObject* newItem = (PyObject*)0;
-       $result = PyList_New(0); // The result of this typemap
-
-       for (std::list<gdcm::DicomDirSerie *>::iterator newIt = ($1)->begin();
-           newIt != ($1)->end(); ++newIt)
-   {
-               newItem = SWIG_NewPointerObj(*newIt,SWIGTYPE_p_DicomDirSerie,0);
-               PyList_Append($result, newItem);
-       }
-}
-
-%typemap(out) ListDicomDirImage & 
-{
-       PyObject* newItem = (PyObject*)0;
-       $result = PyList_New(0); // The result of this typemap
-
-       for (std::list<gdcm::DicomDirImage *>::iterator newIt = ($1)->begin();
-           newIt != ($1)->end(); ++newIt) 
-   {
-               newItem = SWIG_NewPointerObj(*newIt,SWIGTYPE_p_DicomDirImage,0);
-               PyList_Append($result, newItem);
-       }
-}
+//%typemap(out) ListDicomDirPatient & 
+//{
+//     PyObject *newItem = (PyObject *)0;
+//     $result = PyList_New(0); // The result of this typemap
+//
+//     for (std::list<gdcm::DicomDirPatient *>::iterator newIt = ($1)->begin();
+//         newIt != ($1)->end(); ++newIt)
+//   {
+//             newItem = SWIG_NewPointerObj(*newIt,SWIGTYPE_p_DicomDirPatient,0);
+//             PyList_Append($result, newItem);
+//     }
+//}
+
+//%typemap(out) ListDicomDirStudy & 
+//{
+//     PyObject *newItem = (PyObject *)0;
+//     $result = PyList_New(0); // The result of this typemap
+//
+//     for (std::list<gdcm::DicomDirStudy *>::iterator newIt = ($1)->begin();
+//         newIt != ($1)->end(); ++newIt)
+//   {
+//             newItem = SWIG_NewPointerObj(*newIt,SWIGTYPE_p_DicomDirStudy,0);
+//             PyList_Append($result, newItem);
+//     }
+//}
+
+//%typemap(out) ListDicomDirSerie & 
+//{
+//     PyObject* newItem = (PyObject*)0;
+//     $result = PyList_New(0); // The result of this typemap
+//
+//     for (std::list<gdcm::DicomDirSerie *>::iterator newIt = ($1)->begin();
+//         newIt != ($1)->end(); ++newIt)
+//   {
+//             newItem = SWIG_NewPointerObj(*newIt,SWIGTYPE_p_DicomDirSerie,0);
+//             PyList_Append($result, newItem);
+//     }
+//}
+
+//%typemap(out) ListDicomDirImage & 
+//{
+//     PyObject* newItem = (PyObject*)0;
+//     $result = PyList_New(0); // The result of this typemap
+//
+//     for (std::list<gdcm::DicomDirImage *>::iterator newIt = ($1)->begin();
+//         newIt != ($1)->end(); ++newIt) 
+//   {
+//             newItem = SWIG_NewPointerObj(*newIt,SWIGTYPE_p_DicomDirImage,0);
+//             PyList_Append($result, newItem);
+//     }
+//}
 
 ////////////////////////////////////////////////////////////////////////////
 // Multi-argument typemap designed for wrapping the progress related methods
@@ -285,6 +298,26 @@ using namespace gdcm;
    $1 = new std::string( PyString_AsString( $input ) );
 }
 
+////////////////////  gdcm.TagName versus Python str  //////////////////////
+%typemap(out) gdcm::TagName, const gdcm::TagName &
+{
+    $result = PyString_FromString(($1)->c_str());
+}
+
+// Convertion of incoming Python str to STL string
+%typemap(python, in) const gdcm::TagName, gdcm::TagName
+{
+  $1 = PyString_AsString($input);
+}
+
+// Same convertion as above but references (since swig converts C++
+// refererences to pointers)
+%typemap(python, in) gdcm::TagName const &
+{
+   $1 = new std::string( PyString_AsString( $input ) );
+}
+
+
 ////////////////////////////////////////////////////////////////////////////
 // Because overloading and %rename don't work together (see below Note 1)
 // we need to ignore some methods (e.g. the overloaded default constructor).
@@ -310,9 +343,9 @@ using namespace gdcm;
 %include "gdcmBase.h"
 %include "gdcmDictEntry.h"
 %include "gdcmDict.h"
+%include "gdcmDictSet.h"
 %include "gdcmDocEntrySet.h"
 %include "gdcmElementSet.h"
-%include "gdcmDictSet.h"
 %include "gdcmSQItem.h"
 %include "gdcmDicomDirElement.h"
 %include "gdcmDicomDirObject.h"
index e572d605b42fd8c8b4706aa41857e2f5631e2ec5..af4b6e407ca344826e37d52e040c63ec49ce90ba 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcm.h,v $
   Language:  C++
-  Date:      $Date: 2005/01/21 11:40:55 $
-  Version:   $Revision: 1.51 $
+  Date:      $Date: 2005/01/24 14:14:10 $
+  Version:   $Revision: 1.52 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -22,7 +22,6 @@
 // General purpose include file. This file should be included by
 // external users of gdcm. It exposes the necessary API.
 
-#include "gdcmException.h"
 #include "gdcmCommon.h"
 
 #include "gdcmDictEntry.h"
index 58649c6e7a7642a3a37ed721bdacd957d3d17ab0..78873a29c9a3324ecb802d199d2b8b69bad55578 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDefaultDicts.cxx.in,v $
   Language:  C++
-  Date:      $Date: 2005/01/20 17:15:54 $
-  Version:   $Revision: 1.6 $
+  Date:      $Date: 2005/01/24 14:14:10 $
+  Version:   $Revision: 1.7 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -48,7 +48,7 @@ void FillDefaultDataDict(Dict *d)
    while( n.name != 0 )
    {
       const DictEntry e( n.group, n.element, n.vr, n.vm, n.name);
-      d->AddNewEntry( e );
+      d->AddEntry( e );
       n = datadir[++i];
    }
 }
@@ -100,7 +100,7 @@ void FillDefaultDIRDict(DicomDirElement *dde)
       elem.Group = e.group;
       elem.Elem  = e.element;
       elem.Value = e.value;
-      dde->AddNewEntry( type, elem);
+      dde->AddEntry( type, elem);
       e = dataElement[++i];
    }
 }
index e9dfaa9ba15c477518fffc124e05cc7713f08327..568c07b74dd830b003937528daa4c3e14e20e02c 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDicomDir.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/23 10:12:33 $
-  Version:   $Revision: 1.114 $
+  Date:      $Date: 2005/01/24 14:14:10 $
+  Version:   $Revision: 1.115 $
   
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -596,7 +596,7 @@ void DicomDir::SetElement(std::string const &path, DicomDirType type,
    {
       tmpGr     = it->Group;
       tmpEl     = it->Elem;
-      dictEntry = GetPubDict()->GetDictEntry(tmpGr, tmpEl);
+      dictEntry = GetPubDict()->GetEntry(tmpGr, tmpEl);
 
       entry     = new ValEntry( dictEntry ); // Be sure it's never a BinEntry !
 
index 47e0750e1a4ed41f5285cdc4ba8372d4a58ebdc0..54cbce0b43f906898f0be9eaf7aa0488c023fab4 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDicomDirElement.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/20 17:15:54 $
-  Version:   $Revision: 1.30 $
+  Date:      $Date: 2005/01/24 14:14:10 $
+  Version:   $Revision: 1.31 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -84,7 +84,7 @@ DicomDirElement::DicomDirElement()
             from.getline(buff, 1024, '"');
             elem.Value = buff;
 
-            AddNewEntry(type, elem);
+            AddEntry(type, elem);
          }
          from.getline(buff, 1024, '\n');
       }
@@ -159,12 +159,11 @@ void DicomDirElement::Print(std::ostream &os)
 //-----------------------------------------------------------------------------
 // Public
 /**
- * \brief AddNewEntry 
+ * \brief Add an entry 
  * @param type type
  * @param elem elem
  */
-bool DicomDirElement::AddNewEntry(DicomDirType type, 
-                                  Element const &elem)
+bool DicomDirElement::AddEntry(DicomDirType type, Element const &elem)
 {
    switch( type )
    {
index 2e0b9c410c466842caa31b8671389f48f094ddb2..33b3a34f29e6826d12a67f36622a389038715960 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDicomDirElement.h,v $
   Language:  C++
-  Date:      $Date: 2005/01/20 17:15:54 $
-  Version:   $Revision: 1.21 $
+  Date:      $Date: 2005/01/24 14:14:11 $
+  Version:   $Revision: 1.22 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -102,7 +102,7 @@ public:
       { return DicomDirImageList; };
 
    // Public method to add an element
-   bool AddNewEntry(DicomDirType type, Element const &elem);
+   bool AddEntry(DicomDirType type, Element const &elem);
 
 private:
    /// Elements chained list, related to the MetaElements of DICOMDIR
index a06a2810ef221d9b7e9d95cfea70de7b4d4a8c96..2495ac01dfcd5d8f6bdb056bb287bdb89f5bed2d 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDicomDirObject.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/20 16:16:42 $
-  Version:   $Revision: 1.17 $
+  Date:      $Date: 2005/01/24 14:14:11 $
+  Version:   $Revision: 1.18 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -67,7 +67,7 @@ void DicomDirObject::FillObject(ListDicomDirMetaElem const &elemList)
    {
       tmpGr = it->Group;
       tmpEl = it->Elem;
-      dictEntry = Global::GetDicts()->GetDefaultPubDict()->GetDictEntry(tmpGr,tmpEl);
+      dictEntry = Global::GetDicts()->GetDefaultPubDict()->GetEntry(tmpGr,tmpEl);
       entry = new ValEntry(dictEntry);
       entry->SetOffset(0); // just to avoid further missprinting
       entry->SetValue(it->Value);
index 162b79c04237662ef239768e29903e397fe99736..6287e9aa522325a18510c310e401801b9ae41c3c 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDict.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/23 10:12:33 $
-  Version:   $Revision: 1.69 $
+  Date:      $Date: 2005/01/24 14:14:11 $
+  Version:   $Revision: 1.70 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -69,7 +69,7 @@ Dict::Dict(std::string const &filename)
          std::getline(from, name);
    
          const DictEntry newEntry(group, element, vr, vm, name);
-         AddNewEntry(newEntry);
+         AddEntry(newEntry);
       }
 
       Filename = filename;
@@ -129,7 +129,7 @@ void Dict::ClearEntry()
  * @param   newEntry entry to add 
  * @return  false if Dicom Element already exists
  */
-bool Dict::AddNewEntry(DictEntry const &newEntry) 
+bool Dict::AddEntry(DictEntry const &newEntry) 
 {
    const TagKey &key = newEntry.GetKey();
 
@@ -200,7 +200,7 @@ bool Dict::RemoveEntry (uint16_t group, uint16_t elem)
  * @param   elem element of the entry to be found
  * @return  the corresponding dictionary entry when existing, NULL otherwise
  */
-DictEntry *Dict::GetDictEntry(uint16_t group, uint16_t elem)
+DictEntry *Dict::GetEntry(uint16_t group, uint16_t elem)
 {
    TagKey key = DictEntry::TranslateToKey(group, elem);
    TagKeyHT::iterator it = KeyHt.find(key);
@@ -211,65 +211,6 @@ DictEntry *Dict::GetDictEntry(uint16_t group, uint16_t elem)
    return &(it->second);
 }
 
-/** 
- * \brief   Consider all the entries of the public dicom dictionary. 
- *          Build all list of all the tag names of all those entries.
- * \sa      DictSet::GetPubDictTagNamesByCategory
- * @return  A list of all entries of the public dicom dictionary.
- */
-
- // Probabely useless
-  
-//EntryNamesList *Dict::GetDictEntryNames() 
-//{
-//   EntryNamesList *result = new EntryNamesList;
-//   for (TagKeyHT::iterator tag = KeyHt.begin(); tag != KeyHt.end(); ++tag)
-//   {
-//      result->push_back( tag->second.GetName() );
-//   }
-//   return result;
-//}
-
-/** 
- * \brief   Consider all the entries of the public dicom dictionary.
- *          Build an hashtable whose keys are the names of the groups
- *          (fourth field in each line of dictionary) and whose corresponding
- *          values are lists of all the dictionary entries among that
- *          group. Note that apparently the Dicom standard doesn't explicitely
- *          define a name (as a string) for each group.
- *          A typical usage of this method would be to enable a dynamic
- *          configuration of a Dicom file browser: the admin/user can
- *          select in the interface which Dicom tags should be displayed.
- * \warning Dicom *doesn't* define any name for any 'categorie'
- *          (the dictionary fourth field was formerly NIH defined
- *           - and no longer he is-
- *           and will be removed when Dicom provides us a text file
- *           with the 'official' Dictionary, that would be more friendly
- *           than asking us to perform a line by line check of the dictionary
- *           at the beginning of each year to -try to- guess the changes)
- *           Therefore : please NEVER use that fourth field :-(
- *
- * @return  An hashtable: whose keys are the names of the groups and whose
- *          corresponding values are lists of all the dictionary entries
- *          among that group.
- */
- // Probabely useless
-//EntryNamesByCatMap *Dict::GetDictEntryNamesByCategory() 
-//{
-//   EntryNamesByCatMap *result = new EntryNamesByCatMap;
-//
-//   for (TagKeyHT::iterator tag = KeyHt.begin(); tag != KeyHt.end(); ++tag)
-//   {
-//      (*result)[tag->second.GetFourth()].push_back(tag->second.GetName());
-//   }
-//
-//   return result;
-//}
-
 /**
  * \brief   Get the first entry while visiting the Dict entries
  * \return  The first DicEntry if found, otherwhise NULL
index 8f9f0bb7906de143ff85e3c4dcb02c293402ed28..d42548c05a365fdaa04d50bb248efb97ea63303d 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDict.h,v $
   Language:  C++
-  Date:      $Date: 2005/01/20 11:39:49 $
-  Version:   $Revision: 1.34 $
+  Date:      $Date: 2005/01/24 14:14:11 $
+  Version:   $Revision: 1.35 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -32,9 +32,9 @@ namespace gdcm
 //-----------------------------------------------------------------------------
 typedef std::string DictKey;
 typedef std::map<TagKey, DictEntry>  TagKeyHT;
-typedef std::list<std::string>       EntryNamesList;
-typedef std::map<std::string, 
-            std::list<std::string> > EntryNamesByCatMap;
+//typedef std::list<std::string>       EntryNamesList;
+//typedef std::map<std::string, 
+//            std::list<std::string> > EntryNamesByCatMap;
 //-----------------------------------------------------------------------------
 /**
  * \ingroup Dict
@@ -58,16 +58,13 @@ public:
 
 // Entries
    void ClearEntry  ();
-   bool AddNewEntry (DictEntry const &newEntry);
+   bool AddEntry (DictEntry const &newEntry);
    bool ReplaceEntry(DictEntry const &newEntry);
    bool RemoveEntry (TagKey const &key);
    bool RemoveEntry (uint16_t group, uint16_t elem);
    
 // Tag
-   DictEntry *GetDictEntry(uint16_t group, uint16_t elem);
-
-  // EntryNamesList *GetDictEntryNames();
-  // EntryNamesByCatMap *GetDictEntryNamesByCategory();
+   DictEntry *GetEntry(uint16_t group, uint16_t elem);
 
    DictEntry *GetFirstEntry();
    DictEntry *GetNextEntry();
index 141813d368c9ea3ceb37289f684408dd0fc13c20..f9c74ec0270d886100ee43ef3d66b21e9bd19bcf 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocEntrySet.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/23 10:12:33 $
-  Version:   $Revision: 1.43 $
+  Date:      $Date: 2005/01/24 14:14:11 $
+  Version:   $Revision: 1.44 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -21,7 +21,6 @@
 #include "gdcmCommon.h"
 #include "gdcmDictSet.h"
 #include "gdcmGlobal.h"
-#include "gdcmException.h"
 #include "gdcmDocEntry.h"
 #include "gdcmSeqEntry.h"
 #include "gdcmValEntry.h"
@@ -139,7 +138,7 @@ DictEntry *DocEntrySet::GetDictEntry(uint16_t group,uint16_t elem)
    }
    else
    {
-      found = pubDict->GetDictEntry(group, elem);  
+      found = pubDict->GetEntry(group, elem);  
    }
    return found;
 }
index 745261fbfac626f1fea38b97d809a2002f50dd16..c2fb51a474d2e7a21363958404504a482cd0111e 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocEntrySet.h,v $
   Language:  C++
-  Date:      $Date: 2005/01/20 16:17:00 $
-  Version:   $Revision: 1.40 $
+  Date:      $Date: 2005/01/24 14:14:11 $
+  Version:   $Revision: 1.41 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -20,7 +20,6 @@
 #define GDCMDOCENTRYSET_H
 
 #include "gdcmBase.h"
-#include "gdcmException.h"
 #include <fstream>
 
 namespace gdcm 
index 8437264ba6268cf28f9d21c8eb86fb132f8a95a7..d6f1cbb1e0a1f9d4c3e29fa99822fbf35da9f334 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocument.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/23 10:12:33 $
-  Version:   $Revision: 1.204 $
+  Date:      $Date: 2005/01/24 14:14:11 $
+  Version:   $Revision: 1.205 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -24,7 +24,6 @@
 #include "gdcmUtil.h"
 #include "gdcmDebug.h"
 #include "gdcmTS.h"
-#include "gdcmException.h"
 #include "gdcmDictSet.h"
 #include "gdcmRLEFramesInfo.h"
 #include "gdcmJPEGFragmentsInfo.h"
index e81582467fbcde9b13961db83c98fe6d1663e24f..aaa8dacb53f87810497c97d66aa7ee13e03957e8 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocument.h,v $
   Language:  C++
-  Date:      $Date: 2005/01/23 10:12:33 $
-  Version:   $Revision: 1.97 $
+  Date:      $Date: 2005/01/24 14:14:11 $
+  Version:   $Revision: 1.98 $
  
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -22,6 +22,7 @@
 #include "gdcmVR.h"
 #include "gdcmDict.h"
 #include "gdcmElementSet.h"
+#include "gdcmException.h"
 
 #include <map>
 #include <list>
index e82ad45d9175a9a4ddc7cc7f5bbb595394b25468..600ce145316b8d10577cb98e740abf94e2aee9ea 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmSQItem.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/19 15:24:28 $
-  Version:   $Revision: 1.55 $
+  Date:      $Date: 2005/01/24 14:14:11 $
+  Version:   $Revision: 1.56 $
   
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -190,7 +190,7 @@ bool SQItem::SetEntry(std::string const &val, uint16_t group,
          Dict *pubDict = Global::GetDicts()->GetDefaultPubDict();
          // if the invoked (group,elem) doesn't exist inside the Dictionary
          // we create a VirtualDictEntry
-         DictEntry *dictEntry = pubDict->GetDictEntry(group, elem);
+         DictEntry *dictEntry = pubDict->GetEntry(group, elem);
          if (dictEntry == NULL)
          {
             dictEntry =