]> Creatis software - gdcm.git/blobdiff - Example/PrintFile.cxx
COMP: Remove stupid warning on Win32/cl. I don't unerstand the code anyway
[gdcm.git] / Example / PrintFile.cxx
index 3b4216231dbaa76285d174d4903e58aa49ace8c6..ef69a0b4f055cf95b41cfa783cf9fecf2e573b91 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: PrintFile.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/08/30 14:40:28 $
-  Version:   $Revision: 1.49 $
+  Date:      $Date: 2005/09/04 15:43:12 $
+  Version:   $Revision: 1.53 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -24,7 +24,8 @@
 #include "gdcmFileHelper.h"
 #include "gdcmDebug.h"
 #include "gdcmDirList.h"
-
+#include "gdcmGlobal.h"
+#include "gdcmDictSet.h"
 #include "gdcmArgMgr.h"
 
 #include <iostream>
@@ -126,15 +127,17 @@ int main(int argc, char *argv[])
    " Display the header of a ACR-NEMA/PAPYRUS/DICOM File                      ",
    " usage: PrintFile {filein=inputFileName|dirin=inputDirectoryName}[level=n]",
    "                       [forceload=listOfElementsToForceLoad]              ",
+   "                       [dict= privateDirectory]                           ",
    "                       [ { [noshadowseq] | [noshadow][noseq] } ] [debug]  ",
    "      level = 0,1,2 : depending on the amount of details user wants to see",
-   "      listOfElementsToForceLOad : group-elem,g2-e2,... (in hexa, no space)",
+   "      listOfElementsToForceLoad : group-elem,g2-e2,... (in hexa, no space)",
    "                                of Elements to load whatever their length ",
-   "        noshadowseq: user doesn't want to load Private Sequences          ",
-   "        noshadow   : user doesn't want to load Private groups (odd number)",
-   "        noseq      : user doesn't want to load Sequences                  ",
-   "        debug      : user wants to run the program in 'debug mode'        ",
-   "        showlut :user wants to display the Palette Color (as an int array)",
+   "      privateDirectory : source file full path name of Shadow Group elems ",
+   "      noshadowseq: user doesn't want to load Private Sequences            ",
+   "      noshadow   : user doesn't want to load Private groups (odd number)  ",
+   "      noseq      : user doesn't want to load Sequences                    ",
+   "      debug      : user wants to run the program in 'debug mode'          ",
+   "      showlut :user wants to display the Palette Color (as an int array)  ",
    FINISH_USAGE
 
    // Initialize Arguments Manager   
@@ -165,25 +168,33 @@ int main(int argc, char *argv[])
    if (am->ArgMgrDefined("debug"))
       gdcm::Debug::DebugOn();
  
-   int loadMode = GDCM_LD_ALL;
+   int loadMode = gdcm::LD_ALL;
    if ( am->ArgMgrDefined("noshadowseq") )
-      loadMode |= GDCM_LD_NOSHADOWSEQ;
+      loadMode |= gdcm::LD_NOSHADOWSEQ;
    else 
    {
    if ( am->ArgMgrDefined("noshadow") )
-         loadMode |= GDCM_LD_NOSHADOW;
+         loadMode |= gdcm::LD_NOSHADOW;
       if ( am->ArgMgrDefined("noseq") )
-         loadMode |= GDCM_LD_NOSEQ;
+         loadMode |= gdcm::LD_NOSEQ;
    }
 
    int level = am->ArgMgrGetInt("level", 2);
 
    int forceLoadNb;
    uint16_t *elemsToForceLoad 
-                        = am->ArgMgrGetXInt16Enum("forceload", &forceLoadNb);
+                           = am->ArgMgrGetXInt16Enum("forceload", &forceLoadNb);
 
    bool showlut = ( 0 != am->ArgMgrDefined("SHOWLUT") );
 
+   bool ddict = am->ArgMgrDefined("dict") ? true : false;
+   char *dict = 0;
+
+   if (ddict)
+   {
+     dict = am->ArgMgrGetString("dict",(char *)0);
+   }
+
    /* if unused Param we give up */
    if ( am->ArgMgrPrintUnusedLabels() )
    {
@@ -196,6 +207,12 @@ int main(int argc, char *argv[])
 
    // ----------- End Arguments Manager ---------
 
+
+   if (ddict)
+   {
+      gdcm::Global::GetDicts()->GetDefaultPubDict()->AddDict(dict);   
+   }
+
    if ( fileName != 0 ) // ====== Deal with a single file ======
    { 
       // gdcm::File::IsReadable() is no usable here, because we deal with
@@ -213,7 +230,6 @@ int main(int argc, char *argv[])
       }
 
       bool res = f->Load();
-
       if ( !res )
       {
          std::cout << "Cannot process file [" << fileName << "]" << std::endl;