]> Creatis software - creaBruker.git/commitdiff
Remove useless stuff
authorjean-pierre roux <jean-pierre.roux@creatis.insa-lyon.fr>
Fri, 23 Apr 2010 13:15:27 +0000 (13:15 +0000)
committerjean-pierre roux <jean-pierre.roux@creatis.insa-lyon.fr>
Fri, 23 Apr 2010 13:15:27 +0000 (13:15 +0000)
lib/src1/bruker2dicom.cxx

index 961c8e7e9a2891622fe588db9b4780919e2816e8..e241166e05359b664b760a5c7a0d6b6ddb05c6a7 100644 (file)
@@ -12,7 +12,7 @@ bool Bruker2Dicom::Execute()
    // ----- Check input directory name -----
 
    bool bigEndian = GDCM_NAME_SPACE::Util::IsCurrentProcessorBigEndian();
+
    //if ( ! GDCM_NAME_SPACE::DirList::IsDirectory(InputDirName) )
    if ( ! boost::filesystem::is_directory(InputDirName) )
    {
@@ -42,10 +42,10 @@ bool Bruker2Dicom::Execute()
 //
 
    std::string strDirNamein(InputDirName);
-   
+
 /* */
    GDCM_NAME_SPACE::DirList dirList(strDirNamein, false, true); // DON'T get recursively the list of files
-     
+
    GDCM_NAME_SPACE::DirListType fileNames;
    fileNames = dirList.GetFilenames();
 
@@ -75,11 +75,10 @@ bool Bruker2Dicom::Execute()
    else                 type = 3; // user passed a 'non study' directory; Hope it's a 'set of studies' directory!
  /* */
 
-
    // 1 : if subjectFound                       : user passed a Single Study Directory
    // 2 : if NOT subjectFound and acqpFound     : user passed a Serie Directory
    // 3 : if NOT subjectFound and NOT acqpFound : user passed a 'non Study Directory' (Hope it's a set of Single Study Directories)
-   
+
    //int type = CheckUserDirectory(InputDirName);
  
    switch (type)
@@ -94,28 +93,26 @@ bool Bruker2Dicom::Execute()
          else
          {
             br_subject.FillMap();
-         }
-   //br_subject.PrintSelf();
-
-  // get info for 'Study Description'  
 
-         BrukerFieldData b_name=br_subject.GetFieldData("SUBJECT_name_string");
-         subject_name = b_name.GetStringValue()[0];
-         strPatientName = subject_name;
-         cleanString(subject_name);
-         DealWithSingleStudyDirectory (fileNames);
+            // get info for 'Study Description'  
+            BrukerFieldData b_name=br_subject.GetFieldData("SUBJECT_name_string");
+            subject_name = b_name.GetStringValue()[0];
+            strPatientName = subject_name;
+            cleanString(subject_name);
+            DealWithSingleStudyDirectory (fileNames);
+        }
          break;
       }
 
       case 2: {
-           subject_name = "defaultPatName";
-          strPatientName = subject_name;
-           DealWithSingleStudyDirectory (fileNames);
-          break;
+         subject_name = "defaultPatName";
+        strPatientName = subject_name;
+         DealWithSingleStudyDirectory (fileNames);
+        break;
       }
 
       case 3: {
-         std::cout << " user passed a 'non study' directory; Hope it's a *non recursive* 'set of studies' directory! (recursive not yet dealt with)" << std::endl;
+         std::cout << " User passed a 'non study' directory; Hope it's a *non recursive* 'set of studies' directory! (recursive not yet dealt with)" << std::endl;
         DealWithMultiStudyDirectory (fileNames);
         break;
       }
