X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmFile.cxx;h=25831770ad62730f51fdce21eb33cbe0bb920647;hb=35ee8ee8af32946514713d271177df8bb2298eb2;hp=5e83b61d4b9ac97bbe75ffc2490da5c8efddfd5f;hpb=a4cc79200b40be00c490fa4a9116dca626e1c5cf;p=gdcm.git diff --git a/src/gdcmFile.cxx b/src/gdcmFile.cxx index 5e83b61d..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/09/17 12:16:02 $ - Version: $Revision: 1.337 $ + 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); @@ -568,8 +568,6 @@ int File::GetTSize() } } - - /** * \brief gets the info from 0018,1164 : ImagerPixelSpacing * then 0028,0030 : Pixel Spacing @@ -1455,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)"); @@ -1469,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; @@ -1508,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; } @@ -1902,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); } @@ -2008,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; @@ -2227,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) << ")" ) ;