diff --git a/Modules/CppRestSdk/files.cmake b/Modules/CppRestSdk/files.cmake index e113f9def5..705ca888fc 100644 --- a/Modules/CppRestSdk/files.cmake +++ b/Modules/CppRestSdk/files.cmake @@ -1,17 +1,14 @@ file(GLOB_RECURSE H_FILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/include/*") set(CPP_FILES - mitkRESTServer.cpp - mitkRESTClient.cpp - mitkDICOMWeb.cpp mitkRESTClientMicroService.cpp mitkRESTServerMicroService.cpp mitkCppRestSdkActivator.cpp mitkIRESTManager.cpp mitkRESTManager.cpp mitkIRESTObserver.cpp mitkCppRestSdk.cpp ) set(MOC_H_FILES include/mitkRESTServerMicroService.h include/mitkRESTManager.h) \ No newline at end of file diff --git a/Modules/CppRestSdk/include/mitkDICOMWeb.h b/Modules/CppRestSdk/include/mitkDICOMWeb.h deleted file mode 100644 index 6f95cebc85..0000000000 --- a/Modules/CppRestSdk/include/mitkDICOMWeb.h +++ /dev/null @@ -1,81 +0,0 @@ -/*=================================================================== - -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 MITKDICOMWEB_H -#define MITKDICOMWEB_H - -#include "MitkCppRestSdkExports.h" - -#include "mitkRESTClient.h" - -namespace mitk -{ - class MITKCPPRESTSDK_EXPORT DICOMWeb : public RESTClient - { - public: - /** - * @brief Creates a client with the given base URL used to execute DICOMweb requests - * - * @param url the base URL for a PACS implementation like dcm4chee - */ - DICOMWeb(utility::string_t url); - virtual ~DICOMWeb(); - - /** - * @brief Executes a WADO-RS request for a single instance which should be stored to the given filePath. - * The given studyUID, seriesUID, instanceUID defines the requested DICOM object. - * - * @param filePath the path at which the requested file should be stored - * @param studyUID the studyUID of the requested DICOM object - * @param seriesUID the seriesUID of the requested DICOM object - * @param instanceUID the instanceUID of the requested DICOM object - * @return a task to wait for - */ - pplx::task WadoRS(const utility::string_t filePath, - std::string studyUID, - std::string seriesUID, - std::string instanceUID); - - /** - * @brief Executes a WADO-RS request for all instances of a DICOM series which should be stored to the given - * folderPath. The given studyUID, seriesUID, defines the requested DICOM series. - * - * @param folderPath the path at which the requested series of files should be stored - * @param studyUID the studyUID of the requested DICOM object - * @param seriesUID the seriesUID of the requested DICOM object - * @return task to wait for - */ - pplx::task WadoRS(const utility::string_t folderPath, std::string studyUID, std::string seriesUID); - - /** - * @brief Executes a STOW-RS request with a DICOM instance given by the filePath which should be included in the - * study given by the studyUID. * * @param filePath the path at which the file to be stored exists - * @param studyUID the UID of the study at which the DICOM object should be stored - * @return task to wait for - */ - pplx::task StowRS(utility::string_t filePath, std::string studyUID); - - /** - * @brief Execute a QIDO-RS request with the given params on instance level - * - * @param params a map of specific QIDO parameters which filters the instance results - * @return task to wait for with a json response containing filtered instances by the given parameters - */ - pplx::task QidoRSInstances(std::map params); - }; -}; - -#endif // MITKDICOMWEB_H diff --git a/Modules/CppRestSdk/include/mitkRESTClient.h b/Modules/CppRestSdk/include/mitkRESTClient.h deleted file mode 100644 index 47ca6f5f85..0000000000 --- a/Modules/CppRestSdk/include/mitkRESTClient.h +++ /dev/null @@ -1,92 +0,0 @@ -/*=================================================================== - -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 MITKRESTCLIENT_H -#define MITKRESTCLIENT_H - -#include "cpprest/asyncrt_utils.h" -#include "cpprest/containerstream.h" -#include "cpprest/filestream.h" -#include "cpprest/http_client.h" -#include "cpprest/json.h" -#include "cpprest/producerconsumerstream.h" -#include "cpprest/uri.h" - -#include "MitkCppRestSdkExports.h" - -typedef web::http::client::http_client MitkClient; -typedef web::http::http_request MitkRequest; -typedef web::http::http_response MitkResponse; -typedef web::http::methods MitkRESTMethods; -typedef web::http::uri_builder MitkUriBuilder; -typedef web::http::status_codes MitkRestStatusCodes; -typedef web::json::json_exception MitkJsonException; - -namespace mitk -{ - class MITKCPPRESTSDK_EXPORT RESTClient - { - public: - ; - - /** - * @brief Creates a new client object containing the given base url which is extended by the uri of the member methods - * - * @param url represents the base URL which is extended by the member methods and used as target for HTTP requests - */ - RESTClient(utility::string_t url); - virtual ~RESTClient(); - - /** - * @brief Executes a HTTP POST request with given uri and the file given by the filePath - * - * @param uri defines the URI which extends the base URL of this object resulting the target of the HTTP request - * @param filePath the path to the file which shall be included in the message body as multipart - * @return task to wait for - */ - pplx::task Post(utility::string_t uri, utility::string_t filePath); - - /** - * @brief Executes a HTTP GET request with the given uri and stores the byte stream in a file given by the filePath - * - * @param filePath the file path at which the received byte stream is stored - * @param uri the URI which extends the base URL of this object resulting the target of the HTTP request - * @return task to wait for - */ - pplx::task Get(const utility::string_t filePath, utility::string_t uri); - - /** - * @brief Executes a HTTP GET request with the given uri and returns a json object - * - * @param uri the URI which extends the base URL of this object resulting the target of the HTTP request - * @return task with to wait for with resulting json object - */ - pplx::task Get(utility::string_t uri); - - /** - * @brief Executes a HTTP PUT request to the given uri containing the given content json object - * - * @param uri the URI which extends the base URL of this object resulting the target of the HTTP request - * @param content the json body for the PUT request - */ - pplx::task PUT(utility::string_t uri, web::json::value content); - - protected: - MitkClient *m_Client; - }; -}; - -#endif // MITKRESTCLIENT_H diff --git a/Modules/CppRestSdk/include/mitkRESTServer.h b/Modules/CppRestSdk/include/mitkRESTServer.h deleted file mode 100644 index 321bb55673..0000000000 --- a/Modules/CppRestSdk/include/mitkRESTServer.h +++ /dev/null @@ -1,102 +0,0 @@ -/*=================================================================== - -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 MITKRESTSERVER_H -#define MITKRESTSERVER_H - -#include - -#include "cpprest/asyncrt_utils.h" -#include "cpprest/containerstream.h" -#include "cpprest/filestream.h" -#include "cpprest/http_listener.h" -#include "cpprest/json.h" -#include "cpprest/producerconsumerstream.h" -#include "cpprest/uri.h" - -#include "MitkCppRestSdkExports.h" - -typedef web::http::experimental::listener::http_listener MitkListener; -typedef web::http::http_request MitkRequest; -typedef web::http::http_response MitkResponse; -typedef web::http::methods MitkRESTMethods; -typedef web::http::status_codes MitkRestStatusCodes; -typedef web::json::json_exception MitkJsonException; - -namespace mitk -{ - class MITKCPPRESTSDK_EXPORT RESTServer : public QObject - { - public: - RESTServer(); - - /** - * @brief Creates an server listening to the given URL - * - * @param url the URL at which the server is listening for requests - */ - RESTServer(utility::string_t url); - virtual ~RESTServer(); - - /** - * @brief Opens the server connection and starts the listening process - * - * @return a task to wait for - */ - pplx::task Open() { return m_Listener.open(); } - - /** - * @brief Closes the server connection and closes the listening process - * - * @return a task to wait for - */ - pplx::task Close() { return m_Listener.close(); } - - protected: - - /** - * @brief Handle for incoming GET requests - * - * @param MitkRequest incoming request object - */ - virtual void HandleGet(MitkRequest){}; - - /** - * @brief Handle for incoming PUT requests - * - * @param MitkRequest incoming request object - */ - virtual void HandlePut(MitkRequest){}; - - /** - * @brief Handle for incoming POST requests - * - * @param MitkRequest incoming request object - */ - virtual void HandlePost(MitkRequest){}; - - /** - * @brief Handle for incoming DELETE requests - * - * @param MitkRequest incoming request object - */ - virtual void HandleDelete(MitkRequest){}; - - MitkListener m_Listener; - }; -}; - -#endif // MITKRESTSERVER_H diff --git a/Modules/CppRestSdk/src/mitkDICOMWeb.cpp b/Modules/CppRestSdk/src/mitkDICOMWeb.cpp deleted file mode 100644 index 5cd68079a9..0000000000 --- a/Modules/CppRestSdk/src/mitkDICOMWeb.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/*=================================================================== - -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 "mitkDICOMWeb.h" -#include "mitkRESTUtil.h" -#include - -mitk::DICOMWeb::DICOMWeb(utility::string_t url) : mitk::RESTClient(url) -{ -} - -mitk::DICOMWeb::~DICOMWeb() -{ -} - -pplx::task mitk::DICOMWeb::QidoRSInstances(std::map params) -{ - MitkUriBuilder queryBuilder(U("rs/instances")); - - for (auto const& element : params) - { - queryBuilder.append_query(mitk::RESTUtil::convertToTString(element.first), mitk::RESTUtil::convertToTString(element.second)); - } - - MITK_INFO << utility::conversions::to_utf8string(queryBuilder.to_string()); - MitkRequest instances(MitkRESTMethods::GET); - instances.set_request_uri(queryBuilder.to_string()); - instances.headers().add(U("Accept"), U("application/json")); - - return m_Client->request(instances).then([=](MitkResponse response) - { - auto status = response.status_code(); - MITK_INFO << " status: " << status; - - if (status != web::http::status_codes::OK) { - MITK_ERROR << "no dicom series found for query " << utility::conversions::to_utf8string(queryBuilder.to_string()); - mitkThrow() << "no dicom series found for query " << utility::conversions::to_utf8string(queryBuilder.to_string()); - } - - return response.extract_json().get(); - }); -} - -pplx::task mitk::DICOMWeb::WadoRS(utility::string_t filePath, std::string studyUID, std::string seriesUID, std::string instanceUID) -{ - MitkUriBuilder builder(U("wado")); - builder.append_query(U("requestType"), U("WADO")); - builder.append_query(U("studyUID"), mitk::RESTUtil::convertToTString(studyUID)); - builder.append_query(U("seriesUID"), mitk::RESTUtil::convertToTString(seriesUID)); - builder.append_query(U("objectUID"), mitk::RESTUtil::convertToTString(instanceUID)); - builder.append_query(U("contentType"), U("application/dicom")); - return Get(filePath, builder.to_string()); -} - -pplx::task mitk::DICOMWeb::WadoRS(const utility::string_t folderPath, std::string studyUID, std::string seriesUID) -{ - typedef std::map ParamMap; - ParamMap seriesInstancesParams; - - seriesInstancesParams.insert(ParamMap::value_type({"StudyInstanceUID"}, studyUID)); - seriesInstancesParams.insert(ParamMap::value_type({"SeriesInstanceUID"}, seriesUID)); - - return QidoRSInstances(seriesInstancesParams).then([=](web::json::value jsonResult) -> pplx::task - { - auto jsonListResult = jsonResult; - auto resultArray = jsonListResult.as_array(); - - auto firstFileName = std::string(); - - std::vector> tasks; - - for (unsigned short i = 0; i < resultArray.size(); i++) - { - try - { - auto firstResult = resultArray[i]; - auto sopInstanceUIDKey = firstResult.at(U("00080018")); - auto sopInstanceObject = sopInstanceUIDKey.as_object(); - auto valueKey = sopInstanceObject.at(U("Value")); - auto valueArray = valueKey.as_array(); - auto sopInstanceUID = valueArray[0].as_string(); - - auto fileName = utility::string_t(sopInstanceUID).append(U(".dcm")); - - // save first file name as result to load series - if (i == 0) - { - firstFileName = utility::conversions::to_utf8string(fileName); - } - - auto filePath = utility::string_t(folderPath).append(fileName); - auto task = WadoRS(filePath, studyUID, seriesUID, mitk::RESTUtil::convertToUtf8(sopInstanceUID)); - tasks.push_back(task); - } - catch (const web::json::json_exception& e) - { - MITK_ERROR << e.what(); - } - } - - auto joinTask = pplx::when_all(begin(tasks), end(tasks)); - - auto returnTask = joinTask.then([=](void) -> std::string - { - auto folderPathUtf8 = utility::conversions::to_utf8string(folderPath); - auto result = folderPathUtf8 + firstFileName; - - return result; - }); - - return returnTask; - }); -} - -pplx::task mitk::DICOMWeb::StowRS(utility::string_t filePath, std::string studyUID) -{ - // TODO: add data - MitkUriBuilder builder(U("rs/studies")); - builder.append_path(mitk::RESTUtil::convertToTString(studyUID)); - - return Post(builder.to_string(), filePath); -} \ No newline at end of file diff --git a/Modules/CppRestSdk/src/mitkRESTClient.cpp b/Modules/CppRestSdk/src/mitkRESTClient.cpp deleted file mode 100644 index b12abdec29..0000000000 --- a/Modules/CppRestSdk/src/mitkRESTClient.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/*=================================================================== - -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 "mitkRESTClient.h" -#include "mitkRESTUtil.h" - -#include - -mitk::RESTClient::RESTClient(utility::string_t url) -{ - m_Client = new MitkClient(url); -} - -mitk::RESTClient::~RESTClient() -{ - delete m_Client; -} - -pplx::task mitk::RESTClient::PUT(utility::string_t uri, web::json::value content) -{ - MITK_DEBUG << "Calling PUT with " << utility::conversions::to_utf8string(uri) << " on client " - << mitk::RESTUtil::convertToUtf8(m_Client->base_uri().to_string()); - - MitkRequest putRequest(MitkRESTMethods::PUT); - putRequest.set_request_uri(uri); - putRequest.set_body(content); - - return m_Client->request(putRequest).then([=](MitkResponse response) - { - auto status = response.status_code(); - MITK_INFO << " status: " << status; - - if (status != web::http::status_codes::OK) { - mitkThrow() << "response was not OK"; - } - - return response.extract_json().get(); - }); -} - -pplx::task mitk::RESTClient::Get(utility::string_t uri) -{ - MITK_INFO << "Calling GET with " << utility::conversions::to_utf8string(uri) << " on client " - << mitk::RESTUtil::convertToUtf8(m_Client->base_uri().to_string()); - - MitkRequest getRequest(MitkRESTMethods::GET); - getRequest.set_request_uri(uri); - - return m_Client->request(getRequest).then([=](MitkResponse response) - { - auto status = response.status_code(); - MITK_INFO << " status: " << status; - - if (status != web::http::status_codes::OK) { - mitkThrow() << "response was not OK"; - } - - return response.extract_json().get(); - }); -} - -pplx::task mitk::RESTClient::Get(utility::string_t filePath, utility::string_t uri) -{ - MITK_DEBUG << "Calling GET with " << utility::conversions::to_utf8string(uri) << " on client " - << mitk::RESTUtil::convertToUtf8(m_Client->base_uri().to_string()) << " save into " - << mitk::RESTUtil::convertToUtf8(filePath); - - auto fileBuffer = std::make_shared>(); - - return concurrency::streams::file_buffer::open(filePath, std::ios::out).then([=](concurrency::streams::streambuf outFile) -> pplx::task - { - *fileBuffer = outFile; - - return m_Client->request(MitkRESTMethods::GET, uri); - }) - // Write the response body into the file buffer. - .then([=](MitkResponse response) -> pplx::task - { - auto status = response.status_code(); - MITK_DEBUG << "Status code: " << status; - - if (status != web::http::status_codes::OK) { - mitkThrow() << "GET ended up with response " << mitk::RESTUtil::convertToUtf8(response.to_string()); - } - - return response.body().read_to_end(*fileBuffer); - }) - // Close the file buffer. - .then([=](size_t) - { - return fileBuffer->close(); - }); -} - - -pplx::task mitk::RESTClient::Post(utility::string_t uri, utility::string_t filePath) -{ - // this is the working stow-rs request which supports just one dicom file packed into a multipart message - std::basic_ifstream input(filePath, std::ios::binary); - - std::vector result; - std::vector buffer((std::istreambuf_iterator(input)), (std::istreambuf_iterator())); - - // reuse 'content-type' variable or struct to be more flexible, in future more than one file should also be supported.. - std::string head = ""; - head += "\r\n--boundary"; - head += "\r\nContent-Type: " + mitk::RESTUtil::convertToUtf8(U("application/dicom")) + "\r\n\r\n"; - - std::vector bodyVector(head.begin(), head.end()); - - std::string tail = ""; - tail += "\r\n--boundary--"; - - result.insert(result.end(), bodyVector.begin(), bodyVector.end()); - result.insert(result.end(), buffer.begin(), buffer.end()); - result.insert(result.end(), tail.begin(), tail.end()); - - MitkRequest postRequest(MitkRESTMethods::POST); - postRequest.set_request_uri(uri); - postRequest.headers().add(U("Content-Type"), "multipart/related; type=\"application/dicom\"; boundary=boundary"); - postRequest.set_body(result); - - MITK_INFO << "Request: " << mitk::RESTUtil::convertToUtf8(postRequest.to_string()); - return m_Client->request(postRequest).then([](MitkResponse response) - { - auto status = response.status_code(); - if (status != web::http::status_codes::OK) { - mitkThrow() << "POST ended up with response " << mitk::RESTUtil::convertToUtf8(response.to_string()); - } - MITK_INFO << "Response: " << mitk::RESTUtil::convertToUtf8(response.to_string()); - }); - -} \ No newline at end of file diff --git a/Modules/CppRestSdk/src/mitkRESTServer.cpp b/Modules/CppRestSdk/src/mitkRESTServer.cpp deleted file mode 100644 index 04f4ccdcd7..0000000000 --- a/Modules/CppRestSdk/src/mitkRESTServer.cpp +++ /dev/null @@ -1,25 +0,0 @@ -/*=================================================================== - -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 "mitkRESTServer.h" - -#include - -mitk::RESTServer::RESTServer() {} - -mitk::RESTServer::RESTServer(utility::string_t url) : m_Listener(url) {} - -mitk::RESTServer::~RESTServer() {} \ No newline at end of file diff --git a/Plugins/PluginList.cmake b/Plugins/PluginList.cmake index a6919629a4..e3b4460cba 100644 --- a/Plugins/PluginList.cmake +++ b/Plugins/PluginList.cmake @@ -1,117 +1,116 @@ # Plug-ins must be ordered according to their dependencies set(MITK_PLUGINS org.blueberry.core.runtime:ON org.blueberry.core.expressions:OFF org.blueberry.core.commands:OFF org.blueberry.core.jobs:OFF org.blueberry.ui.qt:OFF org.blueberry.ui.qt.help:ON org.blueberry.ui.qt.log:ON org.blueberry.ui.qt.objectinspector:OFF #org.blueberry.test:ON #org.blueberry.uitest:ON #Testing/org.blueberry.core.runtime.tests:ON #Testing/org.blueberry.osgi.tests:ON org.mitk.core.services:ON org.mitk.gui.common:ON org.mitk.planarfigure:ON org.mitk.core.ext:OFF org.mitk.core.jobs:OFF org.mitk.gui.qt.application:ON org.mitk.gui.qt.coreapplication:OFF org.mitk.gui.qt.ext:OFF org.mitk.gui.qt.extapplication:OFF org.mitk.gui.qt.common:ON org.mitk.gui.qt.stdmultiwidgeteditor:ON org.mitk.gui.qt.common.legacy:OFF org.mitk.gui.qt.cmdlinemodules:OFF org.mitk.gui.qt.diffusionimagingapp:OFF org.mitk.gui.qt.datamanager:ON org.mitk.gui.qt.datamanagerlight:OFF org.mitk.gui.qt.datastorageviewertest:OFF org.mitk.gui.qt.properties:ON org.mitk.gui.qt.basicimageprocessing:OFF org.mitk.gui.qt.dicom:OFF org.mitk.gui.qt.dicominspector:OFF org.mitk.gui.qt.diffusionimaging:OFF org.mitk.gui.qt.diffusionimaging.connectomics:OFF org.mitk.gui.qt.diffusionimaging.denoising:OFF org.mitk.gui.qt.diffusionimaging.fiberfox:OFF org.mitk.gui.qt.diffusionimaging.fiberprocessing:OFF org.mitk.gui.qt.diffusionimaging.ivim:OFF org.mitk.gui.qt.diffusionimaging.odfpeaks:OFF org.mitk.gui.qt.diffusionimaging.partialvolume:OFF org.mitk.gui.qt.diffusionimaging.preprocessing:OFF org.mitk.gui.qt.diffusionimaging.reconstruction:OFF org.mitk.gui.qt.diffusionimaging.registration:OFF org.mitk.gui.qt.diffusionimaging.tbss:OFF org.mitk.gui.qt.diffusionimaging.tractography:OFF org.mitk.gui.qt.diffusionimaging.python:OFF org.mitk.gui.qt.dosevisualization:OFF org.mitk.gui.qt.geometrytools:OFF org.mitk.gui.qt.igtexamples:OFF org.mitk.gui.qt.igttracking:OFF org.mitk.gui.qt.lasercontrol:OFF org.mitk.gui.qt.openigtlink:OFF org.mitk.gui.qt.imagecropper:OFF org.mitk.gui.qt.imagenavigator:ON org.mitk.gui.qt.viewnavigator:OFF org.mitk.gui.qt.materialeditor:OFF org.mitk.gui.qt.measurementtoolbox:OFF org.mitk.gui.qt.moviemaker:OFF org.mitk.gui.qt.pointsetinteraction:OFF org.mitk.gui.qt.pointsetinteractionmultispectrum:OFF org.mitk.gui.qt.python:OFF org.mitk.gui.qt.remeshing:OFF org.mitk.gui.qt.segmentation:OFF - org.mitk.gui.qt.segmentation.rework:OFF org.mitk.gui.qt.aicpregistration:OFF org.mitk.gui.qt.renderwindowmanager:OFF org.mitk.gui.qt.toftutorial:OFF org.mitk.gui.qt.tofutil:OFF org.mitk.gui.qt.tubegraph:OFF org.mitk.gui.qt.ugvisualization:OFF org.mitk.gui.qt.photoacoustics.pausviewer:OFF org.mitk.gui.qt.photoacoustics.pausmotioncompensation:OFF org.mitk.gui.qt.photoacoustics.imageprocessing:OFF org.mitk.gui.qt.photoacoustics.simulation:OFF org.mitk.gui.qt.photoacoustics.spectralunmixing:OFF org.mitk.gui.qt.ultrasound:OFF org.mitk.gui.qt.volumevisualization:OFF org.mitk.gui.qt.eventrecorder:OFF org.mitk.gui.qt.xnat:OFF org.mitk.gui.qt.igt.app.echotrack:OFF org.mitk.gui.qt.spectrocamrecorder:OFF org.mitk.gui.qt.classificationsegmentation:OFF org.mitk.gui.qt.overlaymanager:OFF org.mitk.gui.qt.igt.app.hummelprotocolmeasurements:OFF org.mitk.gui.qt.multilabelsegmentation:OFF org.mitk.matchpoint.core.helper:OFF org.mitk.gui.qt.matchpoint.algorithm.browser:OFF org.mitk.gui.qt.matchpoint.algorithm.control:OFF org.mitk.gui.qt.matchpoint.algorithm.batch:OFF org.mitk.gui.qt.matchpoint.mapper:OFF org.mitk.gui.qt.matchpoint.framereg:OFF org.mitk.gui.qt.matchpoint.visualizer:OFF org.mitk.gui.qt.matchpoint.evaluator:OFF org.mitk.gui.qt.matchpoint.manipulator:OFF org.mitk.gui.qt.preprocessing.resampling:OFF org.mitk.gui.qt.radiomics:OFF org.mitk.gui.qt.cest:OFF org.mitk.gui.qt.fit.demo:OFF org.mitk.gui.qt.fit.inspector:OFF org.mitk.gui.qt.fit.genericfitting:OFF org.mitk.gui.qt.pharmacokinetics.mri:OFF org.mitk.gui.qt.pharmacokinetics.pet:OFF org.mitk.gui.qt.pharmacokinetics.simulation:OFF org.mitk.gui.qt.pharmacokinetics.curvedescriptor:OFF org.mitk.gui.qt.pharmacokinetics.concentration.mri:OFF org.mitk.gui.qt.thread:ON org.mitk.gui.qt.client:ON ) diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/CMakeLists.txt b/Plugins/org.mitk.gui.qt.segmentation.rework/CMakeLists.txt deleted file mode 100644 index 5df0ad6462..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -project(org_mitk_gui_qt_segmentation_rework) - -mitk_create_plugin( - EXPORT_DIRECTIVE REWORK_EXPORT - EXPORTED_INCLUDE_SUFFIXES src - MODULE_DEPENDS MitkQtWidgetsExt MitkCppRestSdk MitkChart MitkSegmentationUI - PACKAGE_DEPENDS PUBLIC CTK|CTKWidgets -) diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/documentation/UserManual/Manual.dox b/Plugins/org.mitk.gui.qt.segmentation.rework/documentation/UserManual/Manual.dox deleted file mode 100644 index 2f32d086ba..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/documentation/UserManual/Manual.dox +++ /dev/null @@ -1,17 +0,0 @@ -/** -\page org_mitk_gui_qt_segmentation_rework The Rework - -\imageMacro{icon.png,"Icon of Rework",2.00} - -\tableofcontents - -\section org_mitk_gui_qt_segmentation_reworkOverview Overview -Describe the features of your awesome plugin here -
    -
  • Increases productivity -
  • Creates beautiful images -
  • Generates PhD thesis -
  • Brings world peace -
