X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmFile.cxx;h=71e8a7782c480f78418d2a0f8eed787410a826f3;hb=0ce6682a82eacb85233fcccef601f83bb591ec12;hp=fff552358a69c7065db477b7bf9cc2110deb11c4;hpb=ef8ed3af8c91289da3f6a6e64da7aafda69b8b62;p=gdcm.git diff --git a/src/gdcmFile.cxx b/src/gdcmFile.cxx index fff55235..71e8a778 100644 --- a/src/gdcmFile.cxx +++ b/src/gdcmFile.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFile.cxx,v $ Language: C++ - Date: $Date: 2005/03/11 11:12:13 $ - Version: $Revision: 1.230 $ + Date: $Date: 2005/04/19 09:58:19 $ + Version: $Revision: 1.233 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -46,12 +46,25 @@ namespace gdcm { //----------------------------------------------------------------------------- // Constructor / Destructor + +/** + * \brief Constructor used when we want to generate dicom files from scratch + */ +File::File(): + Document() +{ + RLEInfo = new RLEFramesInfo; + JPEGInfo = new JPEGFragmentsInfo; + GrPixel = 0x7fe0; + NumPixel = 0x0010; +} + /** * \brief Constructor * @param filename name of the file whose header we want to analyze */ File::File( std::string const &filename ) - :Document( filename ) + :Document(filename) { RLEInfo = new RLEFramesInfo; JPEGInfo = new JPEGFragmentsInfo; @@ -145,17 +158,6 @@ File::File( std::string const &filename ) } } -/** - * \brief Constructor used when we want to generate dicom files from scratch - */ -File::File(): - Document() -{ - RLEInfo = new RLEFramesInfo; - JPEGInfo = new JPEGFragmentsInfo; - GrPixel = 0x7fe0; - NumPixel = 0x0010; -} /** * \brief Canonical destructor. @@ -170,6 +172,8 @@ File::~File () //----------------------------------------------------------------------------- // Public + + /** * \brief This predicate, based on hopefully reasonable heuristics, * decides whether or not the current File was properly parsed @@ -264,10 +268,14 @@ ModalityType File::GetModality() else if ( strModality.find("PT") < strModality.length()) return PT; else if ( strModality.find("RF") < strModality.length()) return RF; else if ( strModality.find("RG") < strModality.length()) return RG; - else if ( strModality.find("RTDOSE") < strModality.length()) return RTDOSE; - else if ( strModality.find("RTIMAGE") < strModality.length()) return RTIMAGE; - else if ( strModality.find("RTPLAN") < strModality.length()) return RTPLAN; - else if ( strModality.find("RTSTRUCT") < strModality.length()) return RTSTRUCT; + else if ( strModality.find("RTDOSE") + < strModality.length()) return RTDOSE; + else if ( strModality.find("RTIMAGE") + < strModality.length()) return RTIMAGE; + else if ( strModality.find("RTPLAN") + < strModality.length()) return RTPLAN; + else if ( strModality.find("RTSTRUCT") + < strModality.length()) return RTSTRUCT; else if ( strModality.find("SM") < strModality.length()) return SM; else if ( strModality.find("ST") < strModality.length()) return ST; else if ( strModality.find("TG") < strModality.length()) return TG; @@ -819,20 +827,21 @@ std::string File::GetPixelType() } /** - * \brief Check whether the pixels are signed or UNsigned data. - * \warning The method defaults to false (UNsigned) when information is Missing. + * \brief Check whether the pixels are signed (1) or UNsigned (0) data. + * \warning The method defaults to false (UNsigned) when tag 0028|0103 + * is missing. * The responsability of checking this value is left to the caller. * @return True when signed, false when UNsigned */ bool File::IsSignedPixelData() { - std::string strSize = GetEntryValue( 0x0028, 0x0103 ); - if ( strSize == GDCM_UNFOUND ) + std::string strSign = GetEntryValue( 0x0028, 0x0103 ); + if ( strSign == GDCM_UNFOUND ) { gdcmWarningMacro( "(0028,0103) is supposed to be mandatory"); return false; } - int sign = atoi( strSize.c_str() ); + int sign = atoi( strSign.c_str() ); if ( sign == 0 ) { return false; @@ -1445,7 +1454,7 @@ void File::ComputeRLEInfo() // - when more than one frame are present, then we are in // the case of a multi-frame image. long frameLength; - while ( (frameLength = ReadTagLength(0xfffe, 0xe000)) ) + while ( (frameLength = ReadTagLength(0xfffe, 0xe000)) != 0 ) { // Parse the RLE Header and store the corresponding RLE Segment // Offset Table information on fragments of this current Frame. @@ -1524,7 +1533,7 @@ void File::ComputeJPEGFragmentInfo() // Loop on the fragments[s] and store the parsed information in a // JPEGInfo. long fragmentLength; - while ( (fragmentLength = ReadTagLength(0xfffe, 0xe000)) ) + while ( (fragmentLength = ReadTagLength(0xfffe, 0xe000)) != 0 ) { long fragmentOffset = Fp->tellg();