X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmFile.cxx;h=fb738bd28fd8d9418232cbc4563423534eefd31c;hb=56ad78cdf3b5de32f0a94a38cd32ddc9f403ffc3;hp=d32f46d07554baef6d15bee4304afc88e9e6e8fa;hpb=9b0d1f04cca6a583d85553cab0bef197c2940e61;p=gdcm.git diff --git a/src/gdcmFile.cxx b/src/gdcmFile.cxx index d32f46d0..fb738bd2 100644 --- a/src/gdcmFile.cxx +++ b/src/gdcmFile.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFile.cxx,v $ Language: C++ - Date: $Date: 2007/10/01 09:28:57 $ - Version: $Revision: 1.338 $ + Date: $Date: 2008/01/07 17:16:06 $ + Version: $Revision: 1.343 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -1453,6 +1453,13 @@ bool File::IsPaletteColor() { return true; } + + // MONOCHROME + [Enhanced CT Image Storage] actually have Palettes + std::string sopClassUid = GetEntryString( 0x0008, 0x0016 ); + if (Util::DicomStringEqual( sopClassUid, "1.2.840.10008.5.1.4.1.1.2.1")) + { + return true; + } if ( PhotometricInterp == GDCM_UNFOUND ) { gdcmDebugMacro( "Not found : Palette color (0028,0004)"); @@ -1467,7 +1474,7 @@ bool File::IsPaletteColor() */ bool File::IsYBRFull() { - std::string PhotometricInterp = GetEntryString( 0x0028, 0x0004 ); + std::string PhotometricInterp = GetEntryString( 0x0028, 0x0004 ); if ( PhotometricInterp == "YBR_FULL" ) { return true; @@ -1506,7 +1513,13 @@ bool File::HasLUT() return false; } // Red Palette Color Lookup Table Data - if ( !GetDocEntry(0x0028,0x1201) ) + bool segmented; + segmented = GetDocEntry(0x0028,0x1221) && + GetDocEntry(0x0028,0x1222) && + GetDocEntry(0x0028,0x1223); + if( segmented ) return true; + + if( !GetDocEntry(0x0028,0x1201) ) { return false; } @@ -1900,12 +1913,13 @@ bool File::AnonymizeFile() gdcmWarningMacro( "You cannot 'Anonymize' a SeqEntry "); continue; } - +/* if ( dynamic_cast(d) ) { gdcmWarningMacro( "To 'Anonymize' a DataEntry, better use AnonymizeNoLoad (FIXME) "); continue; } +*/ else SetEntryString ((*it).Value, (*it).Group, (*it).Elem); } @@ -2006,7 +2020,7 @@ bool File::Write(std::string fileName, FileType writetype) InsertEntryString(s_lgPix,GrPixel, 0x0000, "UL"); } } - Document::WriteContent(fp, writetype); + Document::WriteContent(fp, writetype,false,false); fp->close(); delete fp; @@ -2225,8 +2239,9 @@ bool File::ReadTag(uint16_t testGroup, uint16_t testElem) } catch ( FormatError ) { - gdcmErrorMacro( "Can not read tag for " - << " We should have found tag (" + gdcmErrorMacro( "Can not read tag at 0x(" + << std::hex << positionOnEntry + << "). We should have found tag (" << DictEntry::TranslateToKey(testGroup,testElem) << ")" ) ;