]> Creatis software - gdcm.git/blobdiff - src/gdcmFile.cxx
STYLE: Remove old comments
[gdcm.git] / src / gdcmFile.cxx
index f79b64e7c8618eb8cc8f574c93ef064f13daf54e..8b29ba6808608ff8c54962eabefdffaa6890db66 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmFile.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/07/30 18:17:08 $
-  Version:   $Revision: 1.264 $
+  Date:      $Date: 2005/09/21 17:16:15 $
+  Version:   $Revision: 1.271 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
 //  in the images.
 //
 // Remember also :
-// Patient Position (0018,5100) values : HFP   = Head First-Prone
-//                                       HFS   = Head First-Supine
-//                                       HFDR  = Head First-Decubitus Right
-//                                       HFDL = Head First-Decubitus Left
-//                                       FFDR = Feet First-Decubitus Right
-//                                       FFDL = Feet First-Decubitus Left
-//                                       FFP  = Feet First-Prone
-//                                       FFS  = Feet First-Supine
-//                    can also find      SEMIERECT
-//                                       SUPINE
+// Patient Position (0018,5100) values :
+
+//  HFS   = Head First-Supine, where increasing (positive axis direction) :
+//     X -> to the direction pointed to by the patient's oustretched left arm
+//     Y -> to the anterior-to-posterior direction in the patient's body
+//     Z -> to the feet-to-head direction in the patient's body
+
+//  HFP   = Head First-Prone, where increasing (positive axis direction) :
+//     X -> to the direction pointed to by the patient's oustretched left arm
+//     Y -> to the anterior-to-posterior direction in the patient's body
+//     Z -> to the feet-to-head direction in the patient's body
+
+//  FFS  = Feet First-Supine, where increasing (positive axis direction) :
+//     X -> to the direction pointed to by the patient's oustretched left arm
+//     Y -> to the anterior-to-posterion direction in the patient's body
+//     Z -> to the feet-to-head direction in the patient's body
+
+//  FFP  = Feet First-Prone, where increasing (positive axis direction) :
+//     X -> to the direction pointed to by the patient's oustretched left arm
+//     Y -> to the posterior-to-anterior direction in the patient's body
+//     Z -> to the feet-to-head direction in the patient's body
+
+// HFDR = Head First-Decubitus Right
+// HFDL = Head First-Decubitus Left
+// FFDR = Feet First-Decubitus Right
+// FFDL = Feet First-Decubitus Left
+
+//  we can also find      
+
+// SEMIERECT
+// SUPINE
+
 // CS 2 Patient Orientation (0020 0020)
-//               When the coordinates of the image 
-//               are always present, this field is almost never used.
-//               Better we don't tust it too much ...
-//               Found Values are :      L\P
-//                                       L\FP
-//                                       P\F
-//                                       L\F
-//                                       P\FR
-//                                       R\F
+//    When the coordinates of the image 
+//    are always present, this field is almost never used.
+//    Better we don't trust it too much ...
+//    Found Values are :
+//     L\P
+//     L\FP
+//     P\F
+//     L\F
+//     P\FR
+//     R\F
 //
 // (0020|0037) [Image Orientation (Patient)] [1\0\0\0\1\0 ]
 
-                                      
+               
 // ---------------------------------------------------------------
 //
 #include "gdcmFile.h"
@@ -76,7 +99,7 @@
 #include "gdcmJPEGFragmentsInfo.h"
 
 #include <vector>
-#include <stdio.h> //sscanf
+#include <stdio.h>  //sscanf
 #include <stdlib.h> // for atoi
 
 namespace gdcm 
@@ -731,9 +754,11 @@ float File::GetZOrigin()
 
 /**
   * \brief gets the info from 0020,0037 : Image Orientation Patient
+  *                   or from 0020 0035 : Image Orientation (RET)
   * (needed to organize DICOM files based on their x,y,z position)
   * @param iop adress of the (6)float array to receive values
-  * @return cosines of image orientation patient
+  * @return true when one of the tag is found
+  *         false when nothing is found
   */
 bool File::GetImageOrientationPatient( float iop[6] )
 {
@@ -747,7 +772,8 @@ bool File::GetImageOrientationPatient( float iop[6] )
       if ( sscanf( strImOriPat.c_str(), "%f \\ %f \\%f \\%f \\%f \\%f ", 
           &iop[0], &iop[1], &iop[2], &iop[3], &iop[4], &iop[5]) != 6 )
       {
-         gdcmWarningMacro( "Wrong Image Orientation Patient (0020,0037). Less than 6 values were found." );
+         gdcmWarningMacro( "Wrong Image Orientation Patient (0020,0037)."
+                        << " Less than 6 values were found." );
          return false;
       }
    }
