+// -------------------------------------------------------------------------
+#define ImageMPR_ReadImage( F ) \
+ this->m_UI->MPR->DeleteAllData( ); \
+ this->m_Plugins.ClearDataObjects( ); \
+ try \
+ { \
+ std::string name = this->m_Plugins.Read##F( "" ); \
+ if( name == "" ) \
+ return; \
+ TImage* image = this->m_Plugins.GetData< TImage >( name ); \
+ vtkImageData* vimage = image->GetVTK< vtkImageData >( ); \
+ if( vimage != NULL ) \
+ { \
+ this->m_UI->MPR->AddImage( vimage, name ); \
+ this->m_UI->MPR->ShowData( name ); \
+ } \
+ else \
+ QMessageBox::critical( \
+ this, \
+ QMessageBox::tr( "Error showing image." ), \
+ QMessageBox::tr( "Image read, but no valid VTK conversion found." ) \
+ ); \
+ } \
+ catch( std::exception& err ) \
+ { \
+ QMessageBox::critical( \
+ this, \
+ QMessageBox::tr( "Error reading image." ), \
+ QMessageBox::tr( err.what( ) ) \
+ ); \
+ }
+
+void ImageMPR::_aOpenImage( ) { ImageMPR_ReadImage( Image ) }
+void ImageMPR::_aOpenDICOMSeries( ) { ImageMPR_ReadImage( DicomSeries ) }
+