X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmFile.cxx;h=25831770ad62730f51fdce21eb33cbe0bb920647;hb=80075429b6ab9db9e885b9bb9ae1427530c7bef8;hp=d32f46d07554baef6d15bee4304afc88e9e6e8fa;hpb=9b0d1f04cca6a583d85553cab0bef197c2940e61;p=gdcm.git diff --git a/src/gdcmFile.cxx b/src/gdcmFile.cxx index d32f46d0..25831770 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: 2009/05/19 15:08:36 $ + Version: $Revision: 1.344 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -491,7 +491,7 @@ bool File::GetSpacing(float &xspacing, float &yspacing, float &zspacing) } else { - if( mediastoragesopclassuid == sopclassuid ) + if ( mediastoragesopclassuid == sopclassuid ) { sopclassuid_used = mediastoragesopclassuid; } @@ -502,7 +502,7 @@ bool File::GetSpacing(float &xspacing, float &yspacing, float &zspacing) return false; } } - // ok we have now the correc SOP Class UID + // ok we have now the correct SOP Class UID if( sopclassuid_used == "Enhanced MR Image Storage" ) { SeqEntry *PerframeFunctionalGroupsSequence = GetSeqEntry(0x5200,0x9230); @@ -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) << ")" ) ;