Program: gdcm
Module: $RCSfile: gdcmHeader.cxx,v $
Language: C++
- Date: $Date: 2004/07/31 23:30:04 $
- Version: $Revision: 1.181 $
+ Date: $Date: 2004/09/20 18:14:23 $
+ Version: $Revision: 1.187 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
/**
* \brief Constructor
* @param filename name of the file whose header we want to analyze
- * @param exception_on_error whether we want to throw an exception or not
*/
-gdcmHeader::gdcmHeader( std::string const & filename,
- bool exception_on_error ):
- gdcmDocument( filename,
- exception_on_error )
+gdcmHeader::gdcmHeader( std::string const & filename ):
+ gdcmDocument( filename )
{
// for some ACR-NEMA images GrPixel, NumPixel is *not* 7fe0,0010
// We may encounter the 'RETired' (0x0028, 0x0200) tag
/**
* \brief Constructor
- * @param exception_on_error whether we want to throw an exception or not
*/
-gdcmHeader::gdcmHeader(bool exception_on_error) :
- gdcmDocument( exception_on_error )
+gdcmHeader::gdcmHeader()
+ :gdcmDocument()
{
}
SetEntryByNumber("16", 0x0028,0x0100);
}
- // correct Pixel group Length if necessary
-
- // TODO : create a gdcmHeader::Write method and move this part.
- // (only gdcmHeader knows GrPixel, NumPixel)
+ // TODO : correct 'Pixel group' Length if necessary
int i_lgPix = GetEntryLengthByNumber(GrPixel, NumPixel);
if (i_lgPix != -2)
delete[] dumm;
ReplaceOrCreateByNumber(s_lgPix,GrPixel, 0x0000);
}
-
+
+ // FIXME : should be nice if we could move it to gdcmFile
+ // (or in future gdcmPixelData class)
+
// Drop Palette Color, if necessary
if ( GetEntryByNumber(0x0028,0x0002).c_str()[0] == '3' )
gdcmDocEntry* e = GetDocEntryByNumber(0x0028,0x01101);
if (e)
{
- RemoveEntry(e);
+ RemoveEntryNoDestroy(e);
}
e = GetDocEntryByNumber(0x0028,0x1102);
if (e)
{
- RemoveEntry(e);
+ RemoveEntryNoDestroy(e);
}
e = GetDocEntryByNumber(0x0028,0x1103);
if (e)
{
- RemoveEntry(e);
+ RemoveEntryNoDestroy(e);
}
e = GetDocEntryByNumber(0x0028,0x01201);
if (e)
{
- RemoveEntry(e);
+ RemoveEntryNoDestroy(e);
}
e = GetDocEntryByNumber(0x0028,0x1202);
if (e)
{
- RemoveEntry(e);
+ RemoveEntryNoDestroy(e);
}
e = GetDocEntryByNumber(0x0028,0x1203);
if (e)
{
- RemoveEntry(e);
+ RemoveEntryNoDestroy(e);
}
}
gdcmDocument::Write(fp,filetype);
return 0; // It's supposed to be mandatory
// the caller will have to check
}
-
return atoi( strSize.c_str() );
}
return 0; // It's supposed to be mandatory
// the caller will have to check
}
-
return atoi( strSize.c_str() );
}
return 1; // Well, it's supposed to be mandatory ...
// but sometimes it's missing : *we* assume Gray pixels
}
-
return atoi( strSize.c_str() );
}
{
return 0;
}
-
return atoi( strSize.c_str() );
}
{
return 8;
}
-
dbg.Verbose(0, "gdcmHeader::GetPixelSize: Unknown pixel type");
return 0;
}
{
sign = "S";
}
-
return bitsAlloc + sign;
}
*a = 1; // Alpha component
a += 4;
}
-
return LUTRGBA;
}
// use the gdcmTS (TS : Transfert Syntax)
std::string transfertSyntax = GetEntryByNumber(0x0002,0x0010);
+ if ( transfertSyntax == GDCM_NOTLOADED ) { // fusible
+ std::cout << "Transfert Syntax not loaded. " << std::endl
+ << "Better you increase MAX_SIZE_LOAD_ELEMENT_VALUE"
+ << std::endl;
+ return "Uncompressed ACR-NEMA";
+ }
if ( transfertSyntax == GDCM_UNFOUND )
{
dbg.Verbose(0, "gdcmHeader::GetTransfertSyntaxName:"
*/
bool gdcmHeader::AnonymizeHeader()
{
- gdcmDocEntry* patientNameHE = GetDocEntryByNumber (0x0010, 0x0010);
+ // If exist, replace by spaces
+ SetEntryByNumber (" ",0x0010, 0x2154); // Telephone
+ SetEntryByNumber (" ",0x0010, 0x1040); // Adress
+ SetEntryByNumber (" ",0x0010, 0x0020); // Patient ID
- ReplaceIfExistByNumber (" ",0x0010, 0x2154); // Telephone
- ReplaceIfExistByNumber (" ",0x0010, 0x1040); // Adress
- ReplaceIfExistByNumber (" ",0x0010, 0x0020); // Patient ID
+ gdcmDocEntry* patientNameHE = GetDocEntryByNumber (0x0010, 0x0010);
- if ( patientNameHE )
+ if ( patientNameHE ) // we replace it by Study Instance UID (why not)
{
std::string studyInstanceUID = GetEntryByNumber (0x0020, 0x000d);
if ( studyInstanceUID != GDCM_UNFOUND )