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();
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]);
}
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());
}
//------------------------------------------------------------------------------
-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
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;
//------------------------------------------------------------------------------
void vvToolROIManager::ReloadCurrentROI() {
- if (mCurrentROI->GetImage()) {
+ if (mCurrentROI->GetFilename() == "") {
return; // do nothing (contour from rt struct do not reload)
}
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);