]> Creatis software - gdcm.git/blobdiff - src/gdcmDocEntry.cxx
BUG: Newer version of the software on Siemens MR write proper lenght.
[gdcm.git] / src / gdcmDocEntry.cxx
index 706d023c351865c50f1db532d8c6f947a60116e9..535e3bc99267a3446588b3c8f9db86085c81ffc2 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocEntry.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/11/21 12:15:06 $
-  Version:   $Revision: 1.78 $
+  Date:      $Date: 2006/02/16 20:06:14 $
+  Version:   $Revision: 1.81 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -17,6 +17,7 @@
 =========================================================================*/
 
 #include "gdcmDocEntry.h"
+#include "gdcmDataEntry.h"
 #include "gdcmTS.h"
 #include "gdcmVR.h"
 #include "gdcmGlobal.h"
@@ -70,17 +71,21 @@ void DocEntry::WriteContent(std::ofstream *fp, FileType filetype)
 {
    uint32_t ffff  = 0xffffffff;
    uint16_t group = GetGroup();
+
+   ///\todo allow skipping Shadow groups 
    VRKey vr       = GetVR();
-   uint16_t el    = GetElement();
+   uint16_t elem  = GetElement();
    uint32_t lgth  = GetLength();
 
-   if ( group == 0xfffe && el == 0x0000 )
+   if ( group == 0xfffe && elem == 0x0000 )
    {
      // Fix in order to make some MR PHILIPS images e-film readable
      // see gdcmData/gdcm-MR-PHILIPS-16-Multi-Seq.dcm:
      // we just *always* ignore spurious fffe|0000 tag !   
       return;
    }
+
    //
    // ----------- Writes the common part
    //
@@ -91,15 +96,14 @@ void DocEntry::WriteContent(std::ofstream *fp, FileType filetype)
    
  // ----------- Writes the common part : the Tag   
    binary_write( *fp, group); //group number
-   binary_write( *fp, el);    //element number
+   binary_write( *fp, elem);  //element number
 
    // Dicom V3 group 0x0002 is *always* Explicit VR !
    if ( filetype == ExplicitVR || filetype == JPEG || group == 0x0002 )
    {
-
 // ----------- Writes the common part : the VR + the length 
   
-          // Special case of delimiters:
+      // Special case of delimiters:
       if (group == 0xfffe)
       {
          // Delimiters have NO Value Representation
@@ -219,7 +223,7 @@ bool DocEntry::IsSequenceDelimitor()
 }
 
 /**
- * \brief   Copies all the attributes from an other DocEntry 
+ * \brief Copies all the attributes from an other DocEntry 
  * @param doc entry to copy from
  */
 void DocEntry::Copy(DocEntry *doc)