Program: gdcm
Module: $RCSfile: gdcmFile.cxx,v $
Language: C++
- Date: $Date: 2005/08/29 13:05:01 $
- Version: $Revision: 1.265 $
+ 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"
#include "gdcmJPEGFragmentsInfo.h"
#include <vector>
-#include <stdio.h> //sscanf
+#include <stdio.h> //sscanf
#include <stdlib.h> // for atoi
namespace gdcm
/**
* \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] )
{
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;
}
}
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)
if ( e0000 )
{
std::ostringstream sLen;
- sLen << ComputeGroup0002Length(writetype);
+ sLen << ComputeGroup0002Length( );
e0000->SetValue(sLen.str());
}
itemTagGroup = ReadInt16();
itemTagElem = ReadInt16();
}
- catch ( FormatError e )
+ catch ( FormatError /*e*/ )
{
//std::cerr << e << std::endl;
return false;