Program: gdcm
Module: $RCSfile: PrintFile.cxx,v $
Language: C++
- Date: $Date: 2005/11/28 10:55:00 $
- Version: $Revision: 1.74 $
+ Date: $Date: 2006/03/29 16:15:01 $
+ Version: $Revision: 1.80 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
" Display the header of a ACR-NEMA/PAPYRUS/DICOM File ",
" usage: PrintFile {filein=inputFileName|dirin=inputDirectoryName}[level=n]",
" [forceload=listOfElementsToForceLoad] ",
- " [dict= privateDirectory] ",
+ " [4DLoc= ][dict= privateDirectory] ",
" [ { [noshadowseq] | [noshadow][noseq] } ] ",
" [debug] [warning] ",
" level = 0,1,2 : depending on the amount of details user wants to see",
+ " 4DLoc: group-elem(in hexa, no space) of the DataEntry holdind 4thDim",
" listOfElementsToForceLoad : group-elem,g2-e2,... (in hexa, no space)",
" of Elements to load whatever their length ",
" privateDirectory : source file full path name of Shadow Group elems ",
return 1;
}
- char *fileName = am->ArgMgrGetString("filein",(char *)0);
- char *dirName = am->ArgMgrGetString("dirin",(char *)0);
+ const char *fileName = am->ArgMgrGetString("filein");
+ const char *dirName = am->ArgMgrGetString("dirin");
if ( (fileName == 0 && dirName == 0) ||
(fileName != 0 && dirName != 0) )
loadMode |= gdcm::LD_NOSHADOWSEQ;
else
{
- if ( am->ArgMgrDefined("noshadow") )
+ if ( am->ArgMgrDefined("noshadow") )
loadMode |= gdcm::LD_NOSHADOW;
if ( am->ArgMgrDefined("noseq") )
loadMode |= gdcm::LD_NOSEQ;
int forceLoadNb;
uint16_t *elemsToForceLoad
= am->ArgMgrGetXInt16Enum("forceload", &forceLoadNb);
+
+ int nbP;
+ uint16_t *FourthDimLoc;
+ if ( am->ArgMgrDefined("4DLoc") )
+ {
+ FourthDimLoc = am->ArgMgrGetXInt16Enum("4DLoc", &nbP);
+
+ if (nbP != 1)
+ {
+ std::cout << "4DLoc must have 2 and only 2 components!" << std::endl;
+ delete am;
+ return 1;
+ }
+ }
bool showlut = ( 0 != am->ArgMgrDefined("SHOWLUT") );
bool ddict = am->ArgMgrDefined("dict") ? true : false;
- char *dict = 0;
+ const char *dict = 0;
if (ddict)
{
- dict = am->ArgMgrGetString("dict",(char *)0);
+ dict = am->ArgMgrGetString("dict",0);
}
/* if unused Param we give up */
f->AddForceLoadElement((uint32_t)elemsToForceLoad[2*ri],
(uint32_t)elemsToForceLoad[2*ri+1] );
}
+// TODO : find why such a polution
+// To avoid polluting the output with messages
+// 'Last system error was : No such file or directory'
+
+errno = 0;
+
bool res = f->Load();
// gdcm::File::IsReadable() is no usable here, because we deal with
f->Delete();
return 0;
}
+ if (nbP == 1)
+ f->SetFourthDimensionLocation(FourthDimLoc[0],FourthDimLoc[1]);
gdcm::FileHelper *fh = gdcm::FileHelper::New(f);
fh->SetPrintLevel( level );
std::cout <<" dataSize " << fh->GetImageDataSize() << std::endl;
std::cout <<" dataSizeRaw " << fh->GetImageDataRawSize() << std::endl;
- int nX,nY,nZ,sPP,planarConfig;
+ int nX,nY,nZ,nT,sPP,planarConfig;
std::string pixelType;
nX=f->GetXSize();
nY=f->GetYSize();
nZ=f->GetZSize();
- std::cout << " DIMX=" << nX << " DIMY=" << nY << " DIMZ=" << nZ
+ nT=f->GetTSize();
+ std::cout << " DIMX=" << nX << " DIMY=" << nY
+ << " DIMZ=" << nZ << " DIMT=" << nT
<< std::endl;
pixelType = f->GetPixelType();
if (ori != "\\" )
std::cout << "Orientation [" << ori << "]" << std::endl;
- o->gdcm::Orientation::Delete();
+ o->Delete();
//------------------------------
if ( strPatientOrientation != gdcm::GDCM_UNFOUND
&& strPatientOrientation != "")
std::cout << "PatientOrientation (0x0020,0x0020)= ["
- << strPatientOrientation << "]" << std::endl;
+ << strPatientOrientation << "]" << std::endl;
std::string strImageOrientationPatient =
f->GetEntryString(0x0020,0x0037);
std::string ori = o->GetOrientation ( f );
if (ori != "\\" )
std::cout << "Orientation [" << ori << "]" << std::endl;
-
- o->gdcm::Orientation::Delete();
+ o->Delete();
//-------------------------------