@@ -134,13 +131,14 @@ void Bruker2Dicom::DealWithMultiStudyDirectory (GDCM_NAME_SPACE::DirListType &di
    {
       if ( boost::filesystem::is_directory(*it) )
       {
+         subjectFound = false;
          if (verbose)
-            std::cout << "[" << *it << "] is a directory" << std::endl;
+            std::cout << "in 'DealWithMultiStudyDirectory' [" << *it << "] is a directory" << std::endl;
 
          GDCM_NAME_SPACE::DirList dirList(*it, false, true); // DON'T get recursively the list of files
          GDCM_NAME_SPACE::DirListType fileNames;
          fileNames = dirList.GetFilenames();
-        
+
          std::string path = GDCM_NAME_SPACE::Util::GetPath(*(fileNames.begin()));
          std::string subject =  path +
                                 GDCM_NAME_SPACE::GDCM_FILESEPARATOR +
@@ -150,7 +148,7 @@ void Bruker2Dicom::DealWithMultiStudyDirectory (GDCM_NAME_SPACE::DirListType &di
            std::cout << "no [" << subject << "] file found" << std::endl;
            continue;
          }
-                  
+
          bool canOpen = br_subject.LoadFile(subject);
          if (!canOpen)
          {
@@ -160,14 +158,14 @@ void Bruker2Dicom::DealWithMultiStudyDirectory (GDCM_NAME_SPACE::DirListType &di
          else
          {
             br_subject.FillMap();
-         }
-          
-         BrukerFieldData b_name=br_subject.GetFieldData("SUBJECT_name_string");
-         subject_name = b_name.GetStringValue()[0];
-         strPatientName = subject_name;
-         cleanString(subject_name);     
-         
-         DealWithSingleStudyDirectory(fileNames);   
+           subjectFound = true; // Hope so! (full checking needed!)
+
+            BrukerFieldData b_name=br_subject.GetFieldData("SUBJECT_name_string");
+            subject_name = b_name.GetStringValue()[0];
+            strPatientName = subject_name;
+            cleanString(subject_name);  
+            DealWithSingleStudyDirectory(fileNames);
+        }  
       }
       else
       {
@@ -185,7 +183,7 @@ void Bruker2Dicom::DealWithSingleStudyDirectory (GDCM_NAME_SPACE::DirListType &f
     // creation directory : 'nom du patient'
     std::string tempStringPatDir(OutputDirName);
     tempStringPatDir = tempStringPatDir + GDCM_NAME_SPACE::GDCM_FILESEPARATOR + subject_name;
-        
+
     res=CreateDirectory(tempStringPatDir);
     if (!res) {
        std::cout << "[" << tempStringPatDir << "] Directory creation failure " << std::endl;
@@ -194,8 +192,6 @@ void Bruker2Dicom::DealWithSingleStudyDirectory (GDCM_NAME_SPACE::DirListType &f
 
     if (subjectFound)
     {
-    
- std::cout << "===================================--===========nom dir [" << tempStringPatDir << "] subjectFound, studyName : " << subject_study_name<< std::endl;
        BrukerFieldData b_entry=br_subject.GetFieldData("SUBJECT_entry");
        subject_entry = b_entry.GetStringValue()[0];
        //cleanString(subject_entry);
@@ -218,8 +214,6 @@ void Bruker2Dicom::DealWithSingleStudyDirectory (GDCM_NAME_SPACE::DirListType &f
    }
    else  // Desperate trick when file 'subject' is missing
    {
-
- std::cout << "==============================================nom dir [" << tempStringPatDir << "] subjectFound" << std::endl;
       subject_entry      = "HeadFirst";            // Why not?
       subject_position   = "Supine";               // Why not?
       strStudyTimeDate   = "06_06_06_6_June_1666"; // Why not?
@@ -228,18 +222,18 @@ void Bruker2Dicom::DealWithSingleStudyDirectory (GDCM_NAME_SPACE::DirListType &f
    }
     // subject_name is already in 'Patient Name' 
     strStudyDescr = /*subject_name + "." + */ subject_study_name + "." + subject_entry + "." + subject_position + "." + subject_date;
-   
+
     // creation directory : 'nom de la Study'
-    
+
     std::string tempStringStudyDir(OutputDirName);
     tempStringStudyDir = tempStringPatDir + GDCM_NAME_SPACE::GDCM_FILESEPARATOR + strStudyDescr;
-        
+
     res=CreateDirectory(tempStringStudyDir);
     if (!res) {
        std::cout << "[" << tempStringStudyDir << "] Directory creation failure " << std::endl;
        throw ( BrukerHopelessException ("Study directory creation failure "));
     }    
-   
+
    char outputDirName[(unsigned int) PATH_MAX+2];
 
    strStudyUID    = GDCM_NAME_SPACE::Util::CreateUniqueUID();
@@ -251,7 +245,7 @@ void Bruker2Dicom::DealWithSingleStudyDirectory (GDCM_NAME_SPACE::DirListType &f
    // (this is level ZERO)
    // each Directory (name : 1, 2, 3, ...) will be a Dicom Serie
    // -----------------------------------------------------
+
    /// \TODO better use directory iterator, from boost! // JPR
    GDCM_NAME_SPACE::DirListType::iterator it;
 
@@ -296,13 +290,13 @@ void Bruker2Dicom::DealWithSingleStudyDirectory (GDCM_NAME_SPACE::DirListType &f
          BrukerFieldData b_method=br_acqp.GetFieldData("ACQ_method");
         b_method.PrintSelf();
          acqp_method = b_method.GetStringValue()[0];
-  
+
          cleanString(acqp_method);
 //std::cout << "out of br_acqp.FillMap 3" << std::endl;
          BrukerFieldData b_list_size = br_acqp.GetFieldData("ACQ_O1_list_size");
 //std::cout << "out of br_acqp.FillMap 4" << std::endl;        
         //b_list_size.PrintSelf(); //JP
+
          nbSlices =  b_list_size.GetIntValue()[0];
 //std::cout << "out of br_acqp.FillMap 5" << std::endl;
          strSerieDescr = GDCM_NAME_SPACE::Util::GetName(*it)
@@ -313,7 +307,7 @@ void Bruker2Dicom::DealWithSingleStudyDirectory (GDCM_NAME_SPACE::DirListType &f
          sprintf(outputDirName, "%s%c%s", tempStringStudyDir.c_str(),      //OutputDirName.c_str(), 
                           GDCM_NAME_SPACE::GDCM_FILESEPARATOR,
                           strSerieDescr.c_str() );
-  
+
          std::cout << " ================================================================================\n"
                    << " === [" << GDCM_NAME_SPACE::Util::GetName(*it) << "] -> [" << strSerieDescr << "]\n"
                    << " ================================================================================"
@@ -435,7 +429,7 @@ void Bruker2Dicom::DealWithNiveau1(std::string &level1Directory, std::string &cu
           ##$PVM_NSPacks=2
           ##$PVM_SPackArrNSlices=( 2 )
           7 1  
-  */    
+  */
          try {
             DealWithNiveau2(*it, strOutputDirName);
         }
@@ -488,7 +482,7 @@ void Bruker2Dicom::DealWithNiveau2(std::string &level2Directory, std::string &cu
          std::cout << "--- --- [" << *it << "] is a file.." << std::endl;
       }
    }
-  
+
    for (it = fileNames.begin();
          it != fileNames.end();
        ++it)
@@ -631,7 +625,7 @@ void Bruker2Dicom::DealWithNiveau3(std::string &level3Directory, std::string &cu
     //             "d3proc";
    if (verbose)
       std::cout << "reco: --- => [" << char_reco << "]" << std::endl;
-      
+
    std::string str_reco(char_reco);
    canOpen = br_reco.LoadFile(str_reco);
 
@@ -654,7 +648,7 @@ void Bruker2Dicom::DealWithNiveau3(std::string &level3Directory, std::string &cu
       if (verbose)
          std::cout << "[" << str_reco << "] successfully Loaded " << std::endl;
    }
-   
+
    canOpen = br_reco.FillMap();
    if (!canOpen)
    {
@@ -665,7 +659,7 @@ void Bruker2Dicom::DealWithNiveau3(std::string &level3Directory, std::string &cu
       if (verbose)
          std::cout << "[" << str_reco << "] successfully Mapped" << std::endl;
    }   
-   
+
    //std::cout << "------------------------------------------------------------------------------------------------" << std::cout;
    // br_reco.PrintSelf();
    // std::cout << "------------------------------------------------------------------------------------------------" << std::cout;
@@ -716,7 +710,7 @@ void Bruker2Dicom::DealWithNiveau3(std::string &level3Directory, std::string &cu
    double spatResolY = spatResol.GetDoubleValue()[1];
    if (verbose)
       std::cout << "SpatResol (ds method) " << spatResolX << " " << spatResolY << std::endl;
-          
+     
 */
 
 /* ------  */
@@ -731,13 +725,13 @@ void Bruker2Dicom::DealWithNiveau3(std::string &level3Directory, std::string &cu
    BrukerFieldData size = br_reco.GetFieldData("RECO_size");
    double sizeX = size.GetDoubleValue()[0];
    double sizeY = size.GetDoubleValue()[1];
-   
+
    if (verbose)
       std::cout << "SIZE (ds reco) " << sizeX << " " << sizeY << std::endl;
-       
+
    double spatResolX = fovX / sizeX;
    double spatResolY = fovY / sizeY;
-       
+
    if (verbose)
       std::cout << "spatResol (ds reco : fov/size) " << spatResolX << " " << spatResolY << std::endl;
 
@@ -745,10 +739,10 @@ void Bruker2Dicom::DealWithNiveau3(std::string &level3Directory, std::string &cu
 
    /// \TODO probabely a more sophisticated accessor will be necessary :
    ///  (cf : non contiguous slices, overlapping, slice thickness, space between slices, etc)
-   
+
    BrukerFieldData bsliceDistance = br_method.GetFieldData("PVM_SPackArrSliceDistance");
    double sliceDistance = bsliceDistance.GetDoubleValue()[0];
-   
+
    if (verbose)
       std::cout << "SPackArrSliceDistance (ds method) " << sliceDistance << std::endl;   
 
@@ -964,7 +958,7 @@ void Bruker2Dicom::DealWithNiveau3(std::string &level3Directory, std::string &cu
                             1, fp);
                }
                fclose(fp);
-              
+
 // std::cout << "end writting[" << output2dseqSliceFileName << "]" << std::endl;
             }  // end if mhd
    
@@ -989,7 +983,7 @@ void Bruker2Dicom::DealWithNiveau3(std::string &level3Directory, std::string &cu
                             1, fp);
                }
                fclose(fp);
-       
+
                fp=fopen(output2dseqSliceFileName, "rb");
                if (!fp)
                {     
@@ -1004,7 +998,7 @@ void Bruker2Dicom::DealWithNiveau3(std::string &level3Directory, std::string &cu
               */
 
                /* ----------- Write Dicom Image  ---------------*/
-       
+
                int frameSize = NX*NY*pixelSize;
                for (instantNb=0; instantNb<nbInstants; instantNb++)
                {
@@ -1055,7 +1049,6 @@ void Bruker2Dicom::DealWithNiveau3(std::string &level3Directory, std::string &cu
                    copyFile, currentOutputDirName, outputMhdFileName, output2dseqCartoName);
 }
 
-
 // ===========================================================================================
 
 void Bruker2Dicom::dealWithCarto(GDCM_NAME_SPACE::DirListType &fileNames, int NX, int NY, int nbSlices, 
@@ -1067,7 +1060,7 @@ void Bruker2Dicom::dealWithCarto(GDCM_NAME_SPACE::DirListType &fileNames, int NX
    // -----------------------------------------------------
    //  deal with MatLab-generated Carto file.
    // -----------------------------------------------------
-   
+
    const char *code[] = { "ADC", "adc", "TTP", "ttp", "PEAK", "peak", "" };  // add more carto file name identifiers if necessary; end with ""
    const char *separator[] =  { "_", ".", "-", "" }; //  add more, if necessary, to ckeck for 2dseq.ADC, 2dseq_ADC, 2dseq-ADC, etc; end with ""
    int icode;
@@ -1188,7 +1181,7 @@ void Bruker2Dicom::dealWithCarto(GDCM_NAME_SPACE::DirListType &fileNames, int NX
                if (verbose) 
                   std::cout << "--- End writing Carto DICOM file [" << output2dseqCartoName << "]" << std::endl;
                break; // don't check for more ident on same file name!
-           
+
             }  // end deal with _ADC, -adc, etc
           iseparator ++;
           }  // end iterate speparators
@@ -1198,7 +1191,6 @@ void Bruker2Dicom::dealWithCarto(GDCM_NAME_SPACE::DirListType &fileNames, int NX
    } // end iterate on all objects (files, dir, etc)
 } // end method
 
-
 // ==========================================================================================================
 
 int Bruker2Dicom::CheckUserDirectory(std::string &userDirName)
@@ -1236,9 +1228,8 @@ int Bruker2Dicom::CheckUserDirectory(std::string &userDirName)
    return type;   
 }
 
-
 // ==========================================================================================================
-  
+
 bool Bruker2Dicom::CreateDirectory(std::string &OutputDirName)
 {
    std::string systemCommand;
@@ -1273,7 +1264,6 @@ bool Bruker2Dicom::CreateDirectory(std::string &OutputDirName)
    return 1;
 }
 
-
 // ===========================================================================================
 
 /// \TODO move cleanString to 'crea' ?
@@ -1350,7 +1340,7 @@ void Bruker2Dicom::getImhDataType(BrukerFieldData &bDPT, std::string &mhdDataPix
 // Cross your fingers !!!
 
 // pb : found values : 2, 3, 5
-         
+
          if (brukerDataPixelType ==  2) {
             mhdDataPixelType = "MET_USHORT";
             pixelSize = 2;
@@ -1376,7 +1366,7 @@ std::vector<BrukerImage> Bruker2Dicom::CreateImageSet ( )
          std::map<std::string, BrukerFieldData> map     = br_acqp.GetBrukerHeaderMap();
         
          bool result                                    = br_acqp.ObjectVaryingProperties.init(map,tempVect);
+
          if (result == false)
         {
            throw ( BrukerInitException  ("ObjectVaryingProperties.init() failure in Bruker2Dicom::CreateImageSet()") );
@@ -1388,22 +1378,22 @@ std::vector<BrukerImage> Bruker2Dicom::CreateImageSet ( )
 
          BrukerImage image(br_acqp,br_reco);
          image.Init(br_acqp,br_reco,1); 
+
          for(int i=0;i<brukerImageList.size();i++)
          {
             image.Init(br_acqp,br_reco,i);    
             imageSet.push_back(image);
          }
+
  // Just for checking
  /*
+
          std::vector<std::vector <double> > imageOrientation;
          std::vector <double> imagePosition; 
          for(int i=0;i<brukerImageList.size();i++)
          {
            // fread(buffer_2dseq, NX*NY*pixelSize*nbSlices*nbInstants, 1, fp);   
-   
+
            imagePosition = imageSet[i].getTranslationVectorRPS2XYZ();
            std::cout << "Position " << imagePosition[0] << " " 
                      << imagePosition[1] << " "  << imagePosition[2] ;
@@ -1411,7 +1401,7 @@ std::vector<BrukerImage> Bruker2Dicom::CreateImageSet ( )
            std::cout << "\t  Orientation " ;
            for(int i1=0; i1<3;i1++)for(int i2=0; i2<3;i2++)
               std::cout << imageOrientation[i1][i2] << " ";CreateImageSet
-       
+
            //std::cout << "\t  Abs Time " << imageSet[i].getAbsoluteTimePosition();
            std::cout << "\t  Relat Time " << imageSet[i].getRelativeTimePosition();
 
@@ -1441,7 +1431,7 @@ void Bruker2Dicom::MakeDicomImage(unsigned char *tabPixels,
               std::string &serieDescr,
               std::string &strStudyTimeDate,
               int imgNum,
-              GDCM_NAME_SPACE::ImageContentType contentType 
+              GDCM_NAME_SPACE::ImageContentType contentType
       )
 {  
    std::ostringstream str;