Program: gdcm
Module: $RCSfile: gdcmFile.cxx,v $
Language: C++
- Date: $Date: 2005/07/20 13:31:01 $
- Version: $Revision: 1.253 $
+ Date: $Date: 2005/07/24 02:34:41 $
+ Version: $Revision: 1.263 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
// as the Z coordinate,
// 0. for all the coordinates if nothing is found
//
-// Image Position (Patient) (0020,0032) What is it used for?
+// Image Position (Patient) (0020,0032) VM=3 What is it used for?
// -->
// The attribute Patient Orientation (0020,0020) from the General Image Module
// is of type 2C and has the condition Required if image does not require
// Image Orientation (0020,0037) and Image Position (0020,0032).
-// However, if the image does require the attributes Image Orientation (0020,0037)
-// and Image Position (0020,0032) then attribute Patient Orientation (0020,0020)
-// should not be present in the images.
+// However, if the image does require the attributes
+// - Image Orientation (Patient) (0020,0037), VM=6
+// - Image Position Patient (0020,0032), VM=3
+// then attribute Patient Orientation (0020,0020) should not be present
+// in the images.
//
// Remember also :
// Patient Position (0018,5100) values : HFP = Head First-Prone
// FFDL = Feet First-Decubitus Left
// FFP = Feet First-Prone
// FFS = Feet First-Supine
+// 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
+// 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
+//
+// (0020|0037) [Image Orientation (Patient)] [1\0\0\0\1\0 ]
+
+
// ---------------------------------------------------------------
//
#include "gdcmFile.h"
namespace gdcm
{
+
//-----------------------------------------------------------------------------
// Constructor / Destructor
* @param iop adress of the (6)float array to receive values
* @return cosines of image orientation patient
*/
-void File::GetImageOrientationPatient( float iop[6] )
+bool File::GetImageOrientationPatient( float iop[6] )
{
std::string strImOriPat;
//iop is supposed to be float[6]
&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." );
+ return false;
}
}
//For ACR-NEMA
&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." );
+ return false;
}
}
+ return true;
}
/**
}
// These are the deprecated method that one day should be removed (after the next release)
+
#ifndef GDCM_LEGACY_REMOVE
/**
- * \brief Constructor
+ * \brief Constructor (DEPRECATED : temporaryly kept not to break the API)
* @param filename name of the file whose header we want to analyze
- * @deprecated do not use anymore
+ * @deprecated do not use any longer
*/
File::File( std::string const &filename )
:Document( )
RLEInfo = new RLEFramesInfo;
JPEGInfo = new JPEGFragmentsInfo;
- Load( filename ); // gdcm::Document is first Loaded, then the 'File part'
+ SetFileName( filename );
+ Load( ); // gdcm::Document is first Loaded, then the 'File part'
}
/**
- * \brief Loader. (DEPRECATED : not to break the API)
+ * \brief Loader. (DEPRECATED : temporaryly kept not to break the API)
* @param fileName file to be open for parsing
* @return false if file cannot be open or no swap info was found,
* or no tag was found.
- * @deprecated Use the Load() function instead
+ * @deprecated Use the Load() [ + SetLoadMode() ] + SetFileName() functions instead
*/
bool File::Load( std::string const &fileName )
{