]> Creatis software - creaBruker.git/blob - README.txt
Added CMake configuration to enable CDash tests.
[creaBruker.git] / README.txt
1 # ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
4 #                        pour la Santé)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 #  This software is governed by the CeCILL-B license under French law and 
10 #  abiding by the rules of distribution of free software. You can  use, 
11 #  modify and/ or redistribute the software under the terms of the CeCILL-B 
12 #  license as circulated by CEA, CNRS and INRIA at the following URL 
13 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
14 #  or in the file LICENSE.txt.
15 #
16 #  As a counterpart to the access to the source code and  rights to copy,
17 #  modify and redistribute granted by the license, users are provided only
18 #  with a limited warranty  and the software's author,  the holder of the
19 #  economic rights,  and the successive licensors  have only  limited
20 #  liability. 
21 #
22 #  The fact that you are presently reading this means that you have had
23 #  knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------
25
26 creaBruker
27 (c) CREATIS 2012
28
29 a Bruker exam has the following 3 levels structure :
30
31 ========================================================================
32
33   * subject
34   * AdjStatePerStudy
35   * 1
36   *    acqp
37   *    AdjStatePerScan
38   *    fid
39   *    imnd / method
40   *    pulseprogram
41   *    spnam0
42   *    spnam1
43   *    pdata
44   *       1             // only 'native' images
45   *          2dseq
46   *          d3proc
47   *          meta
48   *          procs
49   *          reco  <--
50   *          roi
51   *          CreatisComputedCartoFile
52   *       2             // post processed images (if any)
53   *          2dseq
54   *          d3proc
55   *          isa  <--
56   *          meta
57   *          procs
58   *          roi         ...
59   *          roi
60   *       3             // post processed images (if any)
61   *          2dseq
62   *          d3proc
63   *          isa  <--
64   *          meta
65   *          procs
66   *          roi
67   *       ...
68   * 2
69   *    acqp
70   *    fid
71   *    ...
72   *    pdata
73   * 3
74   *   ...
75
76 ========================================================================
77
78 To tell the truth, a lot of changes are found at every new version.
79 We only can hope the mandatory (for us) files keep the same name, with the same
80 informations inside.
81 Or we shall have to find out the version number, and swich - case all the
82 methods (see NRRD format...)
83
84 ========================================================================
85
86 AdjStatePerStudy
87 subject
88 1
89    acqp
90    method
91    pdata
92       1
93          2dseq
94          d3proc
95          id
96          meta
97          reco
98          roi
99          visu_pars
100       pulseprogram
101       spnam0
102       uxnmr.par
103
104 2
105    acqp
106    method
107    pdata
108       1
109          2dseq
110          d3proc
111          id
112          meta
113          reco
114          roi
115          visu_pars
116       pulseprogram
117       spnam0
118       uxnmr.par
119       
120 3
121  ...
122 ========================================================================
123 Dicom convertion *demands* the following files :
124    subject;
125    acqp;
126    method;
127    d3proc;
128    isa;
129    reco;
130
131 ========================================================================
132 This project contains :
133
134 appli :testBruker2Dicom:
135 ------------------------
136
137  - explores the given directory (holding a FULL Bruker exam), at the 3 levels,
138  - fills an equivalent Directory with the MHD files and/or the DICOM files
139  usage: testBruker2Dicom --dirin=rootDirectoryName           
140                          --dirout=outputDirectoryName                     
141                    [-D] [-M]                                              
142                    [{-b|-l}] b:BigEndian,l:LittleEndian default : l       
143                    [--debug] [--verbose] [--listonly] [--usage]           
144                                                                           
145    D         : user wants to export as DICOM                              
146    M         : user wants to export as MHD                                
147   debug      : developper wants to run the program in 'debug mode'        
148                                                                           
149   REMARK :                                                                
150          If you were supplied  an *incomplete* Bruker exam                
151         (e.g. only the '2' serie) put it a 'root' directory,              
152          and run this test using this 'root' directory as 'dirin'
153          
154
155 lib :
156 ----
157 NO inheritance !
158
159 class Bruker2Dicom:
160         starts from a 'root' directory,
161         iterates on each 'serie', at the 3 levels
162         fills an equivalent Directory with the DICOM files.
163         
164
165 class BrukerDataSet:
166         corresponds to a 'parameter file', at any level.
167                 LoadFile(std::string fileName);
168                 GetFieldData(std::string fieldName);
169                                 
170
171 class  BrukerFieldData :
172         according to what users *knows* about the element, he will use:
173                 std::string &GetDataType();
174                 int GetDimensionNumber()
175                 int GetNumberOfElements()
176                 std::vector<std::string> &GetStringValue()
177                 std::vector<int> &GetIntValue ()
178                 std::vector<double> &GetDoubleValue()
179                                 
180 class  BrukerObjectVaryingProperties :
181
182 class BrukerKspaceObject :
183
184 class BrukerImage
185
186 class BrukerSizeException:
187 class BrukerInitException
188 class BrukerHopelessException
189
190