Program: gdcm
Module: $RCSfile: gdcmDocument.cxx,v $
Language: C++
- Date: $Date: 2005/02/03 10:03:07 $
- Version: $Revision: 1.222 $
+ Date: $Date: 2005/02/07 09:51:03 $
+ Version: $Revision: 1.225 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include <vector>
#include <iomanip>
+#include <fstream>
// For nthos:
#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__)
Group0002Parsed = false;
- gdcmVerboseMacro( "Starting parsing of file: " << Filename.c_str());
+ gdcmWarningMacro( "Starting parsing of file: " << Filename.c_str());
// Fp->seekg( 0, std::ios::beg);
Fp->seekg(0, std::ios::end);
{
if( Filetype == Unknown)
{
- gdcmVerboseMacro( "Wrong filetype");
+ gdcmWarningMacro( "Wrong filetype");
return false;
}
if ( IsEmpty() )
{
- gdcmVerboseMacro( "No tag in internal hash table.");
+ gdcmWarningMacro( "No tag in internal hash table.");
return false;
}
}
if ( transferSyntax == GDCM_UNFOUND )
{
- gdcmVerboseMacro( "Unfound Transfer Syntax (0002,0010)");
+ gdcmWarningMacro( "Unfound Transfer Syntax (0002,0010)");
return "Uncompressed ACR-NEMA";
}
if(Fp)
{
- gdcmVerboseMacro( "File already open: " << Filename.c_str());
+ gdcmWarningMacro( "File already open: " << Filename.c_str());
CloseFile();
}
return 0;
}
- uint16_t zero;
+ uint16_t zero = 0;
Fp->read((char*)&zero, (size_t)2);
if( Fp->eof() )
{
{
std::string msg
= Util::Format("ACR/DICOM with no preamble: (%04x)\n", zero);
- gdcmVerboseMacro( msg.c_str() );
+ gdcmWarningMacro( msg.c_str() );
return Fp;
}
//DICOM
Fp->seekg(126L, std::ios::cur);
- char dicm[4];
+ char dicm[4] = {' ',' ',' ',' '};
Fp->read(dicm, (size_t)4);
if( Fp->eof() )
{
}
CloseFile();
- gdcmVerboseMacro( "Not DICOM/ACR (missing preamble)" << Filename.c_str());
+ gdcmWarningMacro( "Not DICOM/ACR (missing preamble)" << Filename.c_str());
return 0;
}
uint8_t *a = new uint8_t[l];
if( !a )
{
- gdcmVerboseMacro( "Cannot allocate BinEntry content");
+ gdcmWarningMacro( "Cannot allocate BinEntry content");
return;
}
!Global::GetVR()->IsVROfBinaryRepresentable(vr) )
{
////// Neither ValEntry NOR BinEntry: should mean UNKOWN VR
- gdcmVerboseMacro( std::hex << newDocEntry->GetGroup()
+ gdcmWarningMacro( std::hex << newDocEntry->GetGroup()
<< "|" << newDocEntry->GetElement()
<< " : Neither Valentry, nor BinEntry."
"Probably unknown VR.");
if( length % 2 )
{
newValue = Util::DicomString(str, length+1);
- gdcmVerboseMacro("Warning: bad length: " << length <<
+ gdcmWarningMacro("Warning: bad length: " << length <<
",For string :" << newValue.c_str());
// Since we change the length of string update it length
//entry->SetReadLength(length+1);
{
if ( Fp->fail() || Fp->eof())
{
- gdcmVerboseMacro("Unread element value");
+ gdcmWarningMacro("Unread element value");
valEntry->SetValue(GDCM_UNREAD);
return;
}
if ( group != 0xfffe || ( ( elem != 0xe0dd ) && ( elem != 0xe000 ) ) )
{
long filePosition = Fp->tellg();
- gdcmVerboseMacro( "Neither an Item tag nor a Sequence delimiter tag on :"
+ gdcmWarningMacro( "Neither an Item tag nor a Sequence delimiter tag on :"
<< std::hex << group << " , " << elem
<< ") -before- position x(" << filePosition << ")" );
if ( foundLength % 2)
{
- gdcmVerboseMacro( "Warning : Tag with uneven length " << foundLength
+ gdcmWarningMacro( "Warning : Tag with uneven length " << foundLength
<< " in x(" << std::hex << gr << "," << elem <<")");
}
// encounter such an ill-formed image, we simply display a warning
// message and proceed on parsing (while crossing fingers).
long filePosition = Fp->tellg();
- gdcmVerboseMacro( "Erroneous Group Length element length on : ("
+ gdcmWarningMacro( "Erroneous Group Length element length on : ("
<< std::hex << group << " , " << elem
<< ") -before- position x(" << filePosition << ")"
<< "lgt : " << length );
char *entCur = deb + 128;
if( memcmp(entCur, "DICM", (size_t)4) == 0 )
{
- gdcmVerboseMacro( "Looks like DICOM Version3 (preamble + DCM)" );
+ gdcmWarningMacro( "Looks like DICOM Version3 (preamble + DCM)" );
// Group 0002 should always be VR, and the first element 0000
// Let's be carefull (so many wrong headers ...)
// instead of just checking for UL, OB and UI !? group 0000
{
Filetype = ExplicitVR;
- gdcmVerboseMacro( "Group 0002 : Explicit Value Representation");
+ gdcmWarningMacro( "Group 0002 : Explicit Value Representation");
}
else
{
Filetype = ImplicitVR;
- gdcmVerboseMacro( "Group 0002 :Not an explicit Value Representation;"
+ gdcmWarningMacro( "Group 0002 :Not an explicit Value Representation;"
<< "Looks like a bugged Header!");
}
if ( net2host )
{
SwapCode = 4321;
- gdcmVerboseMacro( "HostByteOrder != NetworkByteOrder");
+ gdcmWarningMacro( "HostByteOrder != NetworkByteOrder");
}
else
{
SwapCode = 1234;
- gdcmVerboseMacro( "HostByteOrder = NetworkByteOrder");
+ gdcmWarningMacro( "HostByteOrder = NetworkByteOrder");
}
// Position the file position indicator at first tag
// Alas, this is not a DicomV3 file and whatever happens there is no file
// preamble. We can reset the file position indicator to where the data
// is (i.e. the beginning of the file).
- gdcmVerboseMacro( "Not a DICOM Version3 file");
+ gdcmWarningMacro( "Not a DICOM Version3 file");
Fp->seekg(0, std::ios::beg);
// Our next best chance would be to be considering a 'clean' ACR/NEMA file.
Filetype = ACR;
return true;
default :
- gdcmVerboseMacro( "ACR/NEMA unfound swap info (Really hopeless !)");
+ gdcmWarningMacro( "ACR/NEMA unfound swap info (Really hopeless !)");
Filetype = Unknown;
return false;
}
*/
void Document::SwitchByteSwapCode()
{
- gdcmVerboseMacro( "Switching Byte Swap code from "<< SwapCode);
+ gdcmWarningMacro( "Switching Byte Swap code from "<< SwapCode);
if ( SwapCode == 1234 )
{
SwapCode = 4321;
std::string msg;
msg = Util::Format("Entry (%04x,%04x) should be Explicit VR\n",
newEntry->GetGroup(), newEntry->GetElement());
- gdcmVerboseMacro( msg.c_str() );
+ gdcmWarningMacro( msg.c_str() );
}
}
newEntry->SetImplicitVR();
std::string ts = GetTransferSyntax();
if ( !Global::GetTS()->IsTransferSyntax(ts) )
{
- gdcmVerboseMacro("True DICOM File, with NO Tansfer Syntax: " << ts );
+ gdcmWarningMacro("True DICOM File, with NO Tansfer Syntax: " << ts );
return;
}
//'Implicit VR Transfer Syntax (GE Private)
if ( Global::GetTS()->GetSpecialTransferSyntax(ts) == TS::ExplicitVRBigEndian )
{
- gdcmVerboseMacro("Transfer Syntax Name = ["
+ gdcmWarningMacro("Transfer Syntax Name = ["
<< GetTransferSyntaxName() << "]" );
SwitchByteSwapCode();
group = SwapShort(group);