]> Creatis software - clitk.git/commitdiff
Merge branch 'master' of git.creatis.insa-lyon.fr:clitk
authorSimon Rit <simon.rit@creatis.insa-lyon.fr>
Wed, 12 Jun 2013 14:33:34 +0000 (16:33 +0200)
committerSimon Rit <simon.rit@creatis.insa-lyon.fr>
Wed, 12 Jun 2013 14:33:34 +0000 (16:33 +0200)
common/clitkImage2DicomRTStructFilter.txx
vv/vvToolROIManager.cxx
vv/vvToolROIManager.h

index 051211b6d0d325fa882875b86fc02f861035f8b3..1b241a99824a233a094058f1b8196d09c4e99772 100644 (file)
@@ -88,10 +88,22 @@ clitk::Image2DicomRTStructFilter<PixelType>::SetROIName(std::string name, std::s
 template<class PixelType>
 void clitk::Image2DicomRTStructFilter<PixelType>::Update() 
 {
+  // Check this is a RT-Struct
+  gdcm::Reader gdcm_reader;
+  gdcm_reader.SetFileName(m_StructureSetFilename.c_str());
+  if (!gdcm_reader.Read()) {
+    clitkExceptionMacro("Error could not open the file '" << m_StructureSetFilename << std::endl);
+  }
+  gdcm::MediaStorage ms;
+  ms.SetFromFile(gdcm_reader.GetFile());
+  if (ms != gdcm::MediaStorage::RTStructureSetStorage) {
+    clitkExceptionMacro("File '" << m_StructureSetFilename << "' is not a DICOM-RT-Struct file." << std::endl);
+  }
+
   // Read rt struct
   vtkSmartPointer<vtkGDCMPolyDataReader> reader = vtkGDCMPolyDataReader::New();
   reader->SetFileName(m_StructureSetFilename.c_str());
-  reader->Update();
+  reader->Update();  
 
   // Get properties
   vtkRTStructSetProperties * p = reader->GetRTStructSetProperties();
index 072d3634b23a1c26129ba466fc39c0fcae88224b..c02516f94dde6c9cca9cff898d4543ab1cdfccb7 100644 (file)
@@ -341,7 +341,11 @@ void vvToolROIManager::OpenBinaryImage(QStringList & filename)
       return;
     }
     vvImage::Pointer binaryImage = reader->GetOutput();
-    AddImage(binaryImage, filename[i].toStdString(), mBackgroundValueSpinBox->value(),
+    std::ostringstream oss;
+    oss << vtksys::SystemTools::
+      GetFilenameName(vtksys::SystemTools::GetFilenameWithoutLastExtension(filename[i].toStdString()));
+    std::string name = oss.str();
+    AddImage(binaryImage, name, filename[i].toStdString(), mBackgroundValueSpinBox->value(),
              (!mBGModeCheckBox->isChecked()));
     mOpenedBinaryImageFilenames.push_back(filename[i]);
   }
@@ -390,7 +394,7 @@ void vvToolROIManager::OpenDicomImage(std::string filename)
       binaryImage->AddVtkImage(filter.GetOutput());
     
       // Add to gui
-      AddImage(binaryImage, s->GetROIFromROINumber(list[i])->GetName(), 0, true);
+      AddImage(binaryImage, s->GetROIFromROINumber(list[i])->GetName(), "", 0, true); // "" = no filename
       mOpenedBinaryImageFilenames.push_back(filename.c_str());
     }
 
@@ -403,7 +407,9 @@ void vvToolROIManager::OpenDicomImage(std::string filename)
 
 
 //------------------------------------------------------------------------------
-void vvToolROIManager::AddImage(vvImage * binaryImage, std::string filename, 
+void vvToolROIManager::AddImage(vvImage * binaryImage, 
+                                std::string name, 
+                                std::string filename, 
                                 double BG, bool modeBG) 
 {
   // Check Dimension
@@ -421,9 +427,9 @@ void vvToolROIManager::AddImage(vvImage * binaryImage, std::string filename,
   int n = mROIList.size();
   
   // Compute the name of the new ROI
-  std::ostringstream oss;
-  oss << vtksys::SystemTools::GetFilenameName(vtksys::SystemTools::GetFilenameWithoutLastExtension(filename));
-  std::string name = oss.str();
+  // std::ostringstream oss;
+  // oss << vtksys::SystemTools::GetFilenameName(vtksys::SystemTools::GetFilenameWithoutLastExtension(filename));
+  // std::string name = oss.str();
   
   // Set color
   std::vector<double> color;
@@ -737,7 +743,7 @@ void vvToolROIManager::ChangeDepth(int n) {
 
 //------------------------------------------------------------------------------
 void vvToolROIManager::ReloadCurrentROI() {
-  if (mCurrentROI->GetImage()) {
+  if (mCurrentROI->GetFilename() == "") {
     return; // do nothing (contour from rt struct do not reload)
   }
 
index 03cbff9a3242fdc3dba1d00c1360f924c696f142..8ad4a1c65ece4c5393460804b03715f18248cbae 100644 (file)
@@ -43,7 +43,7 @@ class vvToolROIManager:
   static void Initialize();
   virtual void InputIsSelected(vvSlicerManager *m);
 
-  void AddImage(vvImage * binaryImage, std::string filename, double BG, bool m_modeBG=true);
+  void AddImage(vvImage * binaryImage, std::string name, std::string filename, double BG, bool m_modeBG=true);
   void UpdateAllContours();
   void UpdateAllROIStatus();
   virtual void SaveState(std::auto_ptr<QXmlStreamWriter> & m_XmlWriter);