Program: gdcm
Module: $RCSfile: PrintFile.cxx,v $
Language: C++
- Date: $Date: 2005/09/04 15:34:40 $
- Version: $Revision: 1.52 $
+ Date: $Date: 2005/09/22 14:45:11 $
+ Version: $Revision: 1.58 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include "gdcmGlobal.h"
#include "gdcmDictSet.h"
#include "gdcmArgMgr.h"
-
+#include "gdcmOrientation.h"
#include <iostream>
loadMode |= gdcm::LD_NOSEQ;
}
- int level = am->ArgMgrGetInt("level", 2);
+ int level = am->ArgMgrGetInt("level", 1);
int forceLoadNb;
uint16_t *elemsToForceLoad
bool showlut = ( 0 != am->ArgMgrDefined("SHOWLUT") );
- bool ddict = am->ArgMgrDefined("dict");
+ bool ddict = am->ArgMgrDefined("dict") ? true : false;
char *dict = 0;
if (ddict)
nX=f->GetXSize();
nY=f->GetYSize();
nZ=f->GetZSize();
- std::cout << " DIMX=" << nX << " DIMY=" << nY << " DIMZ=" << nZ << std::endl;
+ std::cout << " DIMX=" << nX << " DIMY=" << nY << " DIMZ=" << nZ
+ << std::endl;
pixelType = f->GetPixelType();
sPP = f->GetSamplesPerPixel();
//std::cout << "Y spacing " << f->GetYSpacing() << std::endl;
//std::cout << "Z spacing " << f->GetZSpacing() << std::endl;
+ std::string strImageOrientationPatient =
+ f->GetEntryValue(0x0020,0x0037);
+ gdcm::Orientation o;
+
+ if ( strImageOrientationPatient != gdcm::GDCM_UNFOUND )
+ {
+ double orient = o.TypeOrientation( f );
+ std::cout << " ---------------------- Type Orientation " << orient
+ << std::endl;
+ }
+
+ std::string ori = o.GetOrientation ( f );
+ if (ori != gdcm::GDCM_UNFOUND )
+ std::cout << "Orientation [" << ori << "]" << std::endl;
+
// Display the LUT as an int array (for debugging purpose)
if ( f->HasLUT() && showlut )
{
std::cout << "Try LUT Data "<< std::endl;
ShowLutData(f);
}
+
+ //if( !f->gdcm::Document::IsReadable())
+ // Try downcast to please MSVC
+ if ( !((gdcm::Document *)f)->IsReadable() )
+ {
+ std::cout <<std::endl<<fileName<<" is NOT 'gdcm parsable'"<<std::endl;
+ }
if (f->IsReadable())
std::cout <<std::endl<<fileName<<" is Readable"<<std::endl;
- else
- std::cout <<std::endl<<fileName<<" is NOT Readable"<<std::endl;
+ else if ( f->GetSeqEntry(0x0041,0x1010) )
+ {
+ std::cout <<std::endl<<fileName<<" looks like a 'PAPYRUS image' file"
+ <<std::endl;
+ }
+ else if ( f->GetSeqEntry(0x0004,0x1220) )
+ {
+ std::cout <<std::endl<<fileName<<" looks like a 'DICOMDIR file'"
+ <<std::endl;
+ }
+ else
+ {
+ std::cout <<std::endl<<fileName<<" doesn't look like an image file "
+ <<std::endl;
+ }
+
std::cout<<std::flush;
delete f;
delete fh;
it != fileList.end();
++it )
{
+ std::cout << std::endl<<" Start processing :[" << it->c_str() << "]"
+ << std::endl;
f = new gdcm::File();
f->SetLoadMode(loadMode);
f->SetFileName( it->c_str() );
for (int ri=0; ri<forceLoadNb; ri++)
{
- printf("%04x,%04x\n",elemsToForceLoad[2*ri], elemsToForceLoad[2*ri+1]);
+ printf("%04x,%04x\n",elemsToForceLoad[2*ri],
+ elemsToForceLoad[2*ri+1]);
f->AddForceLoadElement((uint32_t)elemsToForceLoad[2*ri],
(uint32_t)elemsToForceLoad[2*ri+1]);
}
<< std::endl;
std::cout << "or it's not a Dicom File, or its 'header' is bugged"
<< std::endl;
- std::cout << "use 'PrintFile filein=... debug' to try to guess the pb"
- << std::endl;
+ std::cout << "use 'PrintFile filein=... debug' "
+ << "to try to guess the pb"
+ << std::endl;
delete f;
continue;
}
fh->SetPrintLevel( level );
fh->Print();
+ gdcm::Orientation o;
+ std::string ori = o.GetOrientation ( f );
+ if (ori != gdcm::GDCM_UNFOUND )
+ std::cout << "Orientation [" << ori << "]" << std::endl;
if (f->IsReadable())
std::cout <<std::endl<<it->c_str()<<" is Readable"<<std::endl;