From 16887ff26b068405a235a6a8a37f4e62516de393 Mon Sep 17 00:00:00 2001 From: malaterre Date: Fri, 25 Jun 2004 03:06:37 +0000 Subject: [PATCH] EMH: *Add PrintAllDocument, dog slow right now *Moved PrintDocument as example instead * vtkGdcmReader was free'ing instead of delete[]'ing * 3'tabulify ShowDicom / PrintAllDocument * Minor comments for -W -Wall compilation --- Example/CMakeLists.txt | 3 ++ Example/PrintDocument.cxx | 104 ++++++++++++++++++++++++++++++++++++++ Testing/CMakeLists.txt | 2 +- src/gdcmElementSet.cxx | 7 ++- src/gdcmSQItem.cxx | 7 ++- vtk/vtkGdcmReader.cxx | 4 +- 6 files changed, 120 insertions(+), 7 deletions(-) create mode 100644 Example/PrintDocument.cxx diff --git a/Example/CMakeLists.txt b/Example/CMakeLists.txt index 59525c67..0111b05a 100644 --- a/Example/CMakeLists.txt +++ b/Example/CMakeLists.txt @@ -10,3 +10,6 @@ INCLUDE_DIRECTORIES( ADD_EXECUTABLE(WriteDicom WriteDicom.cxx) TARGET_LINK_LIBRARIES(WriteDicom gdcm) + +ADD_EXECUTABLE(PrintDocument PrintDocument.cxx) +TARGET_LINK_LIBRARIES(PrintDocument gdcm) diff --git a/Example/PrintDocument.cxx b/Example/PrintDocument.cxx new file mode 100644 index 00000000..d0314966 --- /dev/null +++ b/Example/PrintDocument.cxx @@ -0,0 +1,104 @@ +#include + +#include "gdcmException.h" +#include "gdcmCommon.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" + +int main(int argc, char* argv[]) +{ + +// gdcmFile *e2; + gdcmHeader *e1; + bool dropPriv = false; + bool showSeq = true; + bool niou = false; + 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; + } + + if (argc > 1) { + fileName=argv[1]; + } else { + fileName += GDCM_DATA_ROOT; + fileName += "/test.acr"; + } + + for (int j=0;jGetHeader(); + + e1= new gdcmHeader + (fileName.c_str(), + false, showSeq, + dropPriv); + +// if (argc > 2) { +// int level = atoi(argv[2]); +// e1->SetPrintLevel(level); +// } + +e1->SetPrintLevel(2); + + //if (! niou) + // e1->Print(); + //else if (showSeq) + // e1->PrintNiceSQ(); + //else + // e1->PrintNoSQ(); + + 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; + } + + if(e1->IsReadable()) + std::cout <Print(os); bool PrintEndLine = true; if ( gdcmSeqEntry* SeqEntry = dynamic_cast(Entry) ) + { + (void)SeqEntry; //not used PrintEndLine = false; + } if (PrintEndLine) os << std::endl; } diff --git a/src/gdcmSQItem.cxx b/src/gdcmSQItem.cxx index 417093d0..6be77d72 100644 --- a/src/gdcmSQItem.cxx +++ b/src/gdcmSQItem.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmSQItem.cxx,v $ Language: C++ - Date: $Date: 2004/06/24 18:03:14 $ - Version: $Revision: 1.17 $ + Date: $Date: 2004/06/25 03:06:38 $ + Version: $Revision: 1.18 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -76,7 +76,10 @@ gdcmSQItem::~gdcmSQItem() Entry->SetPrintLevel(2); Entry->Print(os); if ( gdcmSeqEntry* SeqEntry = dynamic_cast(Entry) ) + { + (void)SeqEntry; //not used PrintEndLine = false; + } if (PrintEndLine) os << std::endl; } diff --git a/vtk/vtkGdcmReader.cxx b/vtk/vtkGdcmReader.cxx index e07a5a40..11d9f680 100644 --- a/vtk/vtkGdcmReader.cxx +++ b/vtk/vtkGdcmReader.cxx @@ -58,7 +58,7 @@ #include #include -vtkCxxRevisionMacro(vtkGdcmReader, "$Revision: 1.45 $"); +vtkCxxRevisionMacro(vtkGdcmReader, "$Revision: 1.46 $"); vtkStandardNewMacro(vtkGdcmReader); //----------------------------------------------------------------------------- @@ -688,7 +688,7 @@ size_t vtkGdcmReader::LoadImageInMemory( // fclose(f2); //GetImageData allocate a (void*)malloc, remove it: - free(pSource); + delete[] pSource; return size; } -- 2.45.1