]> Creatis software - creaBruker.git/blobdiff - README.txt
Ass some comments
[creaBruker.git] / README.txt
index 89e7e0c3b1e0eef4b21df2dc63a492cb6069982b..e146304672fe3982a36f133eaaa0e1f441392c2c 100644 (file)
@@ -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<std::string> &GetStringValue()
+               std::vector<int> &GetIntValue ()
+               std::vector<double> &GetDoubleValue()
+                               
+class  BrukerObjectVaryingProperties :
+
+class BrukerKspaceObject :
+
+class BrukerImage
+
+class BrukerSizeException:
+class BrukerInitException
+class BrukerHopelessException
+
+