From: Simon Rit Date: Wed, 12 Jun 2013 14:33:34 +0000 (+0200) Subject: Merge branch 'master' of git.creatis.insa-lyon.fr:clitk X-Git-Tag: v1.4.0~206^2 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=ebdb05ef36e1f579a451171e691cd71d640f849c;hp=ae6ab552bec1c4f23aec29e774204d942f4df342;p=clitk.git Merge branch 'master' of git.creatis.insa-lyon.fr:clitk --- diff --git a/common/clitkImage2DicomRTStructFilter.txx b/common/clitkImage2DicomRTStructFilter.txx index 051211b..1b241a9 100644 --- a/common/clitkImage2DicomRTStructFilter.txx +++ b/common/clitkImage2DicomRTStructFilter.txx @@ -88,10 +88,22 @@ clitk::Image2DicomRTStructFilter::SetROIName(std::string name, std::s template void clitk::Image2DicomRTStructFilter::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 reader = vtkGDCMPolyDataReader::New(); reader->SetFileName(m_StructureSetFilename.c_str()); - reader->Update(); + reader->Update(); // Get properties vtkRTStructSetProperties * p = reader->GetRTStructSetProperties(); diff --git a/vv/vvToolROIManager.cxx b/vv/vvToolROIManager.cxx index 072d363..c02516f 100644 --- a/vv/vvToolROIManager.cxx +++ b/vv/vvToolROIManager.cxx @@ -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 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) } diff --git a/vv/vvToolROIManager.h b/vv/vvToolROIManager.h index 03cbff9..8ad4a1c 100644 --- a/vv/vvToolROIManager.h +++ b/vv/vvToolROIManager.h @@ -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 & m_XmlWriter);