X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=Example%2FPrintDocument.cxx;h=fdce422fb04bd84f7b623287c7fed54f2f74627a;hb=34e322ceb4e12797e6d4cb1e691a36425015d2e0;hp=d03149662bdbe23372b1b224e0f5e9ac9611a568;hpb=16887ff26b068405a235a6a8a37f4e62516de393;p=gdcm.git diff --git a/Example/PrintDocument.cxx b/Example/PrintDocument.cxx index d0314966..fdce422f 100644 --- a/Example/PrintDocument.cxx +++ b/Example/PrintDocument.cxx @@ -1,39 +1,41 @@ -#include - -#include "gdcmException.h" -#include "gdcmCommon.h" +/*========================================================================= + + Program: gdcm + Module: $RCSfile: PrintDocument.cxx,v $ + Language: C++ + Date: $Date: 2005/07/19 15:19:25 $ + Version: $Revision: 1.17 $ + + Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de + l'Image). All rights reserved. See Doc/License.txt or + http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "gdcmFile.h" +#include "gdcmDebug.h" -#include "gdcmDictEntry.h" -#include "gdcmDict.h" -#include "gdcmDictSet.h" -#include "gdcmHeader.h" -#include "gdcmUtil.h" -#include "gdcmBinEntry.h" -#include "gdcmDocEntry.h" -#include "gdcmDocEntrySet.h" -#include "gdcmDocument.h" -#include "gdcmElementSet.h" -#include "gdcmSeqEntry.h" -#include "gdcmSQItem.h" -#include "gdcmValEntry.h" +#include +#include //for atoi -int main(int argc, char* argv[]) +int main(int argc, char *argv[]) { -// gdcmFile *e2; - gdcmHeader *e1; - bool dropPriv = false; - bool showSeq = true; - bool niou = false; + gdcm::File *e1= new gdcm::File();; std::string fileName; if (argc == 1) { - std::cout << argv[0] << - " fileName" << std::endl << - " [nopriv] if you don't want to print Shadow groups" << std::endl << - " [noseq] if you don't want to 'go inside' the SQ's" << std::endl << - " [new] if you want a 'SeQuence indented' printing"<< std::endl; - } + std::cout << " Usage : " + << argv[0] + << " filename" + << " printLevel debug " + << "short (=NOSEQ + NOSHADOW)" + << std::endl; + return 0; + } if (argc > 1) { fileName=argv[1]; @@ -41,61 +43,45 @@ int main(int argc, char* argv[]) fileName += GDCM_DATA_ROOT; fileName += "/test.acr"; } - - for (int j=0;j 2) + { + int level = atoi(argv[2]); + e1->SetPrintLevel(level); } - - //e2 = new gdcmFile(fileName.c_str(),false, showSeq, dropPriv); - //e1 = e2->GetHeader(); - - e1= new gdcmHeader - (fileName.c_str(), - false, showSeq, - dropPriv); - -// if (argc > 2) { -// int level = atoi(argv[2]); -// e1->SetPrintLevel(level); -// } -e1->SetPrintLevel(2); + if (argc > 3) + gdcm::Debug::DebugOn(); - //if (! niou) - // e1->Print(); - //else if (showSeq) - // e1->PrintNiceSQ(); - //else - // e1->PrintNoSQ(); - - e1->Print(); + if (argc > 4) + e1->SetLoadMode(NO_SEQ | NO_SHADOW); + e1->SetFileName( fileName.c_str() ); + e1->Load( ); + +// we use PrintDocument, because we want to print what we get + +// if ( !e1->IsReadable() ) +// { +// delete e1; +// return 0; +// } + + e1->Print(); - std::cout << "\n\n" << std::endl; - std::string transferSyntaxName = e1->GetTransfertSyntaxName(); - std::cout << " TransferSyntaxName= [" << transferSyntaxName << "]" << std::endl; - - if ( transferSyntaxName != "Implicit VR - Little Endian" - && transferSyntaxName != "Explicit VR - Little Endian" - && transferSyntaxName != "Deflated Explicit VR - Little Endian" - && transferSyntaxName != "Explicit VR - Big Endian" - && transferSyntaxName != "Uncompressed ACR-NEMA" ) - { - std::cout << std::endl << "===========================================" - << std::endl; - //e2->ParsePixelData(); - std::cout << std::endl << "===========================================" - << std::endl; - } + std::cout << "\n\n" << std::endl; + + if ( e1->GetEntryValue(0x0002,0x0010) == gdcm::GDCM_NOTLOADED ) + { + std::cout << "Transfer Syntax not loaded. " << std::endl + << "Better you increase MAX_SIZE_LOAD_ELEMENT_VALUE" + << std::endl; + return 0; + } if(e1->IsReadable()) - std::cout <