X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=appli%2FtestBruker2Dicom%2FtestBruker2Dicom.cxx;h=6ccdf93140e59853c79e4cd0739d46320ae15622;hb=a08bd5661801ba12773f6438d41da5ab5e78c337;hp=bd015e5bc6194d3dae7a688bc27d85d49e1d8e89;hpb=64f789199d7c134627b31cfaee6e67eb012f48bb;p=creaBruker.git diff --git a/appli/testBruker2Dicom/testBruker2Dicom.cxx b/appli/testBruker2Dicom/testBruker2Dicom.cxx index bd015e5..6ccdf93 100644 --- a/appli/testBruker2Dicom/testBruker2Dicom.cxx +++ b/appli/testBruker2Dicom/testBruker2Dicom.cxx @@ -1,14 +1,38 @@ +/* + # --------------------------------------------------------------------- + # + # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image + # pour la Santé) + # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton + # Previous Authors : Laurent Guigues, Jean-Pierre Roux + # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil + # + # This software is governed by the CeCILL-B license under French law and + # abiding by the rules of distribution of free software. You can use, + # modify and/ or redistribute the software under the terms of the CeCILL-B + # license as circulated by CEA, CNRS and INRIA at the following URL + # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + # or in the file LICENSE.txt. + # + # As a counterpart to the access to the source code and rights to copy, + # modify and redistribute granted by the license, users are provided only + # with a limited warranty and the software's author, the holder of the + # economic rights, and the successive licensors have only limited + # liability. + # + # The fact that you are presently reading this means that you have had + # knowledge of the CeCILL-B license and that you accept its terms. + # ------------------------------------------------------------------------ +*/ + /*========================================================================= - Program: gdcm + Program: creaBruker Module: $RCSfile: testBruker2Dicom.cxx,v $ Language: C++ - Date: $Date: 2009/05/19 14:42:30 $ - Version: $Revision: 1.3 $ + Date: $Date: 2012/11/15 13:31:58 $ + Version: $Revision: 1.12 $ - Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de - l'Image). All rights reserved. See Doc/License.txt or - http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR @@ -31,10 +55,11 @@ #include "gdcmArgMgr.h" #include "bruker2dicom.h" +#include "brukerexception.h" // =================================================================================================== /** - * \brief + * \brief * - explores the given root directory e.g. : * B67d1.Bp1 * subject @@ -62,7 +87,7 @@ * isa <-- * meta * procs - * roi ... + * roi ... * roi * 3 // post processed images (if any) * 2dseq @@ -71,39 +96,44 @@ * meta * procs * roi - * ... + * ... * 2 * acqp * fid * ... * pdata - * 3 + * 3 * ... - * - fills a single level Directory with the MHD files, - */ - + * - fills an equivalent Directory with the MHD / DICOM 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 +144,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() ) { @@ -151,8 +181,8 @@ int main(int argc, char *argv[]) // b2d.day : unused ... b2d.day = am->ArgMgrGetString("day", "You_forget_the_Day"); - - + + delete am; // we don't need Argument Manager any longer // ----------- End Arguments Manager --------- @@ -163,16 +193,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 :-( " << std::endl; + 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; + } + */ - delete am; // we don't need Argument Manager any longer -} + catch (BrukerHopelessException &e) + { + std::cout << "And Hopless Exception was thrown (" << e.what() << ") " << std::endl; + } + + +}