X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2FtestBruker2Dicom%2FtestBruker2Dicom.cxx;h=98b35528ed050107323cb587ff4fe1b1d376844c;hb=16d96d3df8dd539fd54738207df5f4f4180cd5e2;hp=dbff109d4e32a867212c285d776a0b37164fc1ae;hpb=0194cf3ca5e4249a389cc809d3de6fae07249fa4;p=creaBruker.git diff --git a/appli/testBruker2Dicom/testBruker2Dicom.cxx b/appli/testBruker2Dicom/testBruker2Dicom.cxx index dbff109..98b3552 100644 --- a/appli/testBruker2Dicom/testBruker2Dicom.cxx +++ b/appli/testBruker2Dicom/testBruker2Dicom.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: testBruker2Dicom.cxx,v $ Language: C++ - Date: $Date: 2009/05/13 15:37:43 $ - Version: $Revision: 1.1 $ + Date: $Date: 2010/01/26 21:44:27 $ + Version: $Revision: 1.8 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -31,10 +31,11 @@ #include "gdcmArgMgr.h" #include "bruker2dicom.h" +#include "brukerexception.h" // =================================================================================================== /** - * \brief + * \brief * - explores the given root directory e.g. : * B67d1.Bp1 * subject @@ -62,7 +63,7 @@ * isa <-- * meta * procs - * roi ... + * roi ... * roi * 3 // post processed images (if any) * 2dseq @@ -71,39 +72,44 @@ * meta * procs * roi - * ... + * ... * 2 * acqp * fid * ... * pdata - * 3 + * 3 * ... * - fills a single level Directory with the MHD files, - */ - + */ + int main(int argc, char *argv[]) { START_USAGE(usage) " \n testBruker2Dicom : \n ", - " - explores the given directory, at the 3 levels, ", - " - fills an equivalent Directory with the MHD files or the DICOM files ", - " usage: testBruker2Dicom dirin=rootDirectoryName ", - " dirout=outputDirectoryName ", - " [D] [M] ", - " [{b|l}] b:BigEndian,l:LittleEndian default : l ", - " [debug] [verbose] [listonly] ", + " - explores the given directory (holding a FULL Bruker exam), at the 3 levels,", + " - fills an equivalent Directory with the MHD files and/or the DICOM files", + " usage: testBruker2Dicom --dirin=rootDirectoryName ", + " --dirout=outputDirectoryName ", + " [-D] [-M] ", + " [{-b|-l}] b:BigEndian,l:LittleEndian default : l ", + " [--debug] [--verbose] [--listonly] [--usage] ", " ", " D : user wants to export as DICOM ", " M : user wants to export as MHD ", " debug : developper wants to run the program in 'debug mode' ", + " ", + " REMARK : ", + " If you were supplied an *incomplete* Bruker exam ", + " (e.g. only the '2' serie) put it a 'root' directory, ", + " and run this test using this 'root' directory as 'dirin' ", FINISH_USAGE // ------------ Initialize Arguments Manager ---------------- GDCM_NAME_SPACE::ArgMgr *am= new GDCM_NAME_SPACE::ArgMgr(argc, argv); - if (argc == 1 || am->ArgMgrDefined("usage") ) + if (argc == 1 || am->ArgMgrDefined("--usage") ) { am->ArgMgrUsage(usage); // Display 'usage' delete am; @@ -114,30 +120,30 @@ int main(int argc, char *argv[]) Bruker2Dicom b2d; const char *dirNamein; - dirNamein = am->ArgMgrGetString("dirin","."); + dirNamein = am->ArgMgrGetString("--dirin","."); const char *dirNameout; - dirNameout = am->ArgMgrGetString("dirout","."); + dirNameout = am->ArgMgrGetString("--dirout","."); // note : Big Endian / Little Endian pb not yet dealt with. // not a great issue, since everybody (?) works on Intell procs - int b = am->ArgMgrDefined("b"); - int l = am->ArgMgrDefined("l"); + int b = am->ArgMgrDefined("-b"); + int l = am->ArgMgrDefined("-l"); - if (am->ArgMgrDefined("debug")) + if (am->ArgMgrDefined("--debug")) GDCM_NAME_SPACE::Debug::DebugOn(); - b2d.verbose = am->ArgMgrDefined("verbose"); - int listonly = am->ArgMgrDefined("listonly"); + b2d.verbose = am->ArgMgrDefined("--verbose"); + int listonly = am->ArgMgrDefined("--listonly"); - int dicom = am->ArgMgrDefined("D"); - int mhd = am->ArgMgrDefined("M"); + int dicom = am->ArgMgrDefined("-D"); + int mhd = am->ArgMgrDefined("-M"); if (dicom) b2d.SetConvertModeToDicom(); if (mhd) b2d.SetConvertModeToMhd(); - + /* if unused Param we give up */ if ( am->ArgMgrPrintUnusedLabels() ) { @@ -150,9 +156,9 @@ int main(int argc, char *argv[]) // patientName = am->ArgMgrGetString("patientname", "Patient^Name"); // b2d.day : unused ... - b2d.day = am->ArgMgrGetString("day", "You_forget_the_Day"); - - delete am; // we don't need Argument Manager any longer + b2d.day = am->ArgMgrGetString("day", "You_forget_the_Day"); + + delete am; // we don't need Argument Manager any longer // ----------- End Arguments Manager --------- @@ -163,15 +169,27 @@ int main(int argc, char *argv[]) b2d.SetOutputDirectory(dirNameout); /// \TODO : *do* use exceptions in the methods! - + try { b2d.Execute(); } - catch (int) + catch (int i) + { + std::cout << "Exception was thrown (" << i << ") " << std::endl; + } + /* + catch (std::exception& e) { + std::cerr << "ERREUR: " << e.what() << "expected length: " << e.getExpectedLgt() + << " Found : " << e.getFoundLgt() << std::endl; + } + */ + + catch (BrukerHopelessException &e) { - std::cout << "Exception was thrown :-( " << std::endl; + std::cout << "And Hopless Exception was thrown (" << e.what() << ") " << std::endl; } -} + +}