From: jean-pierre roux Date: Thu, 7 Apr 2011 10:16:56 +0000 (+0000) Subject: Ass some comments X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=creaBruker.git;a=commitdiff_plain;h=40ddbaaf47ea11957bb59444f4a8d6aa57d75c2b Ass some comments --- diff --git a/README.txt b/README.txt index 89e7e0c..e146304 100644 --- a/README.txt +++ b/README.txt @@ -1,2 +1,165 @@ creaBruker -(c) CREATIS 2009 \ No newline at end of file +(c) CREATIS 2009 + +a Bruker exam has the following 3 levels structure : + +======================================================================== + + * subject + * AdjStatePerStudy + * 1 + * acqp + * AdjStatePerScan + * fid + * imnd / method + * pulseprogram + * spnam0 + * spnam1 + * pdata + * 1 // only 'native' images + * 2dseq + * d3proc + * meta + * procs + * reco <-- + * roi + * CreatisComputedCartoFile + * 2 // post processed images (if any) + * 2dseq + * d3proc + * isa <-- + * meta + * procs + * roi ... + * roi + * 3 // post processed images (if any) + * 2dseq + * d3proc + * isa <-- + * meta + * procs + * roi + * ... + * 2 + * acqp + * fid + * ... + * pdata + * 3 + * ... + +======================================================================== + +To tell the truth, a lot of changes are found at every new version. +We only can hope the mandatory (for us) files keep the same name, with the same +informations inside. +Or we shall have to find out the version number, and swich - case all the +methods (see NRRD format...) + +======================================================================== + +AdjStatePerStudy +subject +1 + acqp + method + pdata + 1 + 2dseq + d3proc + id + meta + reco + roi + visu_pars + pulseprogram + spnam0 + uxnmr.par + +2 + acqp + method + pdata + 1 + 2dseq + d3proc + id + meta + reco + roi + visu_pars + pulseprogram + spnam0 + uxnmr.par + +3 + ... +======================================================================== +Dicom convertion *demands* the following files : + subject; + acqp; + method; + d3proc; + isa; + reco; + +======================================================================== +This project contains : + +appli :testBruker2Dicom: +------------------------ + + - 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' + + +lib : +---- +NO inheritance ! + +class Bruker2Dicom: + starts from a 'root' directory, + iterates on each 'serie', at the 3 levels + fills an equivalent Directory with the DICOM files. + + +class BrukerDataSet: + corresponds to a 'parameter file', at any level. + LoadFile(std::string fileName); + GetFieldData(std::string fieldName); + + +class BrukerFieldData : + according to what users *knows* about the element, he will use: + std::string &GetDataType(); + int GetDimensionNumber() + int GetNumberOfElements() + std::vector &GetStringValue() + std::vector &GetIntValue () + std::vector &GetDoubleValue() + +class BrukerObjectVaryingProperties : + +class BrukerKspaceObject : + +class BrukerImage + +class BrukerSizeException: +class BrukerInitException +class BrukerHopelessException + + diff --git a/appli/CMakeLists.txt b/appli/CMakeLists.txt index 7aa1a0b..fce3932 100644 --- a/appli/CMakeLists.txt +++ b/appli/CMakeLists.txt @@ -18,7 +18,7 @@ if(USE_GDCM) #ADD_SUBDIRECTORY( essaiDenis ) #ADD_SUBDIRECTORY( PrintParameterFile) #ADD_SUBDIRECTORY( exObjectVaryingProperties) -#ADD_SUBDIRECTORY( testBruker2Dicom) +ADD_SUBDIRECTORY( testBruker2Dicom) #ADD_SUBDIRECTORY( Dcm2VtkImageData) #ADD_SUBDIRECTORY( appli1_WithoutWx) #ADD_SUBDIRECTORY( appli2_WithWx) diff --git a/appli/testBruker2Dicom/testBruker2Dicom.cxx b/appli/testBruker2Dicom/testBruker2Dicom.cxx index bcadbc5..5216302 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: 2010/04/22 17:20:41 $ - Version: $Revision: 1.10 $ + Date: $Date: 2011/04/07 10:16:59 $ + Version: $Revision: 1.11 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -80,7 +80,7 @@ * pdata * 3 * ... - * - fills a single level Directory with the MHD files, + * - fills an equivalent Directory with the MHD / DICOM files, */ diff --git a/doc/UserDoxygen/Doxyfile.txt.in b/doc/UserDoxygen/Doxyfile.txt.in index 3257ec6..78f6b14 100644 --- a/doc/UserDoxygen/Doxyfile.txt.in +++ b/doc/UserDoxygen/Doxyfile.txt.in @@ -1407,7 +1407,7 @@ GROUP_GRAPHS = YES # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. -UML_LOOK = NO +UML_LOOK = YES # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. diff --git a/lib/src1/bruker2dicom.cxx b/lib/src1/bruker2dicom.cxx index daf97a8..0241946 100644 --- a/lib/src1/bruker2dicom.cxx +++ b/lib/src1/bruker2dicom.cxx @@ -1372,7 +1372,7 @@ std::vector Bruker2Dicom::CreateImageSet ( ) if (result == false) { - throw ( BrukerInitException ("ObjectVaryingProperties.init() failure in Bruker2Dicom::CreateImageSet()") ); + throw ( BrukerInitException ("ObjectVaryingProperties.init() failure in Bruker2Dicom::CreateImageSet()") ); } br_acqp.SetImageLoopStructure(); diff --git a/lib/src1/bruker2dicom2.h b/lib/src1/bruker2dicom2.h index 285fe8b..390ae1f 100644 --- a/lib/src1/bruker2dicom2.h +++ b/lib/src1/bruker2dicom2.h @@ -99,7 +99,7 @@ bool CreateDirectory(const std::string &dirNameout); int CheckUserDirectory(std::string &userDirName); void DealWithMultiStudyDirectory(gdcm::Directory::FilenamesType &fileNames, const std::string ¤tOutputDirName); -void DealWithSingleStudyDirectory (const std::string dirname, const std::string currentOutputDirName) ; +void DealWithSingleStudyDirectory (const std::string dirname, const std::string currentOutputDirName) ; void DealWithNiveau1(std::string level1Directory, std::string currentOutputDirName); void DealWithNiveau2(std::string level2Directory, std::string currentOutputDirName);