- -*/ diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/documentation/UserManual/icon.xpm b/Plugins/org.mitk.gui.qt.segmentation.rework/documentation/UserManual/icon.xpm deleted file mode 100644 index 9057c20bc6..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/documentation/UserManual/icon.xpm +++ /dev/null @@ -1,21 +0,0 @@ -/* XPM */ -static const char * icon_xpm[] = { -"16 16 2 1", -" c #FF0000", -". c #000000", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" "}; diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/documentation/doxygen/modules.dox b/Plugins/org.mitk.gui.qt.segmentation.rework/documentation/doxygen/modules.dox deleted file mode 100644 index cfde23343b..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/documentation/doxygen/modules.dox +++ /dev/null @@ -1,16 +0,0 @@ -/** - \defgroup org_mitk_gui_qt_segmentation_rework org.mitk.gui.qt.segmentation.rework - \ingroup MITKPlugins - - \brief Describe your plugin here. - -*/ - -/** - \defgroup org_mitk_gui_qt_segmentation_rework_internal Internal - \ingroup org_mitk_gui_qt_segmentation_rework - - \brief This subcategory includes the internal classes of the org.mitk.gui.qt.segmentation.rework plugin. Other - plugins must not rely on these classes. They contain implementation details and their interface - may change at any time. We mean it. -*/ diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/files.cmake b/Plugins/org.mitk.gui.qt.segmentation.rework/files.cmake deleted file mode 100644 index a50d3a5697..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/files.cmake +++ /dev/null @@ -1,45 +0,0 @@ -set(SRC_CPP_FILES - -) - -set(INTERNAL_CPP_FILES - org_mitk_gui_qt_segmentation_rework_Activator.cpp - SegmentationReworkView.cpp - SegmentationReworkREST.cpp -) - -set(UI_FILES - src/internal/SegmentationReworkViewControls.ui -) - -set(MOC_H_FILES - src/internal/org_mitk_gui_qt_segmentation_rework_Activator.h - src/internal/SegmentationReworkView.h - src/internal/SegmentationReworkREST.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 - resources/plugin_icon.png - plugin.xml -) - -# list of Qt .qrc files which contain additional resources -# specific to this plugin -set(QRC_FILES - -) - -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.segmentation.rework/manifest_headers.cmake b/Plugins/org.mitk.gui.qt.segmentation.rework/manifest_headers.cmake deleted file mode 100644 index 1178ec41c8..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/manifest_headers.cmake +++ /dev/null @@ -1,5 +0,0 @@ -set(Plugin-Name "Rework") -set(Plugin-Version "0.1") -set(Plugin-Vendor "DKFZ") -set(Plugin-ContactAddress "") -set(Require-Plugin org.mitk.gui.qt.common) diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/plugin.xml b/Plugins/org.mitk.gui.qt.segmentation.rework/plugin.xml deleted file mode 100644 index da2b9d6739..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/plugin.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/resources/icon.xpm b/Plugins/org.mitk.gui.qt.segmentation.rework/resources/icon.xpm deleted file mode 100644 index 9057c20bc6..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/resources/icon.xpm +++ /dev/null @@ -1,21 +0,0 @@ -/* XPM */ -static const char * icon_xpm[] = { -"16 16 2 1", -" c #FF0000", -". c #000000", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" "}; diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/resources/plugin_icon.png b/Plugins/org.mitk.gui.qt.segmentation.rework/resources/plugin_icon.png deleted file mode 100644 index 67d600c7c3..0000000000 Binary files a/Plugins/org.mitk.gui.qt.segmentation.rework/resources/plugin_icon.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkREST.cpp b/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkREST.cpp deleted file mode 100644 index fa8f5cc59d..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkREST.cpp +++ /dev/null @@ -1,196 +0,0 @@ -/*=================================================================== - -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 -#include - -#include "SegmentationReworkREST.h" -#include -#include - -SegmentationReworkREST::SegmentationReworkREST() {} - -SegmentationReworkREST::SegmentationReworkREST(utility::string_t url) : mitk::RESTServer(url) -{ - m_Listener.support(MitkRESTMethods::PUT, std::bind(&SegmentationReworkREST::HandlePut, this, std::placeholders::_1)); - m_Listener.support(MitkRESTMethods::GET, std::bind(&SegmentationReworkREST::HandleGet, this, std::placeholders::_1)); -} - -SegmentationReworkREST::~SegmentationReworkREST() {} - -void SegmentationReworkREST::HandleGet(MitkRequest message) -{ - auto messageString = message.to_string(); - MITK_INFO << "Message GET incoming..."; - MITK_INFO << mitk::RESTUtil::convertToUtf8(messageString); - - MITK_INFO << mitk::RESTUtil::convertToUtf8(message.request_uri().to_string()); - auto uri = web::uri::decode(message.request_uri().to_string()); - - if (uri.find(U("/robots.txt")) != std::string::npos || uri.find(U("/favicon.ico")) != std::string::npos || uri == U("/-") || uri.length() == 0) - { - MITK_INFO << "ignore GET request."; - return; - } - - auto query = web::uri(uri).query(); - auto httpParams = web::uri::split_query(query); - - // IHE Invoke Image Display style - auto requestType = httpParams.find(U("requestType")); - MITK_INFO << "parameters found: " << httpParams.size(); - - MitkResponse responsePositive(MitkRestStatusCodes::OK); - responsePositive.set_body("call to mitk was successfully!"); - - if (requestType != httpParams.end() && requestType->second == U("IMAGE_SEG")) - { - try - { - auto studyUID = httpParams.at(U("studyUID")); - auto imageSeriesUID = httpParams.at(U("imageSeriesUID")); - auto segSeriesUID = httpParams.at(U("segSeriesUID")); - - DicomDTO dto; - dto.imageSeriesUID = mitk::RESTUtil::convertToUtf8(imageSeriesUID); - dto.studyUID = mitk::RESTUtil::convertToUtf8(studyUID); - dto.segSeriesUIDA = mitk::RESTUtil::convertToUtf8(segSeriesUID); - - MITK_INFO << "studyUID: " << dto.studyUID; - MITK_INFO << "imageSeriesUID: " << dto.imageSeriesUID; - MITK_INFO << "segSeriesUID: " << dto.segSeriesUIDA; - - m_GetImageSegCallback(dto); - - MitkResponse response(MitkRestStatusCodes::OK); - message.reply(responsePositive); - } - catch (std::out_of_range& e) { - message.reply(MitkRestStatusCodes::BadRequest, "oh man, that was not expected: " + std::string(e.what())); - } - } else if (requestType != httpParams.end() && requestType->second == U("SEG_EVALUATION")) - { - // TODO: implement PUT handling as GET - } else if (requestType != httpParams.end() && requestType->second == U("IMAGE_SEG_LIST")) - { - auto studyUID = httpParams.at(U("studyUID")); - auto imageSeriesUID = httpParams.at(U("imageSeriesUID")); - auto segSeriesUIDList = httpParams.at(U("segSeriesUIDList")); - - DicomDTO dto; - dto.imageSeriesUID = mitk::RESTUtil::convertToUtf8(imageSeriesUID); - dto.studyUID = mitk::RESTUtil::convertToUtf8(studyUID); - - auto segSeriesUIDListUtf8 = mitk::RESTUtil::convertToUtf8(segSeriesUIDList); - - std::istringstream f(segSeriesUIDListUtf8); - std::string s; - while (getline(f, s, ',')) { - dto.seriesUIDList.push_back(s); - } - - MITK_INFO << "studyUID: " << dto.studyUID; - MITK_INFO << "imageSeriesUID: " << dto.imageSeriesUID; - MITK_INFO << "segSeriesUIDList: " << segSeriesUIDListUtf8; - - m_GetImageSegCallback(dto); - - message.reply(responsePositive); - } else if (requestType != httpParams.end() && requestType->second == U("ADD_SERIES")) - { - auto studyUID = httpParams.at(U("studyUID")); - auto segSeriesUIDList = httpParams.at(U("seriesUIDList")); - - DicomDTO dto; - dto.studyUID = mitk::RESTUtil::convertToUtf8(studyUID); - - auto seriesUIDListUtf8 = mitk::RESTUtil::convertToUtf8(segSeriesUIDList); - - std::istringstream f(seriesUIDListUtf8); - std::string s; - while (getline(f, s, ',')) { - dto.seriesUIDList.push_back(s); - } - - MITK_INFO << "studyUID: " << dto.studyUID; - MITK_INFO << "seriesUIDList: " << seriesUIDListUtf8; - - m_GetAddSeriesCallback(dto); - message.reply(responsePositive); - } else - { - message.reply(MitkRestStatusCodes::BadRequest, "unknown request type " + mitk::RESTUtil::convertToUtf8(requestType->second)); - } -} - -void SegmentationReworkREST::HandlePut(MitkRequest message) -{ - auto messageString = message.to_string(); - MITK_INFO << "Message PUT incoming..."; - MITK_INFO << mitk::RESTUtil::convertToUtf8(messageString); - - try - { - auto jsonMessage = message.extract_json().get(); - - auto messageTypeKey = jsonMessage.at(U("messageType")); - if (messageTypeKey.as_string() == U("downloadData")) - { - auto imageStudyUIDKey = jsonMessage.at(U("studyUID")); - auto srSeriesUIDKey = jsonMessage.at(U("srSeriesUID")); - - auto groundTruthKey = jsonMessage.at(U("groundTruth")); - - auto simScoreKey = jsonMessage.at(U("simScoreArray")); - auto minSliceStartKey = jsonMessage.at(U("minSliceStart")); - - DicomDTO dto; - dto.srSeriesUID = mitk::RESTUtil::convertToUtf8(srSeriesUIDKey.as_string()); - - dto.groundTruth = mitk::RESTUtil::convertToUtf8(groundTruthKey.as_string()); - - dto.studyUID = mitk::RESTUtil::convertToUtf8(imageStudyUIDKey.as_string()); - dto.minSliceStart = minSliceStartKey.as_integer(); - - std::vector vec; - web::json::array simArray = simScoreKey.as_array(); - - for (web::json::value score : simArray) - { - vec.push_back(score.as_double() * 100); - } - - dto.simScoreArray = vec; - m_PutCallback(dto); - emit InvokeUpdateChartWidget(); - } - else - { - message.reply(MitkRestStatusCodes::BadRequest, "Oh man, i can only deal with 'messageType' = 'downloadData'..."); - } - } - catch (MitkJsonException &e) - { - MITK_ERROR << e.what() << ".. oh man, that was not expected"; - message.reply(MitkRestStatusCodes::BadRequest, "oh man, that was not expected"); - return; - } - MitkResponse response(MitkRestStatusCodes::OK); - response.headers().add(U("Access-Control-Allow-Origin"), U("localhost:9000/*")); - response.set_body("Sure, i got you.. have an awesome day"); - message.reply(response); - return; -} \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkREST.h b/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkREST.h deleted file mode 100644 index d867937c6c..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkREST.h +++ /dev/null @@ -1,79 +0,0 @@ -/*=================================================================== - -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 SegmentationReworkREST_h -#define SegmentationReworkREST_h - -#include - -class SegmentationReworkREST : public mitk::RESTServer -{ - Q_OBJECT - -public: - struct DicomDTO - { - std::string segSeriesUIDA; - std::string segSeriesUIDB; - std::string imageSeriesUID; - std::string studyUID; - std::string segInstanceUIDA; - std::string segInstanceUIDB; - std::string srSeriesUID; - std::vector seriesUIDList; - std::vector simScoreArray; - int minSliceStart; - std::string groundTruth; - }; - - SegmentationReworkREST(); - SegmentationReworkREST(utility::string_t url); - ~SegmentationReworkREST(); - - void HandlePut(MitkRequest message); - void HandleGet(MitkRequest message); - - void SetPutCallback(std::function callback) - { - m_PutCallback = callback; - } - - void SetGetImageSegCallback(std::function callback) - { - m_GetImageSegCallback = callback; - } - - void SetGetEvalCallback(std::function callback) - { - m_GetEvalCallback = callback; - } - - void SetGetAddSeriesCallback(std::function callback) - { - m_GetAddSeriesCallback = callback; - } - -signals: - void InvokeUpdateChartWidget(); - -private: - std::function m_PutCallback; - std::function m_GetImageSegCallback; - std::function m_GetEvalCallback; - std::function m_GetAddSeriesCallback; -}; - -#endif // SegmentationReworkREST_h diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkView.cpp b/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkView.cpp deleted file mode 100644 index 18225d1543..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkView.cpp +++ /dev/null @@ -1,592 +0,0 @@ -/*=================================================================== - -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. - -===================================================================*/ - -// Blueberry -#include -#include - -// Qmitk -#include "SegmentationReworkView.h" - -#include - -// Qt -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -const std::string SegmentationReworkView::VIEW_ID = "org.mitk.views.segmentationreworkview"; - -void SegmentationReworkView::SetFocus() {} - -void SegmentationReworkView::CreateQtPartControl(QWidget *parent) -{ - // create GUI widgets from the Qt Designer's .ui file - m_Controls.setupUi(parent); - m_Parent = parent; - counter = 0; - - qRegisterMetaType< std::vector >("std::vector"); - - //m_Controls.verticalWidget->setVisible(false); - m_Controls.cleanDicomBtn->setVisible(false); - m_Controls.individualWidget_2->setVisible(false); - - m_Controls.sliderWidget->setMinimum(1); - m_Controls.sliderWidget->setMaximum(100); - m_Controls.sliderWidget->setTickInterval(1); - m_Controls.sliderWidget->setSingleStep(1); - m_Controls.radioA->setChecked(true); - - connect(m_Controls.buttonUpload, &QPushButton::clicked, this, &SegmentationReworkView::UploadNewSegmentation); - connect(m_Controls.buttonNewSeg, &QPushButton::clicked, this, &SegmentationReworkView::CreateNewSegmentationC); - connect(m_Controls.cleanDicomBtn, &QPushButton::clicked, this, &SegmentationReworkView::CleanDicomFolder); - connect(m_Controls.restartConnection, &QPushButton::clicked, this, &SegmentationReworkView::RestartConnection); - connect(m_Controls.checkIndiv, &QCheckBox::stateChanged, this, &SegmentationReworkView::OnIndividualCheckChange); - connect(m_Controls.sliderWidget, &ctkSliderWidget::valueChanged, this, &SegmentationReworkView::OnSliderWidgetChanged); - - m_DownloadBaseDir = mitk::IOUtil::GetTempPathA() + "segrework"; - MITK_INFO << "using download base dir: " << m_DownloadBaseDir; - m_UploadBaseDir = mitk::IOUtil::GetTempPathA() + "uploadSeg"; - - if (!itksys::SystemTools::FileIsDirectory(m_DownloadBaseDir)) - { - itk::FileTools::CreateDirectory(m_DownloadBaseDir); - } - - if (!itksys::SystemTools::FileIsDirectory(m_UploadBaseDir)) - { - itk::FileTools::CreateDirectory(m_UploadBaseDir); - } - - utility::string_t port = U("2020"); - utility::string_t address = U("http://127.0.0.1:"); - address.append(port); - - m_HttpHandler = std::unique_ptr(new SegmentationReworkREST(address)); - - connect(m_HttpHandler.get(), - &SegmentationReworkREST::InvokeUpdateChartWidget, - this, - &SegmentationReworkView::UpdateChartWidget); - connect(this, &SegmentationReworkView::InvokeLoadData, this, &SegmentationReworkView::LoadData); - - connect(this, &SegmentationReworkView::InvokeProgress, this, &SegmentationReworkView::AddProgress); - - m_HttpHandler->SetPutCallback(std::bind(&SegmentationReworkView::RESTPutCallback, this, std::placeholders::_1)); - m_HttpHandler->SetGetImageSegCallback(std::bind(&SegmentationReworkView::RESTGetCallback, this, std::placeholders::_1)); - m_HttpHandler->SetGetAddSeriesCallback(std::bind(&SegmentationReworkView::RESTGetCallbackGeneric, this, std::placeholders::_1)); - m_HttpHandler->Open().wait(); - - MITK_INFO << "Listening for requests at: " << utility::conversions::to_utf8string(address); - - //utility::string_t pacsURL = U("http://jip-dktk/dcm4chee-arc/aets/DCM4CHEE"); - utility::string_t pacsURL = U("http://193.174.48.78:8090/dcm4chee-arc/aets/DCM4CHEE"); - utility::string_t restURL = U("http://localhost:8000"); - - m_DICOMWeb = new mitk::DICOMWeb(pacsURL); - MITK_INFO << "requests to pacs are sent to: " << utility::conversions::to_utf8string(pacsURL); - m_Controls.dcm4cheeURL->setText({ (utility::conversions::to_utf8string(pacsURL).c_str()) }); - - m_RestService = new mitk::RESTClient(restURL); -} - -void SegmentationReworkView::OnSliderWidgetChanged(double value) -{ - std::map::iterator it; - unsigned int count = 0; - for (it = m_ScoreMap.begin(); it != m_ScoreMap.end(); it++) - { - if (it->second < value) - { - count++; - } - } - QString labelsToDelete = "slices to delete: " + QString::number(count); - m_Controls.slicesToDeleteLabel->setText(labelsToDelete); - - std::map thresholdMap; - - for (it = m_ScoreMap.begin(); it != m_ScoreMap.end(); it++) - { - thresholdMap.insert(std::map::value_type(it->first, value)); - } - - m_Controls.chartWidget->RemoveData(m_thresholdLabel); - m_Controls.chartWidget->AddData2D(thresholdMap, m_thresholdLabel); - m_Controls.chartWidget->SetChartType(m_thresholdLabel, QmitkChartWidget::ChartType::line); - m_Controls.chartWidget->Show(); -} - -void SegmentationReworkView::AddProgress(int progress, QString status) -{ - auto futureValue = m_Controls.progressBar->value() + progress; - if (futureValue >= 100) - { - m_Controls.progressBar->setValue(0); - m_Controls.progressBar->setFormat(""); - } else - { - m_Controls.progressBar->setFormat(status.append(" %p%")); - m_Controls.progressBar->setValue(futureValue); - } -} - -void SegmentationReworkView::RestartConnection() -{ - auto host = m_Controls.dcm4cheeHostValue->text(); - std::string url = host.toStdString() + "/dcm4chee-arc/aets/DCM4CHEE"; - - m_DICOMWeb = new mitk::DICOMWeb(utility::conversions::to_string_t(url)); - MITK_INFO << "requests to pacs are sent to: " << url; - m_Controls.dcm4cheeURL->setText({ (utility::conversions::to_utf8string(url).c_str()) }); -} - -void SegmentationReworkView::OnIndividualCheckChange(int state) -{ - if(state == Qt::Unchecked) - { - m_Controls.individualWidget_2->setVisible(false); - } - else if (state == Qt::Checked) - { - m_Controls.individualWidget_2->setVisible(true); - } -} - -void SegmentationReworkView::RESTPutCallback(const SegmentationReworkREST::DicomDTO &dto) -{ - emit InvokeProgress(20, { "display graph and query structured report" }); - SetSimilarityGraph(dto.simScoreArray, dto.minSliceStart); - - m_SRUID = dto.srSeriesUID; - m_GroundTruth = dto.groundTruth; - - typedef std::map ParamMap; - ParamMap seriesInstancesParams; - - seriesInstancesParams.insert((ParamMap::value_type({"StudyInstanceUID"}, dto.studyUID))); - seriesInstancesParams.insert((ParamMap::value_type({"SeriesInstanceUID"}, dto.srSeriesUID))); - seriesInstancesParams.insert((ParamMap::value_type({"includefield"}, {"0040A375"}))); // Current Requested Procedure Evidence Sequence - - try { - m_DICOMWeb->QidoRSInstances(seriesInstancesParams).then([=](web::json::value jsonResult) - { - - auto firstResult = jsonResult[0]; - auto actualListKey = firstResult.at(U("0040A375")).as_object().at(U("Value")).as_array()[0].as_object().at(U("00081115")).as_object().at(U("Value")).as_array(); - - std::string segSeriesUIDA = ""; - std::string segSeriesUIDB = ""; - std::string imageSeriesUID = ""; - - for (unsigned int index = 0; index < actualListKey.size(); index++) { - auto element = actualListKey[index].as_object(); - // get SOP class UID - auto innerElement = element.at(U("00081199")).as_object().at(U("Value")).as_array()[0]; - auto sopClassUID = innerElement.at(U("00081150")).as_object().at(U("Value")).as_array()[0].as_string(); - - auto seriesUID = utility::conversions::to_utf8string(element.at(U("0020000E")).as_object().at(U("Value")).as_array()[0].as_string()); - - if (sopClassUID == U("1.2.840.10008.5.1.4.1.1.66.4")) // SEG - { - if (segSeriesUIDA.length() == 0) - { - segSeriesUIDA = seriesUID; - } - else - { - segSeriesUIDB = seriesUID; - } - } - else if (sopClassUID == U("1.2.840.10008.5.1.4.1.1.2")) // CT - { - imageSeriesUID = seriesUID; - } - } - - emit InvokeProgress(10, {"load composite context of structured report"}); - MITK_INFO << "image series UID " << imageSeriesUID; - MITK_INFO << "seg A series UID " << segSeriesUIDA; - MITK_INFO << "seg B series UID " << segSeriesUIDB; - - MITK_INFO << "Load related dicom series ..."; - - std::string folderPathSeries = mitk::IOUtil::CreateTemporaryDirectory("XXXXXX", m_DownloadBaseDir) +"/"; - - std::string pathSegA = mitk::IOUtil::CreateTemporaryDirectory("XXXXXX", m_DownloadBaseDir) + "/"; - std::string pathSegB = mitk::IOUtil::CreateTemporaryDirectory("XXXXXX", m_DownloadBaseDir) + "/"; - - auto folderPathSegA = utility::conversions::to_string_t(pathSegA); - auto folderPathSegB = utility::conversions::to_string_t(pathSegB); - - m_CurrentStudyUID = dto.studyUID; - - std::vector> tasks; - auto imageSeriesTask = m_DICOMWeb->WadoRS(utility::conversions::to_string_t(folderPathSeries), dto.studyUID, imageSeriesUID); - auto segATask = m_DICOMWeb->WadoRS(folderPathSegA, dto.studyUID, segSeriesUIDA); - auto segBTask = m_DICOMWeb->WadoRS(folderPathSegB, dto.studyUID, segSeriesUIDB); - tasks.push_back(imageSeriesTask); - tasks.push_back(segATask); - tasks.push_back(segBTask); - - auto joinTask = pplx::when_all(begin(tasks), end(tasks)); - auto filePathList = joinTask.then([&](std::vector filePathList) { - emit InvokeProgress(50, {"load dicom files from disk"}); - InvokeLoadData(filePathList); - }); - }); - - } - catch (mitk::Exception& e) { - MITK_ERROR << e.what(); - } -} - -void SegmentationReworkView::RESTGetCallbackGeneric(const SegmentationReworkREST::DicomDTO &dto) -{ - std::vector> tasks; - - if (dto.seriesUIDList.size() > 0) { - for (std::string segSeriesUID : dto.seriesUIDList) - { - std::string folderPathSeries = mitk::IOUtil::CreateTemporaryDirectory("XXXXXX", m_DownloadBaseDir) + "/"; - try { - auto seriesTask = m_DICOMWeb->WadoRS(utility::conversions::to_string_t(folderPathSeries), dto.studyUID, segSeriesUID); - tasks.push_back(seriesTask); - } catch (const mitk::Exception &exception) - { - MITK_INFO << exception.what(); - return; - } - } - } - - try - { - auto joinTask = pplx::when_all(begin(tasks), end(tasks)); - auto filePathList = joinTask.then([&](std::vector filePathList) { InvokeLoadData(filePathList); }); - } - catch (const mitk::Exception& exception) - { - MITK_INFO << exception.what(); - return; - } -} - -void SegmentationReworkView::RESTGetCallback(const SegmentationReworkREST::DicomDTO &dto) -{ - std::string folderPathSeries = mitk::IOUtil::CreateTemporaryDirectory("XXXXXX", m_DownloadBaseDir) + "/"; - - MITK_INFO << folderPathSeries; - - std::string pathSeg = mitk::IOUtil::CreateTemporaryDirectory("XXXXXX", m_DownloadBaseDir) + "/"; - auto folderPathSeg = utility::conversions::to_string_t(pathSeg); - - MITK_INFO << pathSeg; - - try { - std::vector> tasks; - auto imageSeriesTask = m_DICOMWeb->WadoRS(utility::conversions::to_string_t(folderPathSeries), dto.studyUID, dto.imageSeriesUID); - - tasks.push_back(imageSeriesTask); - - if (dto.seriesUIDList.size() > 0) { - for (std::string segSeriesUID : dto.seriesUIDList) - { - auto segTask = m_DICOMWeb->WadoRS(folderPathSeg, dto.studyUID, segSeriesUID); - tasks.push_back(segTask); - } - } - else { - auto segATask = m_DICOMWeb->WadoRS(folderPathSeg, dto.studyUID, dto.segSeriesUIDA); - tasks.push_back(segATask); - } - - - auto joinTask = pplx::when_all(begin(tasks), end(tasks)); - auto filePathList = joinTask.then([&](std::vector filePathList) { InvokeLoadData(filePathList); }); - } - catch (const mitk::Exception &exception) { - MITK_INFO << exception.what(); - } -} - -std::string SegmentationReworkView::GetAlgorithmOfSegByPath(std::string path) -{ - auto scanner = mitk::DICOMDCMTKTagScanner::New(); - - mitk::DICOMTagPath algorithmName; - algorithmName.AddAnySelection(0x0062, 0x0002).AddElement(0x0062, 0x0009); - - mitk::StringList files; - files.push_back(path); - scanner->SetInputFiles(files); - scanner->AddTagPath(algorithmName); - - scanner->Scan(); - - mitk::DICOMDatasetAccessingImageFrameList frames = scanner->GetFrameInfoList(); - auto findings = frames.front()->GetTagValueAsString(algorithmName); - if (findings.size() != 0) - MITK_INFO << findings.front().value; - return findings.front().value; -} - -void SegmentationReworkView::LoadData(std::vector filePathList) -{ - MITK_INFO << "Loading finished. Pushing data to data storage ..."; - auto ds = GetDataStorage(); - auto dataNodes = mitk::IOUtil::Load(filePathList, *ds); - // reinit view - mitk::RenderingManager::GetInstance()->InitializeViewsByBoundingObjects(ds); - - // find data nodes - m_Image = dataNodes->at(0); - m_Image->SetName("image data"); - m_SegA = dataNodes->at(1); - m_SegB = dataNodes->at(2); - - auto algorithmNameA = GetAlgorithmOfSegByPath(filePathList[1]); - auto algorithmNameB = GetAlgorithmOfSegByPath(filePathList[2]); - m_SegA->SetName(algorithmNameA); - m_SegB->SetName(algorithmNameB); - m_Controls.labelSegAValue->setText(algorithmNameA.c_str()); - m_Controls.labelSegBValue->setText(algorithmNameB.c_str()); - m_Controls.labelGroundTruthValue->setText(m_GroundTruth.c_str()); - emit InvokeProgress(20, { "" }); -} - -void SegmentationReworkView::UpdateChartWidget() -{ - m_Controls.chartWidget->Show(); -} - -void SegmentationReworkView::SetSimilarityGraph(std::vector simScoreArray, int sliceMinStart) -{ - std::string label = "similarity graph"; - m_thresholdLabel = "threshold"; - //m_Controls.chartWidget->Clear(); - - double sliceIndex = sliceMinStart; - for (double score : simScoreArray) - { - m_ScoreMap.insert(std::map::value_type(sliceIndex, score)); - sliceIndex++; - } - - std::map thresholdMap; - - m_Controls.chartWidget->AddData2D(m_ScoreMap, label); - m_Controls.chartWidget->AddData2D(thresholdMap, m_thresholdLabel); - m_Controls.chartWidget->SetChartType(label, QmitkChartWidget::ChartType::line); - m_Controls.chartWidget->SetChartType(m_thresholdLabel, QmitkChartWidget::ChartType::line); - m_Controls.chartWidget->SetXAxisLabel("slice number"); - m_Controls.chartWidget->SetYAxisLabel("similarity in percent"); - m_Controls.chartWidget->SetTitle("Similartiy Score for Segmentation Comparison"); -} - -void SegmentationReworkView::UploadNewSegmentation() -{ - AddProgress(10, { "save SEG to temp folder" }); - std::string folderPathSeg = mitk::IOUtil::CreateTemporaryDirectory("XXXXXX", m_UploadBaseDir) + "/"; - - const std::string savePath = folderPathSeg + m_SegC->GetName() + ".dcm"; - const std::string mimeType = mitk::MitkDICOMQIIOMimeTypes::DICOMSEG_MIMETYPE_NAME(); - mitk::IOUtil::Save(m_SegC->GetData(), mimeType, savePath); - - // get Series Instance UID from new SEG - auto scanner = mitk::DICOMDCMTKTagScanner::New(); - mitk::DICOMTagPath seriesUID(0x0020, 0x000E); - - mitk::StringList files; - files.push_back(savePath); - scanner->SetInputFiles(files); - scanner->AddTagPath(seriesUID); - - scanner->Scan(); - - mitk::DICOMDatasetAccessingImageFrameList frames = scanner->GetFrameInfoList(); - auto findings = frames.front()->GetTagValueAsString(seriesUID); - auto segSeriesUID = findings.front().value; - - AddProgress(20, {"push SEG to PACS"}); - auto filePath = utility::conversions::to_string_t(savePath); - try { - m_DICOMWeb->StowRS(filePath, m_CurrentStudyUID).then([=] { - emit InvokeProgress(40, {"persist reworked SEG to evaluation database"}); - - MitkUriBuilder queryBuilder(U("tasks/evaluations/")); - queryBuilder.append_query(U("srUID"), utility::conversions::to_string_t(m_SRUID)); - //queryBuilder.append_path(U("71/")); - m_RestService->Get(queryBuilder.to_string()).then([=](web::json::value result) { - MITK_INFO << "after GET"; - MITK_INFO << utility::conversions::to_utf8string(result.to_string()); - auto updatedContent = result.as_array()[0]; - updatedContent[U("reworkedSegmentationUID")] = web::json::value::string(utility::conversions::to_string_t(segSeriesUID)); - - auto id = updatedContent.at(U("id")).as_integer(); - MITK_INFO << id; - auto idParam = std::to_string(id).append("/"); - - MitkUriBuilder queryBuilder(U("tasks/evaluations")); - queryBuilder.append_path(utility::conversions::to_string_t(idParam)); - - m_RestService->PUT(queryBuilder.to_string(), updatedContent).then([=](web::json::value result) { - MITK_INFO << "successfully stored"; - emit InvokeProgress(30, { "successfully stored" }); - }); - }); - }); - } - catch (const std::exception &exception) - { - std::cout << exception.what() << std::endl; - } -} - -std::vector SegmentationReworkView::CreateSegmentation(mitk::Image::Pointer baseSegmentation, double threshold) -{ - MITK_INFO << "handle individual segmentation creation"; - std::map::iterator it; - - std::vector sliceIndices; - - unsigned int count = 0; - for (it = m_ScoreMap.begin(); it != m_ScoreMap.end(); it++) - { - if (it->second < threshold) - { - auto index = it->first; - try - { - mitk::ImagePixelWriteAccessor imageAccessor(baseSegmentation); - for (unsigned int x = 0; x < baseSegmentation->GetDimension(0); x++) - { - for (unsigned int y = 0; y < baseSegmentation->GetDimension(1); y++) - { - imageAccessor.SetPixelByIndex({ { x, y, int(index) } }, 0); - } - } - } - catch (mitk::Exception& e) { - MITK_ERROR << e.what(); - } - - count++; - sliceIndices.push_back(index); - MITK_INFO << "slice " << it->first << " removed "; - } - } - MITK_INFO << "slices deleted " << count; - return sliceIndices; -} - -void SegmentationReworkView::CreateNewSegmentationC() -{ - mitk::ToolManager* toolManager = mitk::ToolManagerProvider::GetInstance()->GetToolManager(); - toolManager->InitializeTools(); - toolManager->SetReferenceData(m_Image); - - mitk::Image::Pointer baseImage; - if (m_Controls.radioA->isChecked()) { - baseImage = dynamic_cast(m_SegA->GetData())->Clone(); - } - else if (m_Controls.radioB->isChecked()) { - baseImage = dynamic_cast(m_SegB->GetData())->Clone(); - } - - if (m_Controls.checkIndiv->isChecked()) - { - auto sliceIndices = CreateSegmentation(baseImage, m_Controls.sliderWidget->value()); - } - - QmitkNewSegmentationDialog* dialog = new QmitkNewSegmentationDialog(m_Parent); // needs a QWidget as parent, "this" is not QWidget - - int dialogReturnValue = dialog->exec(); - if (dialogReturnValue == QDialog::Rejected) - { - // user clicked cancel or pressed Esc or something similar - return; - } - - // ask the user about an organ type and name, add this information to the image's (!) propertylist - // create a new image of the same dimensions and smallest possible pixel type - mitk::Tool* firstTool = toolManager->GetToolById(0); - if (firstTool) - { - try - { - std::string newNodeName = dialog->GetSegmentationName().toStdString(); - if (newNodeName.empty()) - { - newNodeName = "no_name"; - } - - mitk::DataNode::Pointer newSegmentation = firstTool->CreateSegmentationNode(baseImage, newNodeName, dialog->GetColor()); - // initialize showVolume to false to prevent recalculating the volume while working on the segmentation - newSegmentation->SetProperty("showVolume", mitk::BoolProperty::New(false)); - if (!newSegmentation) - { - return; // could be aborted by user - } - - if (mitk::ToolManagerProvider::GetInstance()->GetToolManager()->GetWorkingData(0)) - { - mitk::ToolManagerProvider::GetInstance()->GetToolManager()->GetWorkingData(0)->SetSelected(false); - } - newSegmentation->SetSelected(true); - this->GetDataStorage()->Add(newSegmentation, toolManager->GetReferenceData(0)); // add as a child, because the segmentation "derives" from the original - - m_SegC = newSegmentation; - - auto referencedImages = m_Image->GetData()->GetProperty("files"); - m_SegC->GetData()->SetProperty("referenceFiles", referencedImages); - - } - catch (std::bad_alloc) - { - QMessageBox::warning(nullptr, tr("Create new segmentation"), tr("Could not allocate memory for new segmentation")); - } - } - else { - MITK_INFO << "no tools..."; - } -} - -void SegmentationReworkView::CleanDicomFolder() -{ - if (m_SegA || m_SegB || m_SegC) { - QMessageBox::warning(nullptr, tr("Clean dicom folder"), tr("Please remove the data in data storage before cleaning the download folder")); - return; - } - - //std::experimental::filesystem::remove_all(m_DownloadBaseDir); - // TODO : use POCO - //itk::FileTools::CreateDirectory(m_DownloadBaseDir); -} diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkView.h b/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkView.h deleted file mode 100644 index bb8dc07e34..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkView.h +++ /dev/null @@ -1,107 +0,0 @@ -/*=================================================================== - -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 SegmentationReworkView_h -#define SegmentationReworkView_h - -#include - -#include - -#include "ui_SegmentationReworkViewControls.h" - -#include "SegmentationReworkREST.h" -#include -#include -#include - -/** - \brief SegmentationReworkView - - \warning This class is not yet documented. Use "git blame" and ask the author to provide basic documentation. - - \sa QmitkAbstractView - \ingroup ${plugin_target}_internal -*/ -class SegmentationReworkView : public QmitkAbstractView -{ - // 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: - static const std::string VIEW_ID; - - void RESTPutCallback(const SegmentationReworkREST::DicomDTO& dto); - void RESTGetCallback(const SegmentationReworkREST::DicomDTO& dto); - void RESTGetCallbackGeneric(const SegmentationReworkREST::DicomDTO& dto); - - void UpdateChartWidget(); - void ClearChartWidget(); - void LoadData(std::vector filePathList); - void OnSliderWidgetChanged(double value); - void AddProgress(int, QString status); - -signals: - void InvokeLoadData(std::vector filePathList); - void InvokeProgress(int, QString status); - -protected: - virtual void CreateQtPartControl(QWidget *parent) override; - - virtual void SetFocus() override; - - /// \brief Called when the user clicks the GUI button - void CreateNewSegmentationC(); - - void CleanDicomFolder(); - void UploadNewSegmentation(); - void RestartConnection(); - void OnIndividualCheckChange(int state); - - Ui::SegmentationReworkViewControls m_Controls; - -private: - - std::vector CreateSegmentation(mitk::Image::Pointer baseSegmentation, double threshold); - void InterpolateSegmentation(mitk::Image::Pointer baseSegmentation, std::vector sliceIndices); - - std::string GetAlgorithmOfSegByPath(std::string path); - - void SetSimilarityGraph(std::vector simScoreArray, int sliceMinStart); - std::unique_ptr m_HttpHandler; - mitk::DICOMWeb* m_DICOMWeb; - mitk::RESTClient* m_RestService; - - std::string m_CurrentStudyUID; - std::string m_SRUID; - - std::string m_DownloadBaseDir; - std::string m_UploadBaseDir; - - mitk::DataNode::Pointer m_Image; - mitk::DataNode::Pointer m_SegA; - mitk::DataNode::Pointer m_SegB; - mitk::DataNode::Pointer m_SegC; - std::map m_ScoreMap; - std::string m_GroundTruth; - std::string m_thresholdLabel; - - QWidget* m_Parent; - int counter; -}; - -#endif // SegmentationReworkView_h diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkViewControls.ui b/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkViewControls.ui deleted file mode 100644 index aa68327398..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/SegmentationReworkViewControls.ui +++ /dev/null @@ -1,291 +0,0 @@ - - - SegmentationReworkViewControls - - - - 0 - 0 - 465 - 821 - - - - - 0 - 0 - - - - QmitkTemplate - - - - - - - - dcm4chee host - - - - - - - example input: http://193.174.48.78:8090 - - - - - - - restart dcm4chee connection - - - - - - - 0 - - - Qt::AlignCenter - - - true - - - - - - - - - - - - - - - Qt::AlignCenter - - - - - - - - - Segmentation B: - - - - - - - - - - - - - - Segmentation A: - - - - - - - - - - - - - - Ground Truth: - - - - - - - - - - - - - - - - - 0 - 400 - - - - - 16777215 - 400 - - - - - - - - false - - - - - - - 0 - 0 - - - - - 0 - 60 - - - - Select segmentation basis - - - true - - - - QLayout::SetDefaultConstraint - - - - - A - - - - - - - B - - - - - - - Individual - - - - - - - - - - - 0 - 0 - - - - - - - Slices to delete: - - - - - - - - - - - - - - - - - - - - Create new Segmentation - - - - - - - Qt::Horizontal - - - - - - - Do image processing - - - Upload Segmentation - - - - - - - - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 220 - - - - - - - - clean dicom download folder - - - - - - - - - QmitkChartWidget - QWidget -
QmitkChartWidget.h
- 1 -
- - ctkSliderWidget - QWidget -
ctksliderwidget.h
- 1 -
-
- - -
diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/org_mitk_gui_qt_segmentation_rework_Activator.cpp b/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/org_mitk_gui_qt_segmentation_rework_Activator.cpp deleted file mode 100644 index 2b634f99ca..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/org_mitk_gui_qt_segmentation_rework_Activator.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/*=================================================================== - -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 "org_mitk_gui_qt_segmentation_rework_Activator.h" -#include "SegmentationReworkView.h" - -namespace mitk -{ - void org_mitk_gui_qt_segmentation_rework_Activator::start(ctkPluginContext *context) - { - BERRY_REGISTER_EXTENSION_CLASS(SegmentationReworkView, context) - } - - void org_mitk_gui_qt_segmentation_rework_Activator::stop(ctkPluginContext *context) { Q_UNUSED(context) } -} diff --git a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/org_mitk_gui_qt_segmentation_rework_Activator.h b/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/org_mitk_gui_qt_segmentation_rework_Activator.h deleted file mode 100644 index bc704d219e..0000000000 --- a/Plugins/org.mitk.gui.qt.segmentation.rework/src/internal/org_mitk_gui_qt_segmentation_rework_Activator.h +++ /dev/null @@ -1,38 +0,0 @@ -/*=================================================================== - -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 org_mitk_gui_qt_segmentation_rework_Activator_h -#define org_mitk_gui_qt_segmentation_rework_Activator_h - -#include - -namespace mitk -{ - class org_mitk_gui_qt_segmentation_rework_Activator : public QObject, public ctkPluginActivator - { - Q_OBJECT - Q_PLUGIN_METADATA(IID "org_mitk_gui_qt_segmentation_rework") - Q_INTERFACES(ctkPluginActivator) - - public: - void start(ctkPluginContext *context); - void stop(ctkPluginContext *context); - - }; // org_mitk_gui_qt_segmentation_rework_Activator -} - -#endif // org_mitk_gui_qt_segmentation_rework_Activator_h