QmitkDiffusionDicomImport. More...
#include <QmitkDiffusionDicomImportView.h>
Public Types | |
typedef mitk::DataStorage::SetOfObjects | ConstVector |
typedef ConstVector::ConstPointer | ConstVectorPointer |
typedef ConstVector::ConstIterator | ConstVectorIterator |
Public Member Functions | |
QmitkDiffusionDicomImport (QObject *parent=0, const char *name=0) | |
default constructor | |
virtual | ~QmitkDiffusionDicomImport () |
default destructor | |
virtual void | CreateQtPartControl (QWidget *parent) |
method for creating the widget containing the application controls, like sliders, buttons etc. | |
virtual void | CreateConnections () |
method for creating the connections of main and control widget | |
virtual void | Activated () |
void | SetDwiNodeProperties (mitk::DataNode::Pointer node, std::string name) |
Static Public Attributes | |
static const std::string | VIEW_ID = "org.mitk.views.diffusiondicomimport" |
Protected Slots | |
void | DicomLoadAddFolderNames () |
void | DicomLoadDeleteFolderNames () |
void | DicomLoadStartLoad () |
void | AverageClicked () |
void | OutputSet () |
void | OutputClear () |
Protected Member Functions | |
void | Status (QString status) |
void | Status (std::string status) |
void | Status (const char *status) |
void | Error (QString status) |
void | Error (std::string status) |
void | Error (const char *status) |
void | PrintMemoryUsage () |
std::string | FormatMemorySize (vcl_size_t size) |
std::string | FormatPercentage (double val) |
std::string | GetMemoryDescription (vcl_size_t processSize, float percentage) |
Protected Attributes | |
Ui::QmitkDiffusionDicomImportControls * | m_Controls |
QmitkStdMultiWidget * | m_MultiWidget |
QWidget * | m_Parent |
QString | m_OutputFolderName |
bool | m_OutputFolderNameSet |
Definition at line 32 of file QmitkDiffusionDicomImportView.h.
\ Convenient typedefs
Definition at line 43 of file QmitkDiffusionDicomImportView.h.
typedef ConstVector::ConstIterator QmitkDiffusionDicomImport::ConstVectorIterator |
Definition at line 45 of file QmitkDiffusionDicomImportView.h.
typedef ConstVector::ConstPointer QmitkDiffusionDicomImport::ConstVectorPointer |
Definition at line 44 of file QmitkDiffusionDicomImportView.h.
QmitkDiffusionDicomImport::QmitkDiffusionDicomImport | ( | QObject * | parent = 0 , |
const char * | name = 0 |
||
) |
default constructor
Definition at line 52 of file QmitkDiffusionDicomImportView.cpp.
: QmitkFunctionality(), m_Controls(NULL), m_MultiWidget(NULL), m_OutputFolderName(""), m_OutputFolderNameSet(false) { }
QmitkDiffusionDicomImport::~QmitkDiffusionDicomImport | ( | ) | [virtual] |
void QmitkDiffusionDicomImport::Activated | ( | ) | [virtual] |
Only called when IsExclusiveFunctionality() returns true.
Reimplemented from QmitkFunctionality.
Definition at line 130 of file QmitkDiffusionDicomImportView.cpp.
void QmitkDiffusionDicomImport::AverageClicked | ( | ) | [protected, slot] |
Definition at line 125 of file QmitkDiffusionDicomImportView.cpp.
References Ui_QmitkDiffusionDicomImportControls::m_Blur, m_Controls, and Ui_QmitkDiffusionDicomImportControls::m_DicomLoadAverageDuplicatesCheckbox.
Referenced by CreateConnections(), and CreateQtPartControl().
{ m_Controls->m_Blur->setEnabled(m_Controls->m_DicomLoadAverageDuplicatesCheckbox->isChecked()); }
void QmitkDiffusionDicomImport::CreateConnections | ( | ) | [virtual] |
method for creating the connections of main and control widget
Definition at line 83 of file QmitkDiffusionDicomImportView.cpp.
References AverageClicked(), DicomLoadAddFolderNames(), DicomLoadDeleteFolderNames(), DicomLoadStartLoad(), Ui_QmitkDiffusionDicomImportControls::m_AddFoldersButton, m_Controls, Ui_QmitkDiffusionDicomImportControls::m_DeleteFoldersButton, Ui_QmitkDiffusionDicomImportControls::m_DicomLoadAverageDuplicatesCheckbox, Ui_QmitkDiffusionDicomImportControls::m_DicomLoadStartLoadButton, Ui_QmitkDiffusionDicomImportControls::m_OutputClearButton, Ui_QmitkDiffusionDicomImportControls::m_OutputSetButton, OutputClear(), and OutputSet().
Referenced by CreateQtPartControl().
{ if ( m_Controls ) { connect( m_Controls->m_AddFoldersButton, SIGNAL(clicked()), this, SLOT(DicomLoadAddFolderNames()) ); connect( m_Controls->m_DeleteFoldersButton, SIGNAL(clicked()), this, SLOT(DicomLoadDeleteFolderNames()) ); connect( m_Controls->m_DicomLoadStartLoadButton, SIGNAL(clicked()), this, SLOT(DicomLoadStartLoad()) ); connect( m_Controls->m_DicomLoadAverageDuplicatesCheckbox, SIGNAL(clicked()), this, SLOT(AverageClicked()) ); connect( m_Controls->m_OutputSetButton, SIGNAL(clicked()), this, SLOT(OutputSet()) ); connect( m_Controls->m_OutputClearButton, SIGNAL(clicked()), this, SLOT(OutputClear()) ); } }
void QmitkDiffusionDicomImport::CreateQtPartControl | ( | QWidget * | parent ) | [virtual] |
method for creating the widget containing the application controls, like sliders, buttons etc.
Implements berry::QtViewPart.
Definition at line 61 of file QmitkDiffusionDicomImportView.cpp.
References AverageClicked(), CreateConnections(), m_Controls, Ui_QmitkDiffusionDicomImportControls::m_DicomLoadAverageDuplicatesCheckbox, Ui_QmitkDiffusionDicomImportControls::m_DicomLoadRecursiveCheckbox, m_Parent, and Ui_QmitkDiffusionDicomImportControls::setupUi().
{ m_Parent = parent; if (m_Controls == NULL) { m_Controls = new Ui::QmitkDiffusionDicomImportControls; m_Controls->setupUi(parent); this->CreateConnections(); m_Controls->m_DicomLoadRecursiveCheckbox->setChecked(true); m_Controls->m_DicomLoadAverageDuplicatesCheckbox->setChecked(false); #ifdef DGDCM2 m_Controls->m_DicomLoadRecursiveCheckbox->setVisible(false); #endif AverageClicked(); } }
void QmitkDiffusionDicomImport::DicomLoadAddFolderNames | ( | ) | [protected, slot] |
Definition at line 140 of file QmitkDiffusionDicomImportView.cpp.
References Ui_QmitkDiffusionDicomImportControls::listWidget, m_Controls, and m_Parent.
Referenced by CreateConnections().
{ // SELECT FOLDER DIALOG QFileDialog* w = new QFileDialog( m_Parent, QString("Select folders containing DWI data") ); w->setFileMode( QFileDialog::Directory ); // RETRIEVE SELECTION if ( w->exec() != QDialog::Accepted ) return; m_Controls->listWidget->addItems(w->selectedFiles()); }
void QmitkDiffusionDicomImport::DicomLoadDeleteFolderNames | ( | ) | [protected, slot] |
Definition at line 135 of file QmitkDiffusionDicomImportView.cpp.
References Ui_QmitkDiffusionDicomImportControls::listWidget, and m_Controls.
Referenced by CreateConnections().
{ m_Controls->listWidget->clear(); }
void QmitkDiffusionDicomImport::DicomLoadStartLoad | ( | ) | [protected, slot] |
Definition at line 268 of file QmitkDiffusionDicomImportView.cpp.
References Error(), QmitkFunctionality::GetDefaultDataStorage(), mitk::RenderingManager::GetInstance(), mitk::ProgressBar::GetInstance(), int(), Ui_QmitkDiffusionDicomImportControls::listWidget, Ui_QmitkDiffusionDicomImportControls::m_Blur, m_Controls, Ui_QmitkDiffusionDicomImportControls::m_DicomLoadAverageDuplicatesCheckbox, Ui_QmitkDiffusionDicomImportControls::m_DicomLoadRecursiveCheckbox, m_OutputFolderName, m_OutputFolderNameSet, mitk::DataNode::New(), mitk::DicomDiffusionImageHeaderReader::New(), PrintMemoryUsage(), mitk::RenderingManager::REQUEST_UPDATE_ALL, SetDwiNodeProperties(), QuadProgPP::sqrt(), and Status().
Referenced by CreateConnections().
{ itk::TimeProbesCollectorBase clock; try { int nrFolders = m_Controls->listWidget->count(); if(!nrFolders) { Error(QString("No input folders were selected. ABORTING.")); return; } #ifndef DGDCM2 Status(QString("GDCM 1.x used for DICOM parsing and sorting!")); #else Status(QString("GDCM %1 used for DICOM parsing and sorting!").arg(gdcm::Version::GetVersion())); #endif PrintMemoryUsage(); QString status; mitk::DataNode::Pointer node; mitk::ProgressBar::GetInstance()->AddStepsToDo(3*nrFolders); while(m_Controls->listWidget->count()) { // RETREIVE FOLDERNAME QListWidgetItem * item = m_Controls->listWidget->takeItem(0); QString folderName = item->text(); // PARSING DIRECTORY PrintMemoryUsage(); clock.Start(folderName.toAscii()); std::vector<std::string> seriesUIDs(0); std::vector<std::vector<std::string> > seriesFilenames(0); #ifndef DGDCM2 Status(QString("Parsing directory %1").arg(folderName)); typedef itk::GDCMSeriesFileNames InputNamesType; InputNamesType::Pointer inputNames = InputNamesType::New(); inputNames->SetRecursive(m_Controls->m_DicomLoadRecursiveCheckbox->isChecked()); inputNames->SetUseSeriesDetails(true); inputNames->AddSeriesRestriction( "0020|0012" ); inputNames->SetInputDirectory( folderName.toAscii() ); mitk::ProgressBar::GetInstance()->Progress(); seriesUIDs = inputNames->GetSeriesUIDs(); unsigned int size = seriesUIDs.size(); for ( unsigned int i = 0 ; i < size ; ++i ) { seriesFilenames.push_back(inputNames->GetFileNames(seriesUIDs[i])); } #else Status("== Initial Directory Scan =="); gdcm::Directory d; d.Load( folderName.toStdString().c_str(), true ); // recursive ! const gdcm::Directory::FilenamesType &l1 = d.GetFilenames(); const unsigned int ntotalfiles = l1.size(); Status(QString(" ... found %1 different files").arg(ntotalfiles)); Status("Scanning Headers"); gdcm::Scanner s; const gdcm::Tag t1(0x0020,0x000d); // Study Instance UID const gdcm::Tag t2(0x0020,0x000e); // Series Instance UID const gdcm::Tag t5(0x0028, 0x0010); // number rows const gdcm::Tag t6(0x0028, 0x0011); // number cols s.AddTag( t1 ); s.AddTag( t2 ); s.AddTag( t5 ); s.AddTag( t6 ); bool b = s.Scan( d.GetFilenames() ); if( !b ) { Error("Scanner failed"); continue; } // Only get the DICOM files: gdcm::Directory::FilenamesType l2 = s.GetKeys(); const int nfiles = l2.size(); if(nfiles < 1) { Error("No DICOM files found"); continue; } Status(QString(" ... successfully scanned %1 headers.").arg(nfiles)); Status("Sorting"); const gdcm::Scanner::ValuesType &values1 = s.GetValues(t1); int nvalues = values1.size(); if(nvalues>1) { Error("Multiple studies found. Please limit to 1 study per folder"); continue; } const gdcm::Scanner::ValuesType &values5 = s.GetValues(t5); const gdcm::Scanner::ValuesType &values6 = s.GetValues(t6); if(values5.size()>1 || values6.size()>1) { Error("Folder contains images of unequal dimensions that cannot be combined in one 3d volume. ABORTING."); continue; } const gdcm::Scanner::ValuesType &values2 = s.GetValues(t2); int nSeries = values2.size(); gdcm::Directory::FilenamesType files; if(nSeries > 1) { gdcm::Sorter sorter; sorter.SetSortFunction( SortBySeriesUID ); sorter.StableSort( l2 ); files = sorter.GetFilenames(); } else { files = l2; } unsigned int nTotalAcquis = 0; if(nfiles % nSeries != 0) { Error("Number of files in series not equal, ABORTING"); continue; } int filesPerSeries = nfiles / nSeries; gdcm::Scanner::ValuesType::const_iterator it2 = values2.begin(); for(int i=0; i<nSeries; i++) { gdcm::Directory::FilenamesType sub( files.begin() + i*filesPerSeries, files.begin() + (i+1)*filesPerSeries); gdcm::Scanner s; const gdcm::Tag t3(0x0020,0x0012); // Acquisition ID const gdcm::Tag t4(0x0018, 0x0024); // Sequence Name (in case acquisitions are equal for all) // const gdcm::Tag t5(0x20,0x32) ); // Image Position (Patient) s.AddTag(t3); s.AddTag(t4); // s.AddTag(t5); bool b = s.Scan( sub ); if( !b ) { Error("Scanner failed"); continue; } gdcm::Sorter subsorter; gdcm::Scanner::ValuesType::const_iterator it; const gdcm::Scanner::ValuesType &values3 = s.GetValues(t3); const gdcm::Scanner::ValuesType &values4 = s.GetValues(t4);; unsigned int nAcquis = values3.size(); if(nAcquis != 1) { subsorter.SetSortFunction( SortByAcquisitionNumber ); it = values3.begin(); } else { nAcquis = values4.size(); subsorter.SetSortFunction( SortBySeqName ); it = values4.begin(); } nTotalAcquis += nAcquis; subsorter.Sort( sub ); if(filesPerSeries % nAcquis != 0) { Error("Number of files per acquisition not equal, ABORTING"); continue; } int filesPerAcqu = filesPerSeries / nAcquis; gdcm::Directory::FilenamesType subfiles = subsorter.GetFilenames(); for ( unsigned int j = 0 ; j < nAcquis ; ++j ) { std::string identifier = "serie_" + *it2 + "_acquis_" + *it++; gdcm::IPPSorter ippsorter; gdcm::Directory::FilenamesType ipplist((j)*filesPerAcqu+subfiles.begin(),(j+1)*filesPerAcqu+subfiles.begin()); ippsorter.SetComputeZSpacing( false ); if( !ippsorter.Sort( ipplist ) ) { Error(QString("Failed to sort acquisition %1, ABORTING").arg(identifier.c_str())); continue; } const std::vector<std::string> & list = ippsorter.GetFilenames(); seriesFilenames.push_back(list); seriesUIDs.push_back(identifier.c_str()); } ++it2; } if(nfiles % nTotalAcquis != 0) { Error("Number of files per acquisition differs between series, ABORTING"); continue; } int slices = nfiles/nTotalAcquis; Status(QString("Series is composed of %1 different 3D volumes with %2 slices.").arg(nTotalAcquis).arg(slices)); #endif // READING HEADER-INFOS PrintMemoryUsage(); Status(QString("Reading Headers %1").arg(folderName)); mitk::DicomDiffusionImageHeaderReader::Pointer headerReader; mitk::GroupDiffusionHeadersFilter::InputType inHeaders; unsigned int size2 = seriesUIDs.size(); for ( unsigned int i = 0 ; i < size2 ; ++i ) { Status(QString("Reading header image #%1/%2").arg(i+1).arg(size2)); headerReader = mitk::DicomDiffusionImageHeaderReader::New(); headerReader->SetSeriesDicomFilenames(seriesFilenames[i]); headerReader->Update(); inHeaders.push_back(headerReader->GetOutput()); //Status(std::endl; } mitk::ProgressBar::GetInstance()->Progress(); // // GROUP HEADERS // mitk::GroupDiffusionHeadersFilter::Pointer grouper // = mitk::GroupDiffusionHeadersFilter::New(); // mitk::GroupDiffusionHeadersFilter::OutputType outHeaders; // grouper->SetInput(inHeaders); // grouper->Update(); // outHeaders = grouper->GetOutput(); // READ VOLUMES PrintMemoryUsage(); Status(QString("Loading Volumes %1").arg(folderName)); typedef short PixelValueType; typedef mitk::DicomDiffusionImageReader< PixelValueType, 3 > VolumesReader; VolumesReader::Pointer vReader = VolumesReader::New(); VolumesReader::HeaderContainer hc = inHeaders; // hc.insert(hc.end(), outHeaders[1].begin(), outHeaders[1].end() ); // hc.insert(hc.end(), outHeaders[2].begin(), outHeaders[2].end() ); if(hc.size()>1) { vReader->SetHeaders(hc); vReader->Update(); VolumesReader::OutputImageType::Pointer vecImage; vecImage = vReader->GetOutput(); Status(QString("Volumes Loaded (%1)").arg(folderName)); // CONSTRUCT CONTAINER WITH DIRECTIONS typedef vnl_vector_fixed< double, 3 > GradientDirectionType; typedef itk::VectorContainer< unsigned int, GradientDirectionType > GradientDirectionContainerType; GradientDirectionContainerType::Pointer directions = GradientDirectionContainerType::New(); std::vector<double> b_vals; double maxb = 0; for(unsigned int i=0; i<hc.size(); i++) { double bv = hc[i]->bValue; if(maxb<bv) { maxb = bv; } b_vals.push_back(bv); } for(unsigned int i=0; i<hc.size(); i++) { vnl_vector_fixed<double, 3> vect = hc[i]->DiffusionVector; vect.normalize(); vect *= sqrt(b_vals[i]/maxb); directions->push_back(vect); } // DWI TO DATATREE PrintMemoryUsage(); Status(QString("Initializing Diffusion Image")); typedef mitk::DiffusionImage<PixelValueType> DiffVolumesType; DiffVolumesType::Pointer diffImage = DiffVolumesType::New(); diffImage->SetDirections(directions); diffImage->CorrectDKFZBrokenGradientScheme(m_Controls->m_Blur->value()); diffImage->SetVectorImage(vecImage); diffImage->SetB_Value(maxb); diffImage->InitializeFromVectorImage(); Status(QString("Diffusion Image initialized")); if(m_Controls->m_DicomLoadAverageDuplicatesCheckbox->isChecked()) { PrintMemoryUsage(); Status(QString("Averaging gradient directions")); diffImage->AverageRedundantGradients(m_Controls->m_Blur->value()); } //if(m_Controls->m_DicomLoadDuplicateIfSingleSliceCheckbox->isChecked()) // diffVolumes->DuplicateIfSingleSlice(); QString descr = QString("%1_%2_%3") .arg(((inHeaders)[0])->seriesDescription.c_str()) .arg(((inHeaders)[0])->seriesNumber) .arg(((inHeaders)[0])->patientName.c_str()); descr = descr.trimmed(); descr = descr.replace(" ", "_"); if(!m_OutputFolderNameSet) { node=mitk::DataNode::New(); node->SetData( diffImage ); GetDefaultDataStorage()->Add(node); SetDwiNodeProperties(node, descr.toStdString().c_str()); Status(QString("Image %1 added to datastorage").arg(descr)); } else { typedef mitk::NrrdDiffusionImageWriter<PixelValueType> WriterType; WriterType::Pointer writer = WriterType::New(); QString fullpath = QString("%1/%2.dwi") .arg(m_OutputFolderName) .arg(descr); std::string pathstring = itksys::SystemTools::ConvertToOutputPath(fullpath.toStdString().c_str()); writer->SetFileName(pathstring); writer->SetInput(diffImage); try { writer->Update(); } catch (itk::ExceptionObject &ex) { Error(QString("%1\n%2\n%3\n%4\n%5\n%6").arg(ex.GetNameOfClass()).arg(ex.GetFile()).arg(ex.GetLine()).arg(ex.GetLocation()).arg(ex.what()).arg(ex.GetDescription())); continue ; } Status(QString("Image %1 written to disc (%1)").arg(fullpath.toStdString().c_str())); } } else { Status(QString("No diffusion information found (%1)").arg(folderName)); } Status(QString("Finished processing %1 with memory:").arg(folderName)); PrintMemoryUsage(); clock.Stop(folderName.toAscii()); mitk::ProgressBar::GetInstance()->Progress(); } Status("Timing information"); clock.Report(); if(!m_OutputFolderNameSet && node.IsNotNull()) { mitk::BaseData::Pointer basedata = node->GetData(); if (basedata.IsNotNull()) { mitk::RenderingManager::GetInstance()->InitializeViews( basedata->GetTimeSlicedGeometry(), mitk::RenderingManager::REQUEST_UPDATE_ALL, true ); } } mitk::RenderingManager::GetInstance()->RequestUpdateAll(); } catch (itk::ExceptionObject &ex) { Error(QString("%1\n%2\n%3\n%4\n%5\n%6").arg(ex.GetNameOfClass()).arg(ex.GetFile()).arg(ex.GetLine()).arg(ex.GetLocation()).arg(ex.what()).arg(ex.GetDescription())); return ; } Status(QString("Finished import with memory:")); PrintMemoryUsage(); }
void QmitkDiffusionDicomImport::Error | ( | const char * | status ) | [protected] |
Definition at line 216 of file QmitkDiffusionDicomImportView.cpp.
References mitk::StatusBar::GetInstance(), and MITK_ERROR.
{ mitk::StatusBar::GetInstance()->DisplayErrorText(status); MITK_ERROR << status; }
void QmitkDiffusionDicomImport::Error | ( | std::string | status ) | [protected] |
Definition at line 210 of file QmitkDiffusionDicomImportView.cpp.
References mitk::StatusBar::GetInstance(), and MITK_ERROR.
{ mitk::StatusBar::GetInstance()->DisplayErrorText(status.c_str()); MITK_ERROR << status.c_str(); }
void QmitkDiffusionDicomImport::Error | ( | QString | status ) | [protected] |
Definition at line 204 of file QmitkDiffusionDicomImportView.cpp.
References mitk::StatusBar::GetInstance(), and MITK_ERROR.
Referenced by DicomLoadStartLoad().
{ mitk::StatusBar::GetInstance()->DisplayErrorText(status.toAscii()); MITK_ERROR << status.toStdString().c_str(); }
std::string QmitkDiffusionDicomImport::FormatMemorySize | ( | vcl_size_t | size ) | [protected] |
Definition at line 230 of file QmitkDiffusionDicomImportView.cpp.
Referenced by GetMemoryDescription().
{ double val = size; std::string descriptor("B"); if ( val >= 1000.0 ) { val /= 1024.0; descriptor = "KB"; } if ( val >= 1000.0 ) { val /= 1024.0; descriptor = "MB"; } if ( val >= 1000.0 ) { val /= 1024.0; descriptor = "GB"; } std::ostringstream str; str << std::fixed << std::setprecision(2) << val << " " << descriptor; return str.str(); }
std::string QmitkDiffusionDicomImport::FormatPercentage | ( | double | val ) | [protected] |
Definition at line 254 of file QmitkDiffusionDicomImportView.cpp.
Referenced by GetMemoryDescription().
{ std::ostringstream str; str << std::fixed << std::setprecision(2) << val << " " << "%"; return str.str(); }
std::string QmitkDiffusionDicomImport::GetMemoryDescription | ( | vcl_size_t | processSize, |
float | percentage | ||
) | [protected] |
Definition at line 261 of file QmitkDiffusionDicomImportView.cpp.
References FormatMemorySize(), and FormatPercentage().
Referenced by PrintMemoryUsage().
{ std::ostringstream str; str << FormatMemorySize(processSize) << " (" << FormatPercentage( percentage ) <<")" ; return str.str(); }
void QmitkDiffusionDicomImport::OutputClear | ( | ) | [protected, slot] |
Definition at line 118 of file QmitkDiffusionDicomImportView.cpp.
References m_Controls, m_OutputFolderName, m_OutputFolderNameSet, and Ui_QmitkDiffusionDicomImportControls::m_OutputLabel.
Referenced by CreateConnections().
{ m_OutputFolderName = ""; m_OutputFolderNameSet = false; m_Controls->m_OutputLabel->setText("... optional out-folder ..."); }
void QmitkDiffusionDicomImport::OutputSet | ( | ) | [protected, slot] |
Definition at line 103 of file QmitkDiffusionDicomImportView.cpp.
References m_Controls, m_OutputFolderName, m_OutputFolderNameSet, Ui_QmitkDiffusionDicomImportControls::m_OutputLabel, and m_Parent.
Referenced by CreateConnections().
{ // SELECT FOLDER DIALOG QFileDialog* w = new QFileDialog( m_Parent, QString("Select folders containing DWI data") ); w->setFileMode( QFileDialog::Directory ); // RETRIEVE SELECTION if ( w->exec() != QDialog::Accepted ) return; m_OutputFolderName = w->selectedFiles()[0]; m_OutputFolderNameSet = true; m_Controls->m_OutputLabel->setText(m_OutputFolderName); }
void QmitkDiffusionDicomImport::PrintMemoryUsage | ( | ) | [protected] |
Definition at line 222 of file QmitkDiffusionDicomImportView.cpp.
References GetMemoryDescription(), mitk::MemoryUtilities::GetProcessMemoryUsage(), mitk::MemoryUtilities::GetTotalSizeOfPhysicalRam(), and MITK_INFO.
Referenced by DicomLoadStartLoad().
{ size_t processSize = mitk::MemoryUtilities::GetProcessMemoryUsage(); size_t totalSize = mitk::MemoryUtilities::GetTotalSizeOfPhysicalRam(); float percentage = ( (float) processSize / (float) totalSize ) * 100.0; MITK_INFO << "Current memory usage: " << GetMemoryDescription( processSize, percentage ); }
void QmitkDiffusionDicomImport::SetDwiNodeProperties | ( | mitk::DataNode::Pointer | node, |
std::string | name | ||
) |
Definition at line 660 of file QmitkDiffusionDicomImportView.cpp.
References mitk::StringProperty::New(), and mitk::BoolProperty::New().
Referenced by DicomLoadStartLoad().
{ node->SetProperty( "IsDWIRawVolume", mitk::BoolProperty::New( true ) ); // set foldername as string property mitk::StringProperty::Pointer nameProp = mitk::StringProperty::New( name ); node->SetProperty( "name", nameProp ); }
void QmitkDiffusionDicomImport::Status | ( | const char * | status ) | [protected] |
Definition at line 198 of file QmitkDiffusionDicomImportView.cpp.
References mitk::StatusBar::GetInstance(), and MITK_INFO.
{ mitk::StatusBar::GetInstance()->DisplayText(status); MITK_INFO << status; }
void QmitkDiffusionDicomImport::Status | ( | QString | status ) | [protected] |
Definition at line 186 of file QmitkDiffusionDicomImportView.cpp.
References mitk::StatusBar::GetInstance(), and MITK_INFO.
Referenced by DicomLoadStartLoad().
{ mitk::StatusBar::GetInstance()->DisplayText(status.toAscii()); MITK_INFO << status.toStdString().c_str(); }
void QmitkDiffusionDicomImport::Status | ( | std::string | status ) | [protected] |
Definition at line 192 of file QmitkDiffusionDicomImportView.cpp.
References mitk::StatusBar::GetInstance(), and MITK_INFO.
{ mitk::StatusBar::GetInstance()->DisplayText(status.c_str()); MITK_INFO << status.c_str(); }
controls containing sliders for scrolling through the slices
Definition at line 101 of file QmitkDiffusionDicomImportView.h.
Referenced by AverageClicked(), CreateConnections(), CreateQtPartControl(), DicomLoadAddFolderNames(), DicomLoadDeleteFolderNames(), DicomLoadStartLoad(), OutputClear(), and OutputSet().
Definition at line 103 of file QmitkDiffusionDicomImportView.h.
QString QmitkDiffusionDicomImport::m_OutputFolderName [protected] |
Definition at line 107 of file QmitkDiffusionDicomImportView.h.
Referenced by DicomLoadStartLoad(), OutputClear(), and OutputSet().
bool QmitkDiffusionDicomImport::m_OutputFolderNameSet [protected] |
Definition at line 108 of file QmitkDiffusionDicomImportView.h.
Referenced by DicomLoadStartLoad(), OutputClear(), and OutputSet().
QWidget* QmitkDiffusionDicomImport::m_Parent [protected] |
Saves the parent of this view (this is the scrollarea created in CreatePartControl(void*)
Reimplemented from QmitkFunctionality.
Definition at line 105 of file QmitkDiffusionDicomImportView.h.
Referenced by CreateQtPartControl(), DicomLoadAddFolderNames(), and OutputSet().
const std::string QmitkDiffusionDicomImport::VIEW_ID = "org.mitk.views.diffusiondicomimport" [static] |
Definition at line 38 of file QmitkDiffusionDicomImportView.h.