@@ -758,13 +784,16 @@ bool File::GetImageOrientationPatient( float iop[6] )
       if ( sscanf( strImOriPat.c_str(), "%f \\ %f \\%f \\%f \\%f \\%f ", 
           &iop[0], &iop[1], &iop[2], &iop[3], &iop[4], &iop[5]) != 6 )
       {
-         gdcmWarningMacro( "wrong Image Orientation Patient (0020,0035). Less than 6 values were found." );
+         gdcmWarningMacro( "wrong Image Orientation Patient (0020,0035). "
+                        << "Less than 6 values were found." );
          return false;
       }
    }
    return true;
 }
 
+
+
 /**
  * \brief   Retrieve the number of Bits Stored (actually used)
  *          (as opposed to number of Bits Allocated)
@@ -1289,7 +1318,7 @@ void File::AddAnonymizeElement (uint16_t group, uint16_t elem,
    el.Group = group;
    el.Elem  = elem;
    el.Value = value;
-   AnonymizeList.push_back(el); 
+   UserAnonymizeList.push_back(el); 
 }
 
 /**
@@ -1305,8 +1334,8 @@ void File::AnonymizeNoLoad()
    uint32_t lgth;
    uint32_t valLgth = 0;
    std::string *spaces;
-   for (ListElements::iterator it = AnonymizeList.begin();  
-                               it != AnonymizeList.end();
+   for (ListElements::iterator it = UserAnonymizeList.begin();  
+                               it != UserAnonymizeList.end();
                              ++it)
    { 
       d = GetDocEntry( (*it).Group, (*it).Elem);
@@ -1314,11 +1343,11 @@ void File::AnonymizeNoLoad()
       if ( d == NULL)
          continue;
 
-         if ( dynamic_cast<SeqEntry *>(d) )
-         {
-            gdcmWarningMacro( "You cannot 'Anonymize a SeqEntry ");
-            continue;
-         }
+      if ( dynamic_cast<SeqEntry *>(d) )
+      {
+         gdcmWarningMacro( "You cannot 'Anonymize' a SeqEntry ");
+         continue;
+      }
 
       offset = d->GetOffset();
       lgth =   d->GetLength();
@@ -1344,7 +1373,7 @@ void File::AnonymizeNoLoad()
 bool File::AnonymizeFile()
 {
    // If Anonymisation list is empty, let's perform some basic anonymization
-   if ( AnonymizeList.begin() == AnonymizeList.end() )
+   if ( UserAnonymizeList.begin() == UserAnonymizeList.end() )
    {
       // If exist, replace by spaces
       SetValEntry ("  ",0x0010, 0x2154); // Telephone   
@@ -1362,15 +1391,15 @@ bool File::AnonymizeFile()
          }
          else
          {
-            SetValEntry("anonymised", 0x0010, 0x0010);
+            SetValEntry("anonymized", 0x0010, 0x0010);
          }
       }
    }
    else
    {
       gdcm::DocEntry *d;
-      for (ListElements::iterator it = AnonymizeList.begin();  
-                                  it != AnonymizeList.end();
+      for (ListElements::iterator it = UserAnonymizeList.begin();  
+                                  it != UserAnonymizeList.end();
                                 ++it)
       {  
          d = GetDocEntry( (*it).Group, (*it).Elem);
@@ -1472,7 +1501,7 @@ bool File::Write(std::string fileName, FileType writetype)
    if ( e0000 )
    {
       std::ostringstream sLen;
-      sLen << ComputeGroup0002Length(writetype);
+      sLen << ComputeGroup0002Length( );
       e0000->SetValue(sLen.str());
    }
 
@@ -1662,7 +1691,7 @@ bool File::ReadTag(uint16_t testGroup, uint16_t testElem)
       itemTagGroup = ReadInt16();
       itemTagElem  = ReadInt16();
    }
-   catch ( FormatError e )
+   catch ( FormatError /*e*/ )
    {
       //std::cerr << e << std::endl;
       return false;