]> Creatis software - creaBruker.git/blobdiff - lib/src1/bruker2dicom.h
Feature #1792
[creaBruker.git] / lib / src1 / bruker2dicom.h
index 85e821252476af894436ae6b1f2d79990ba55f57..2fd2c3b4786b2d2e1ddf1e97af47fa5fc9f230fe 100644 (file)
@@ -1,3 +1,29 @@
+/*
+       # ---------------------------------------------------------------------
+       #
+       # 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.
+       # ------------------------------------------------------------------------
+*/
 #ifndef BRUKER2DICOM_H
 #define BRUKER2DICOM_H
 
@@ -30,10 +56,10 @@ public:
 */
   ~Bruker2Dicom (){};
 
-  void SetInputDirectory (const std::string &i) { InputDirName  = i;  }
-  void SetOutputDirectory(const std::string &o) { OutputDirName = o;  }
-  void SetConvertModeToDicom()                  { dicom = 1; mhd  = 0;}
-  void SetConvertModeToMhd()                    { dicom = 0; mhd  = 1;}  
+  void SetInputDirectory (const std::string &i) { InputDirName   = i;}
+  void SetOutputDirectory(const std::string &o) { OutputDirName  = o;}
+  void SetConvertModeToDicom()                  { dicom = 1; mhd = 0;}
+  void SetConvertModeToMhd()                    { dicom = 0; mhd = 1;}  
   bool Execute();
   
   /* 
@@ -65,7 +91,7 @@ void MakeDicomImage(unsigned char *tabPixels,
               GDCM_NAME_SPACE::ImageContentType contentType 
       );
       
-std::vector<BrukerImage> CreateImageSet ( );
+std::vector<BrukerImage> CreateImageSet ( int dimension);
 
 void getImhDataType(BrukerFieldData &bDPT, 
                     std::string &mhdDataPixelType, 
@@ -73,17 +99,19 @@ void getImhDataType(BrukerFieldData &bDPT,
                    
 void cleanString(std::string &s);
 
-bool CreateDirectory(std::string dirNameout);
+bool CreateDirectory(std::string &dirNameout);
 
-void DealWithNiveau1(std::string level1Directory, std::string currentOutputDirName);
-void DealWithNiveau2(std::string level2Directory, std::string currentOutputDirName);
-void DealWithNiveau3(std::string level3Directory, std::string currentOutputDirName);
+int CheckUserDirectory(std::string &userDirName);
+void DealWithMultiStudyDirectory(GDCM_NAME_SPACE::DirListType &fileNames,int dimension);
+void DealWithSingleStudyDirectory(GDCM_NAME_SPACE::DirListType &fileNames, int dimension);
+void DealWithNiveau1(std::string &level1Directory, std::string &currentOutputDirName, int dimension);
+void DealWithNiveau2(std::string &level2Directory, std::string &currentOutputDirName, int dimension);
+void DealWithNiveau3(std::string &level3Directory, std::string &currentOutputDirName, int dimension);
                    
 void dealWithCarto(GDCM_NAME_SPACE::DirListType &fileNames, int NX, int NY, int nbSlices, 
                    double fovX, double fovY, double sliceDistance,
                    char *copyFile, std::string &currentOutputDirName, 
                   char *outputMhdFileName, char *output2dseqCartoName);
-
 public:
 
 // these ones are for debugging only
@@ -95,6 +123,14 @@ public:
 private :
    std::string InputDirName;
    std::string OutputDirName;
+
+   bool subjectFound;
+   bool acqpFound;
+   
+   std::string subject_entry;
+   std::string subject_position;
+   std::string subject_date;
+   std::string subject_study_name;
  
    int mhd;
    int dicom;
@@ -117,9 +153,10 @@ private :
    std::string strSerieDescr;
    std::string strStudyTimeDate;
    std::string strPatientName;
-   
-   int serieNumber;      
+   std::string subject_name; // cleaned strPatientName
+   int serieNumber;
+   int instanceNumber;      
 };
 
-
 #endif