diff --git a/Plugins/org.mitk.gui.qt.dicom/files.cmake b/Plugins/org.mitk.gui.qt.dicom/files.cmake index a250736622..41eca590e4 100644 --- a/Plugins/org.mitk.gui.qt.dicom/files.cmake +++ b/Plugins/org.mitk.gui.qt.dicom/files.cmake @@ -1,54 +1,54 @@ set(SRC_CPP_FILES ) set(INTERNAL_CPP_FILES mitkPluginActivator.cpp - QmitkDicomEditor.cpp + QmitkDicomBrowser.cpp QmitkDicomDirectoryListener.cpp QmitkStoreSCPLauncher.cpp QmitkStoreSCPLauncherBuilder.cpp QmitkDicomDataEventPublisher.cpp DicomEventHandler.cpp #QmitkDicomPreferencePage.cpp ) set(UI_FILES - src/internal/QmitkDicomEditorControls.ui + src/internal/QmitkDicomBrowserControls.ui ) set(MOC_H_FILES src/internal/mitkPluginActivator.h - src/internal/QmitkDicomEditor.h + src/internal/QmitkDicomBrowser.h src/internal/QmitkDicomDirectoryListener.h src/internal/QmitkStoreSCPLauncher.h src/internal/QmitkStoreSCPLauncherBuilder.h src/internal/QmitkDicomDataEventPublisher.h src/internal/DicomEventHandler.h #src/internal/QmitkDicomPreferencePage.h ) # list of resource files which can be used by the plug-in # system without loading the plug-ins shared library, # for example the icon used in the menu and tabs for the # plug-in views in the workbench set(CACHED_RESOURCE_FILES resources/icon.xpm plugin.xml ) # list of Qt .qrc files which contain additional resources # specific to this plugin set(QRC_FILES resources/dicom.qrc ) set(CPP_FILES ) foreach(file ${SRC_CPP_FILES}) set(CPP_FILES ${CPP_FILES} src/${file}) endforeach(file ${SRC_CPP_FILES}) foreach(file ${INTERNAL_CPP_FILES}) set(CPP_FILES ${CPP_FILES} src/internal/${file}) endforeach(file ${INTERNAL_CPP_FILES}) diff --git a/Plugins/org.mitk.gui.qt.dicom/plugin.xml b/Plugins/org.mitk.gui.qt.dicom/plugin.xml index 36cf43054f..fcfa280798 100644 --- a/Plugins/org.mitk.gui.qt.dicom/plugin.xml +++ b/Plugins/org.mitk.gui.qt.dicom/plugin.xml @@ -1,18 +1,18 @@ diff --git a/Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomEditor.cpp b/Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomBrowser.cpp similarity index 83% rename from Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomEditor.cpp rename to Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomBrowser.cpp index 8952d1c448..f084e5d70a 100644 --- a/Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomEditor.cpp +++ b/Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomBrowser.cpp @@ -1,200 +1,200 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ // Qmitk -#include "QmitkDicomEditor.h" +#include "QmitkDicomBrowser.h" #include "mitkPluginActivator.h" -const std::string QmitkDicomEditor::EDITOR_ID = "org.mitk.editors.dicomeditor"; -const QString QmitkDicomEditor::TEMP_DICOM_FOLDER_SUFFIX="TmpDicomFolder"; +const std::string QmitkDicomBrowser::EDITOR_ID = "org.mitk.editors.dicombrowser"; +const QString QmitkDicomBrowser::TEMP_DICOM_FOLDER_SUFFIX="TmpDicomFolder"; -QmitkDicomEditor::QmitkDicomEditor() +QmitkDicomBrowser::QmitkDicomBrowser() : m_Thread(new QThread()) , m_DicomDirectoryListener(new QmitkDicomDirectoryListener()) , m_StoreSCPLauncher(new QmitkStoreSCPLauncher(&m_Builder)) , m_Publisher(new QmitkDicomDataEventPublisher()) { } -QmitkDicomEditor::~QmitkDicomEditor() +QmitkDicomBrowser::~QmitkDicomBrowser() { m_Thread.quit(); m_Thread.wait(1000); delete m_DicomDirectoryListener; delete m_StoreSCPLauncher; delete m_Handler; delete m_Publisher; } -void QmitkDicomEditor::CreateQtPartControl(QWidget *parent ) +void QmitkDicomBrowser::CreateQtPartControl(QWidget *parent ) { m_Controls.setupUi( parent ); m_Controls.StoreSCPStatusLabel->setTextFormat(Qt::RichText); m_Controls.StoreSCPStatusLabel->setText(""); TestHandler(); SetPluginDirectory(); SetDatabaseDirectory("DatabaseDirectory"); CreateTemporaryDirectory(); StartDicomDirectoryListener(); m_Controls.m_ctkDICOMQueryRetrieveWidget->useProgressDialog(false); connect(m_Controls.tabWidget, SIGNAL(currentChanged(int)), this, SLOT(OnTabChanged(int))); connect(m_Controls.externalDataWidget,SIGNAL(SignalStartDicomImport(const QStringList&)), m_Controls.internalDataWidget,SLOT(OnStartDicomImport(const QStringList&))); connect(m_Controls.externalDataWidget,SIGNAL(SignalDicomToDataManager(const QHash&)), this,SLOT(OnViewButtonAddToDataManager(const QHash&))); connect(m_Controls.internalDataWidget,SIGNAL(SignalFinishedImport()),this, SLOT(OnDicomImportFinished())); connect(m_Controls.internalDataWidget,SIGNAL(SignalDicomToDataManager(const QHash&)), this,SLOT(OnViewButtonAddToDataManager(const QHash&))); } -void QmitkDicomEditor::Init(berry::IEditorSite::Pointer site, berry::IEditorInput::Pointer input) +void QmitkDicomBrowser::Init(berry::IEditorSite::Pointer site, berry::IEditorInput::Pointer input) { this->SetSite(site); this->SetInput(input); } -void QmitkDicomEditor::SetFocus() +void QmitkDicomBrowser::SetFocus() { } -berry::IPartListener::Events::Types QmitkDicomEditor::GetPartEventTypes() const +berry::IPartListener::Events::Types QmitkDicomBrowser::GetPartEventTypes() const { return Events::CLOSED | Events::HIDDEN | Events::VISIBLE; } -void QmitkDicomEditor::OnTabChanged(int page) +void QmitkDicomBrowser::OnTabChanged(int page) { if (page == 2)//Query/Retrieve is selected { QString storagePort = m_Controls.m_ctkDICOMQueryRetrieveWidget->getServerParameters()["StoragePort"].toString(); QString storageAET = m_Controls.m_ctkDICOMQueryRetrieveWidget->getServerParameters()["StorageAETitle"].toString(); if(!((m_Builder.GetAETitle()->compare(storageAET,Qt::CaseSensitive)==0)&& (m_Builder.GetPort()->compare(storagePort,Qt::CaseSensitive)==0))) { StopStoreSCP(); StartStoreSCP(); } } } -void QmitkDicomEditor::OnDicomImportFinished() +void QmitkDicomBrowser::OnDicomImportFinished() { m_Controls.tabWidget->setCurrentIndex(0); } -void QmitkDicomEditor::StartDicomDirectoryListener() +void QmitkDicomBrowser::StartDicomDirectoryListener() { if(!m_Thread.isRunning()) { m_DicomDirectoryListener->SetDicomListenerDirectory(m_TempDirectory); m_DicomDirectoryListener->SetDicomFolderSuffix(TEMP_DICOM_FOLDER_SUFFIX); connect(m_DicomDirectoryListener,SIGNAL(SignalStartDicomImport(const QStringList&)),m_Controls.internalDataWidget,SLOT(OnStartDicomImport(const QStringList&)),Qt::DirectConnection); //connect(m_Controls.internalDataWidget,SIGNAL(SignalFinishedImport()),m_DicomDirectoryListener,SLOT(OnImportFinished()),Qt::DirectConnection); m_DicomDirectoryListener->moveToThread(&m_Thread); m_Thread.start(); } } -void QmitkDicomEditor::TestHandler() +void QmitkDicomBrowser::TestHandler() { m_Handler = new DicomEventHandler(); m_Handler->SubscribeSlots(); } -void QmitkDicomEditor::OnViewButtonAddToDataManager(QHash eventProperties) +void QmitkDicomBrowser::OnViewButtonAddToDataManager(QHash eventProperties) { ctkDictionary properties; // properties["PatientName"] = eventProperties["PatientName"]; // properties["StudyUID"] = eventProperties["StudyUID"]; // properties["StudyName"] = eventProperties["StudyName"]; // properties["SeriesUID"] = eventProperties["SeriesUID"]; // properties["SeriesName"] = eventProperties["SeriesName"]; properties["FilesForSeries"] = eventProperties["FilesForSeries"]; m_Publisher->PublishSignals(mitk::PluginActivator::getContext()); m_Publisher->AddSeriesToDataManagerEvent(properties); } -void QmitkDicomEditor::StartStoreSCP() +void QmitkDicomBrowser::StartStoreSCP() { QString storagePort = m_Controls.m_ctkDICOMQueryRetrieveWidget->getServerParameters()["StoragePort"].toString(); QString storageAET = m_Controls.m_ctkDICOMQueryRetrieveWidget->getServerParameters()["StorageAETitle"].toString(); m_Builder.AddPort(storagePort)->AddAETitle(storageAET)->AddTransferSyntax()->AddOtherNetworkOptions()->AddMode()->AddOutputDirectory(m_TempDirectory); m_StoreSCPLauncher = new QmitkStoreSCPLauncher(&m_Builder); connect(m_StoreSCPLauncher, SIGNAL(SignalStatusOfStoreSCP(const QString&)), this, SLOT(OnStoreSCPStatusChanged(const QString&))); connect(m_StoreSCPLauncher ,SIGNAL(SignalStartImport(const QStringList&)),m_Controls.internalDataWidget,SLOT(OnStartDicomImport(const QStringList&))); connect(m_StoreSCPLauncher ,SIGNAL(SignalStoreSCPError(const QString&)),m_DicomDirectoryListener,SLOT(OnDicomNetworkError(const QString&)),Qt::DirectConnection); connect(m_StoreSCPLauncher ,SIGNAL(SignalStoreSCPError(const QString&)),this,SLOT(OnDicomNetworkError(const QString&)),Qt::DirectConnection); m_StoreSCPLauncher->StartStoreSCP(); } -void QmitkDicomEditor::OnStoreSCPStatusChanged(const QString& status) +void QmitkDicomBrowser::OnStoreSCPStatusChanged(const QString& status) { m_Controls.StoreSCPStatusLabel->setText(" "+status); } -void QmitkDicomEditor::OnDicomNetworkError(const QString& status) +void QmitkDicomBrowser::OnDicomNetworkError(const QString& status) { m_Controls.StoreSCPStatusLabel->setText(" "+status); } -void QmitkDicomEditor::StopStoreSCP() +void QmitkDicomBrowser::StopStoreSCP() { delete m_StoreSCPLauncher; } -void QmitkDicomEditor::SetPluginDirectory() +void QmitkDicomBrowser::SetPluginDirectory() { m_PluginDirectory = mitk::PluginActivator::getContext()->getDataFile("").absolutePath(); m_PluginDirectory.append("/"); } -void QmitkDicomEditor::SetDatabaseDirectory(const QString& databaseDirectory) +void QmitkDicomBrowser::SetDatabaseDirectory(const QString& databaseDirectory) { m_DatabaseDirectory.clear(); m_DatabaseDirectory.append(m_PluginDirectory); m_DatabaseDirectory.append(databaseDirectory); m_Controls.internalDataWidget->SetDatabaseDirectory(m_DatabaseDirectory); } -void QmitkDicomEditor::CreateTemporaryDirectory() +void QmitkDicomBrowser::CreateTemporaryDirectory() { QDir tmp; QString tmpPath = QDir::tempPath(); m_TempDirectory.clear(); m_TempDirectory.append(tmpPath); m_TempDirectory.append(QString("/")); m_TempDirectory.append(TEMP_DICOM_FOLDER_SUFFIX); m_TempDirectory.append(QString(".")); m_TempDirectory.append(QTime::currentTime().toString("hhmmsszzz")); m_TempDirectory.append(QString::number(QCoreApplication::applicationPid())); tmp.mkdir(QDir::toNativeSeparators( m_TempDirectory )); } diff --git a/Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomEditor.h b/Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomBrowser.h similarity index 85% rename from Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomEditor.h rename to Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomBrowser.h index 8586df4398..dfa44ce2b8 100644 --- a/Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomEditor.h +++ b/Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomBrowser.h @@ -1,150 +1,150 @@ /*========================================================================= The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#ifndef QmitkDicomEditor_h -#define QmitkDicomEditor_h +#ifndef QmitkDicomBrowser_h +#define QmitkDicomBrowser_h // Blueberry #include #include #include // MITK #include "DicomEventHandler.h" #include "QmitkDicomDataEventPublisher.h" #include "QmitkDicomDirectoryListener.h" #include "QmitkStoreSCPLauncher.h" #include "QmitkStoreSCPLauncherBuilder.h" -#include "ui_QmitkDicomEditorControls.h" +#include "ui_QmitkDicomBrowserControls.h" #include // Qt #include #include #include #include #include /** -* \brief QmitkDicomEditor is an editor providing functionality for dicom storage and import and query retrieve functionality. +* \brief QmitkDicomBrowser is an editor providing functionality for dicom storage and import and query retrieve functionality. * * \sa berry::IPartListener * \ingroup ${plugin_target}_internal */ -class DICOM_EXPORT QmitkDicomEditor : public berry::QtEditorPart, virtual public berry::IPartListener +class DICOM_EXPORT QmitkDicomBrowser : public berry::QtEditorPart, virtual public berry::IPartListener { // this is needed for all Qt objects that should have a Qt meta-object // (everything that derives from QObject and wants to have signal/slots) Q_OBJECT public: - berryObjectMacro(QmitkDicomEditor); + berryObjectMacro(QmitkDicomBrowser); static const std::string EDITOR_ID; static const QString TEMP_DICOM_FOLDER_SUFFIX; /** - * \brief QmitkDicomEditor constructor. + * \brief QmitkDicomBrowser constructor. */ - QmitkDicomEditor(); + QmitkDicomBrowser(); /** - * \brief QmitkDicomEditor destructor. + * \brief QmitkDicomBrowser destructor. */ - virtual ~QmitkDicomEditor(); + virtual ~QmitkDicomBrowser(); /** * \brief Init initialize the editor. */ void Init(berry::IEditorSite::Pointer site, berry::IEditorInput::Pointer input); void SetFocus(); void DoSave() {} void DoSaveAs() {} bool IsDirty() const { return false; } bool IsSaveAsAllowed() const { return false; } signals: /** * \brief SignalStartDicomImport is enitted when dicom directory for import was selected. */ void SignalStartDicomImport(const QString&); protected slots: /// \brief Called when import is finished. void OnDicomImportFinished(); /// \brief Called when Query Retrieve or Import Folder was clicked. void OnTabChanged(int); /// \brief Called when view button is clicked. Sends out an event for adding the current selected file to the mitkDataStorage. void OnViewButtonAddToDataManager(QHash eventProperties); /// \brief Called when status of dicom storage provider changes. void OnStoreSCPStatusChanged(const QString& status); /// \brief Called when dicom storage provider emits a network error. void OnDicomNetworkError(const QString& status); protected: /// \brief StartStoreSCP starts dicom storage provider. void StartStoreSCP(); /// \brief StopStoreSCP stops dicom storage provider. void StopStoreSCP(); /// \brief TestHandler initializes event handler. void TestHandler(); /// \brief Sets database directory. void SetDatabaseDirectory(const QString& databaseDirectory); /// \brief CreateTemporaryDirectory creates temporary directory in which temorary dicom objects are stored. void CreateTemporaryDirectory(); /// \brief StartDicomDirectoryListener starts dicom directory listener. void StartDicomDirectoryListener(); /** - * \brief CreateQtPartControl(QWidget *parent) sets the view objects from ui_QmitkDicomeditorControls.h. + * \brief CreateQtPartControl(QWidget *parent) sets the view objects from ui_QmitkDicomBrowserControls.h. * * \param parent is a pointer to the parent widget */ void CreateQtPartControl(QWidget *parent); /// \brief SetPluginDirectory Sets plugin directory. void SetPluginDirectory(); Events::Types GetPartEventTypes() const; ctkFileDialog* m_ImportDialog; - Ui::QmitkDicomEditorControls m_Controls; + Ui::QmitkDicomBrowserControls m_Controls; QThread m_Thread; QmitkDicomDirectoryListener* m_DicomDirectoryListener; QmitkStoreSCPLauncherBuilder m_Builder; QmitkStoreSCPLauncher* m_StoreSCPLauncher; DicomEventHandler* m_Handler; QmitkDicomDataEventPublisher* m_Publisher; QString m_PluginDirectory; QString m_TempDirectory; QString m_DatabaseDirectory; }; -#endif // QmitkDicomEditor_h +#endif // QmitkDicomBrowser_h diff --git a/Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomEditorControls.ui b/Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomBrowserControls.ui similarity index 99% rename from Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomEditorControls.ui rename to Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomBrowserControls.ui index d98a41b59a..7dfd7b9d0a 100644 --- a/Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomEditorControls.ui +++ b/Plugins/org.mitk.gui.qt.dicom/src/internal/QmitkDicomBrowserControls.ui @@ -1,307 +1,307 @@ - QmitkDicomEditorControls - + QmitkDicomBrowserControls + 0 0 752 696 0 0 0 0 false QmitkTemplate true 0 0 738 682 0 0 true 0 0 QTabWidget::North QTabWidget::Rounded 2 32 32 0 0 :/org.mitk.gui.qt.dicom/drive-harddisk_32.png:/org.mitk.gui.qt.dicom/drive-harddisk_32.png Local Storage Manage your local dicom imports 0 0 0 0 :/org.mitk.gui.qt.dicom/import_32.png :/org.mitk.gui.qt.dicom/import_32.png:/org.mitk.gui.qt.dicom/import_32.png Import Import dicom data from any hard drive 0 0 0 0 :/org.mitk.gui.qt.dicom/network-workgroup_32.png:/org.mitk.gui.qt.dicom/network-workgroup_32.png Query Retrieve Query and retrieve dicom data from server 0 0 color: rgb(255, 0, 0); Warning: This is currently an experimental feature! 0 0 0 0 QFrame::StyledPanel QFrame::Raised 0 0 Qt::Horizontal QSizePolicy::Minimum 4 20 0 0 Qt::RichText Qt::Horizontal 40 20 Qt::Vertical 20 40 ctkDICOMQueryRetrieveWidget QWidget
ctkDICOMQueryRetrieveWidget.h
1
QmitkDicomLocalStorageWidget QWidget
Qmitk/QmitkDicomLocalStorageWidget.h
1
QmitkDicomExternalDataWidget QWidget
Qmitk/QmitkDicomExternalDataWidget.h
1
OnChangePage(int)
diff --git a/Plugins/org.mitk.gui.qt.dicom/src/internal/mitkPluginActivator.cpp b/Plugins/org.mitk.gui.qt.dicom/src/internal/mitkPluginActivator.cpp index ec771fb529..516fd7e11e 100644 --- a/Plugins/org.mitk.gui.qt.dicom/src/internal/mitkPluginActivator.cpp +++ b/Plugins/org.mitk.gui.qt.dicom/src/internal/mitkPluginActivator.cpp @@ -1,47 +1,47 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkPluginActivator.h" #include -#include "QmitkDicomEditor.h" +#include "QmitkDicomBrowser.h" //#include "QmitkDicomPreferencePage.h" namespace mitk { ctkPluginContext* PluginActivator::pluginContext = 0; void PluginActivator::start(ctkPluginContext* context) { - BERRY_REGISTER_EXTENSION_CLASS(QmitkDicomEditor, context) + BERRY_REGISTER_EXTENSION_CLASS(QmitkDicomBrowser, context) //BERRY_REGISTER_EXTENSION_CLASS(QmitkDicomPreferencePage, context) pluginContext = context; } void PluginActivator::stop(ctkPluginContext* context) { Q_UNUSED(context) pluginContext = NULL; } ctkPluginContext* PluginActivator::getContext() { return pluginContext; } } Q_EXPORT_PLUGIN2(org_mitk_gui_qt_dicom, mitk::PluginActivator)