]> Creatis software - gdcm.git/blob - Example/PrintHeader.cxx
* src/gdcmDicomDir.cxx, gdcmDocEntrySet.cxx: removed inclusion of errno.h
[gdcm.git] / Example / PrintHeader.cxx
1 #include <iostream>
2 #include "gdcm.h"
3
4 int main(int argc, char* argv[])
5
6    bool dropPriv = false;
7    std::string fileName;   
8
9    if (argc == 1) {
10       std::cout << argv[0] <<
11       " fileName" << std::endl <<
12       "    [nopriv]  if you don't want to print Shadow groups"  << std::endl;
13    }
14
15    if (argc > 1) {
16       fileName=argv[1];
17    } else {
18       fileName += GDCM_DATA_ROOT;
19       fileName += "/test.acr";
20    }
21    
22    for (int j=0;j<argc;j++) {
23       if (strcmp(argv[j],"nopriv")==0)
24          dropPriv=true;
25    }
26    
27    gdcmFile *e2 = new gdcmFile(fileName.c_str(),false, dropPriv);
28    gdcmHeader *e1 = e2->GetHeader();  
29         
30    if (argc > 2) {
31       int level = atoi(argv[2]);   
32       e1->SetPrintLevel(level);
33    }
34
35   e1->Print();   
36       
37   std::cout << "\n\n" << std::endl;      
38   std::string transferSyntaxName = e1->GetTransfertSyntaxName();
39   std::cout << " TransferSyntaxName= [" << transferSyntaxName << "]" << std::endl;
40    
41    if (  transferSyntaxName != "Implicit VR - Little Endian"
42       && transferSyntaxName != "Explicit VR - Little Endian"     
43       && transferSyntaxName != "Deflated Explicit VR - Little Endian"      
44       && transferSyntaxName != "Explicit VR - Big Endian"
45       && transferSyntaxName != "Uncompressed ACR-NEMA"     )
46   {
47   std::cout << std::endl << "==========================================="
48                   << std::endl; 
49         e2->ParsePixelData();
50   std::cout << std::endl << "==========================================="
51                   << std::endl; 
52   }
53    
54    if(e1->IsReadable())
55       std::cout <<std::endl<<fileName<<" is Readable"<<std::endl;
56    else
57       std::cout <<std::endl<<fileName<<" is NOT Readable"<<std::endl;
58    std::cout<<std::flush;
59    delete e1;
60
61    return 0;
62    
63 }