diff --git a/CMake/BuildConfigurations/Default.cmake b/CMake/BuildConfigurations/Default.cmake
index 5b46d0ac78..4faffa7f12 100644
--- a/CMake/BuildConfigurations/Default.cmake
+++ b/CMake/BuildConfigurations/Default.cmake
@@ -1,23 +1,23 @@
set(MITK_CONFIG_PACKAGES
ACVD
Qt5
BLUEBERRY
)
set(MITK_CONFIG_PLUGINS
org.mitk.gui.qt.mitkworkbench.intro
org.mitk.gui.qt.datamanager
org.mitk.gui.qt.stdmultiwidgeteditor
- org.mitk.gui.qt.dicom
+ org.mitk.gui.qt.dicombrowser
org.mitk.gui.qt.imagenavigator
org.mitk.gui.qt.measurementtoolbox
org.mitk.gui.qt.properties
org.mitk.gui.qt.segmentation
org.mitk.gui.qt.volumevisualization
org.mitk.planarfigure
org.mitk.gui.qt.moviemaker
org.mitk.gui.qt.pointsetinteraction
org.mitk.gui.qt.remeshing
org.mitk.gui.qt.viewnavigator
org.mitk.gui.qt.imagecropper
)
diff --git a/CMake/BuildConfigurations/mitkNavigationModules.cmake b/CMake/BuildConfigurations/mitkNavigationModules.cmake
index c315c718e0..d6881034ab 100644
--- a/CMake/BuildConfigurations/mitkNavigationModules.cmake
+++ b/CMake/BuildConfigurations/mitkNavigationModules.cmake
@@ -1,35 +1,35 @@
message(STATUS "Configuring MITK Navigation Modules Build")
set(MITK_CONFIG_PACKAGES
ACVD
Qt5
BLUEBERRY
)
# Enable open cv and open igt link, which is a necessary configuration
set(MITK_USE_OpenCV ON CACHE BOOL "MITK Use OpenCV Library" FORCE)
set(MITK_USE_OpenIGTLink ON CACHE BOOL "MITK Use OpenIGTLink Library" FORCE)
# Enable default plugins and the navigation modules
set(MITK_CONFIG_PLUGINS
org.mitk.gui.qt.datamanager
org.mitk.gui.qt.stdmultiwidgeteditor
- org.mitk.gui.qt.dicom
+ org.mitk.gui.qt.dicombrowser
org.mitk.gui.qt.imagenavigator
org.mitk.gui.qt.measurementtoolbox
org.mitk.gui.qt.properties
org.mitk.gui.qt.segmentation
org.mitk.gui.qt.volumevisualization
org.mitk.planarfigure
org.mitk.gui.qt.moviemaker
org.mitk.gui.qt.pointsetinteraction
org.mitk.gui.qt.registration
org.mitk.gui.qt.remeshing
org.mitk.gui.qt.viewnavigator
org.mitk.gui.qt.imagecropper
org.mitk.gui.qt.igttracking
org.mitk.gui.qt.openigtlink
org.mitk.gui.qt.ultrasound
org.mitk.gui.qt.tofutil
)
diff --git a/CMake/Whitelists/CoreCmdApps.cmake b/CMake/Whitelists/CoreCmdApps.cmake
index ccc34d77f7..f74c63a9c6 100644
--- a/CMake/Whitelists/CoreCmdApps.cmake
+++ b/CMake/Whitelists/CoreCmdApps.cmake
@@ -1,25 +1,25 @@
include(${CMAKE_CURRENT_LIST_DIR}/Minimal.cmake)
list(APPEND enabled_modules
AlgorithmsExt
Annotation
CommandLine
ContourModel
CoreCmdApps
DataTypesExt
DICOMPM
DICOMPMIO
DICOMQI
- DICOMReader
- DICOMReaderServices
- DicomRT
- DicomRTIO
+ DICOM
+ DICOMImageIO
+ RT
+ DICOMRTIO
DICOMSegIO
ModelFit
Multilabel
MultilabelIO
LegacyGL
SceneSerialization
SceneSerializationBase
)
diff --git a/CMake/Whitelists/FlowBenchSegmentation.cmake b/CMake/Whitelists/FlowBenchSegmentation.cmake
index 41d3c61250..1f2ac2ac73 100644
--- a/CMake/Whitelists/FlowBenchSegmentation.cmake
+++ b/CMake/Whitelists/FlowBenchSegmentation.cmake
@@ -1,57 +1,57 @@
set(enabled_modules
Core
CppMicroServices
- DICOMReader
+ DICOM
DICOMPM
DataTypesExt
AlgorithmsExt
DICOMQI
Multilabel
SceneSerializationBase
DICOMPMIO
- DICOMReaderServices
+ DICOMImageIO
ContourModel
DICOMSegIO
LegacyGL
MapperExt
SceneSerialization
LegacyIO
IOExt
MultilabelIO
AppUtil
QtWidgets
QtWidgetsExt
Segmentation
SegmentationUI
PlanarFigure
Annotation
IpSegmentation
IpFunc
SurfaceInterpolation
GraphAlgorithms
ImageExtraction
ImageStatistics
)
set(enabled_plugins
org.blueberry.core.commands
org.blueberry.core.expressions
org.blueberry.core.runtime
org.blueberry.ui.qt
org.blueberry.ui.qt.help
org.blueberry.ui.qt.log
org.mitk.core.ext
org.mitk.core.services
org.mitk.gui.common
org.mitk.gui.qt.application
org.mitk.gui.qt.common
org.mitk.gui.qt.datamanager
org.mitk.gui.qt.flow.segmentation
org.mitk.gui.qt.flowapplication
org.mitk.gui.qt.imagenavigator
org.mitk.gui.qt.multilabelsegmentation
org.mitk.gui.qt.properties
org.mitk.gui.qt.segmentation
org.mitk.gui.qt.stdmultiwidgeteditor
org.mitk.planarfigure
)
diff --git a/Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox b/Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox
index e86293bb2f..26d569a356 100644
--- a/Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox
+++ b/Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox
@@ -1,84 +1,84 @@
/**
\page PluginListPage MITK Plugin Manuals
The plugins and bundles provide much of the extended functionality of MITK. Each encapsulates a solution to a problem and associated features. This way one can easily assemble the necessary capabilites for a workflow without adding a lot of bloat, by combining plugins as needed.
\subpage PluginListGeneralPage
- \ref org_mitk_views_basicimageprocessing
- \ref org_mitk_views_datamanager
- - \ref org_mitk_gui_qt_dicom
+ - \ref org_mitk_gui_qt_dicombrowser
- \ref org_mitk_gui_qt_dicominspector
- \ref org_mitk_gui_qt_flowapplication
- \ref org_mitk_gui_qt_imagecropper
- \ref org_mitk_views_imagenavigator
- \ref org_blueberry_ui_qt_log
- \ref org_mitk_gui_qt_matchpoint_algorithm_browser
- \ref org_mitk_gui_qt_matchpoint_algorithm_control
- \ref org_mitk_gui_qt_matchpoint_evaluator
- \ref org_mitk_gui_qt_matchpoint_framereg
- \ref org_mitk_gui_qt_matchpoint_manipulator
- \ref org_mitk_gui_qt_matchpoint_mapper
- \ref org_mitk_gui_qt_matchpoint_visualizer
- \ref org_mitk_gui_qt_measurementtoolbox
- \ref org_mitk_views_moviemaker
- \ref org_mitk_views_multilabelsegmentation
- \ref org_mitk_views_pointsetinteraction
- \ref org_mitk_gui_qt_python
- \ref org_mitk_gui_qt_remeshing
- \ref org_mitk_views_screenshotmaker
- \ref org_mitk_views_segmentation
- \ref org_mitk_gui_qt_flow_segmentation
- \ref org_mitk_gui_qt_viewnavigator
- \ref org_mitk_views_volumevisualization
\subpage PluginListSpecificPage
- \ref org_mitk_views_properties
- \ref org_mitk_gui_qt_aicpregistration
- \ref org_mitk_gui_qt_cest
- \ref org_mitk_gui_qt_classificationsegmentation
- \ref org_mitk_views_cmdlinemodules
- \ref org_mitk_gui_qt_pharmacokinetics_concentration_mri
- \ref org_mitk_gui_qt_pharmacokinetics_mri
- \ref org_mitk_gui_qt_pharmacokinetics_pet
- \ref org_mitk_gui_qt_eventrecorder
- \ref org_mitk_gui_qt_examples
- \ref org_mitk_gui_qt_geometrytools
- \ref org_mitk_gui_qt_igtexample
- \ref org_mitk_gui_qt_igtlplugin
- \ref org_mitk_gui_qt_igttracking
- \ref org_mitk_gui_qt_igttrackingsemiautomaticmeasurement
- \ref org_mitk_views_imagestatistics
- \ref org_mitk_gui_qt_lasercontrol
- \ref org_mitk_gui_qt_fit_demo
- \ref org_mitk_gui_qt_fit_genericfitting
- \ref org_mitk_gui_qt_fit_inspector
- \ref org_mitkexamplesopencv
- \ref org_mitk_gui_qt_overlaymanager
- \ref org_mitk_gui_qt_mitkphenotyping
- \ref org_mitk_gui_qt_photoacoustics_pausmotioncompensation
- \ref org_mitk_example_gui_pcaexample
- \ref org_mitk_gui_qt_preprocessing_resampling
- \ref org_mitk_gui_qt_pharmacokinetics_curvedescriptor
- \ref org_mitk_gui_qt_photoacoustics_imageprocessing
- \ref org_mitk_gui_qt_pharmacokinetics_simulation
- \ref org_mitk_gui_qt_pointsetinteractionmultispectrum
- \ref org_mitk_gui_qt_renderwindowmanager
- \ref org_mitk_gui_qt_photoacoustics_spectralunmixing
- \ref org_mitk_gui_qt_spectrocamrecorder
- \ref org_surfacematerialeditor
- \ref org_toftutorial
- \ref org_blueberry_ui_qt_objectinspector
- \ref org_mitk_gui_qt_ultrasound
- \ref org_mitk_gui_qt_igt_app_echotrack
- \ref org_mitk_gui_qt_xnat
*/
diff --git a/Examples/Dump/CMakeLists.txt b/Examples/Dump/CMakeLists.txt
index ca7227b8c3..ed6d8ef01b 100644
--- a/Examples/Dump/CMakeLists.txt
+++ b/Examples/Dump/CMakeLists.txt
@@ -1,3 +1,3 @@
project(Dump)
-mitk_create_executable(DEPENDS MitkDICOMReader)
+mitk_create_executable(DEPENDS MitkDICOM)
diff --git a/Examples/Plugins/org.mitk.example.gui.customviewer.views/CMakeLists.txt b/Examples/Plugins/org.mitk.example.gui.customviewer.views/CMakeLists.txt
index 5f6bda6941..08b34eadc6 100644
--- a/Examples/Plugins/org.mitk.example.gui.customviewer.views/CMakeLists.txt
+++ b/Examples/Plugins/org.mitk.example.gui.customviewer.views/CMakeLists.txt
@@ -1,8 +1,8 @@
project(org_mitk_example_gui_customviewer_views)
mitk_create_plugin(
EXPORT_DIRECTIVE org_mitk_example_gui_customviewer_views_EXPORT
EXPORTED_INCLUDE_SUFFIXES src
- MODULE_DEPENDS MitkQtWidgetsExt MitkDicomUI
+ MODULE_DEPENDS MitkQtWidgetsExt MitkDICOMUI
NO_INSTALL
)
diff --git a/Modules/CEST/CMakeLists.txt b/Modules/CEST/CMakeLists.txt
index 8aee176bf4..0b43dac056 100644
--- a/Modules/CEST/CMakeLists.txt
+++ b/Modules/CEST/CMakeLists.txt
@@ -1,9 +1,9 @@
MITK_CREATE_MODULE(
DEPENDS MitkCore
- PRIVATE MitkDICOMReader
+ PRIVATE MitkDICOM
PACKAGE_DEPENDS
PRIVATE ITK|ITKIOImageBase+ITKIOGDCM Poco
)
add_subdirectory(autoload/IO)
add_subdirectory(test)
diff --git a/Modules/CEST/autoload/IO/CMakeLists.txt b/Modules/CEST/autoload/IO/CMakeLists.txt
index 0e9e46ddbb..bd424d386a 100644
--- a/Modules/CEST/autoload/IO/CMakeLists.txt
+++ b/Modules/CEST/autoload/IO/CMakeLists.txt
@@ -1,6 +1,6 @@
MITK_CREATE_MODULE( CESTIO
- DEPENDS MitkCEST MitkDICOMReader
+ DEPENDS MitkCEST MitkDICOM
PACKAGE_DEPENDS
PRIVATE ITK|ITKIOGDCM
- AUTOLOAD_WITH MitkDICOMReader
+ AUTOLOAD_WITH MitkDICOM
)
diff --git a/Modules/CEST/autoload/IO/mitkCESTDICOMReaderService.h b/Modules/CEST/autoload/IO/mitkCESTDICOMReaderService.h
index 8131a8fad1..7d31464cf4 100644
--- a/Modules/CEST/autoload/IO/mitkCESTDICOMReaderService.h
+++ b/Modules/CEST/autoload/IO/mitkCESTDICOMReaderService.h
@@ -1,46 +1,46 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef MITKCESTDICOMReaderService_H
#define MITKCESTDICOMReaderService_H
#include
namespace mitk {
/**
Service wrapper that auto selects (using the mitk::DICOMFileReaderSelector) the best DICOMFileReader from
- the DICOMReader module and loads additional meta data for CEST data.
+ the DICOM module and loads additional meta data for CEST data.
*/
class CESTDICOMReaderService : public BaseDICOMReaderService
{
public:
CESTDICOMReaderService();
CESTDICOMReaderService(const std::string& description);
/** Uses the BaseDICOMReaderService Read function and add extra steps for CEST meta data */
using AbstractFileReader::Read;
std::vector > Read() override;
protected:
/** Returns the reader instance that should be used. The decision may be based
* one the passed list of relevant files.*/
mitk::DICOMFileReader::Pointer GetReader(const mitk::StringList& relevantFiles) const override;
private:
CESTDICOMReaderService* Clone() const override;
};
}
#endif // MITKCESTDICOMREADERSERVICE_H
diff --git a/Modules/CEST/autoload/IO/mitkCESTGenericDICOMReaderService.h b/Modules/CEST/autoload/IO/mitkCESTGenericDICOMReaderService.h
index d173fbc3bc..854c74e359 100644
--- a/Modules/CEST/autoload/IO/mitkCESTGenericDICOMReaderService.h
+++ b/Modules/CEST/autoload/IO/mitkCESTGenericDICOMReaderService.h
@@ -1,54 +1,54 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef MITKCESTGenericDICOMReaderService_H
#define MITKCESTGenericDICOMReaderService_H
#include
namespace mitk {
/**
Service wrapper that auto selects (using the mitk::DICOMFileReaderSelector) the best DICOMFileReader from
- the DICOMReader module and loads the CEST relevant meta data from a provided cest_meta.json file or
+ the DICOM module and loads the CEST relevant meta data from a provided cest_meta.json file or
provided from the user as reader options.
*/
class CESTDICOMManualReaderService : public BaseDICOMReaderService
{
public:
CESTDICOMManualReaderService(const CustomMimeType& mimeType, const std::string& description);
/** Uses the AbstractFileReader Read function and add extra steps for CEST meta data */
using AbstractFileReader::Read;
std::vector > Read() override;
Options GetOptions() const override;
us::Any GetOption(const std::string& name) const override;
protected:
CESTDICOMManualReaderService(const CESTDICOMManualReaderService&) = default;
CESTDICOMManualReaderService& operator=(const CESTDICOMManualReaderService&) = delete;
std::string GetCESTMetaFilePath() const;
std::string GetTRECFilePath() const;
std::string GetLISTFilePath() const;
mitk::DICOMFileReader::Pointer GetReader(const mitk::StringList& relevantFiles) const override;
private:
CESTDICOMManualReaderService* Clone() const override;
};
DICOMTagPath DICOM_IMAGING_FREQUENCY_PATH();
}
#endif // MITKCESTGenericDICOMReaderService_H
diff --git a/Modules/Classification/CLUtilities/CMakeLists.txt b/Modules/Classification/CLUtilities/CMakeLists.txt
index 0061dac5ba..ad4d3835f8 100644
--- a/Modules/Classification/CLUtilities/CMakeLists.txt
+++ b/Modules/Classification/CLUtilities/CMakeLists.txt
@@ -1,14 +1,14 @@
mitk_create_module(
- DEPENDS MitkCore MitkCLCore MitkCommandLine MitkDICOMReader
+ DEPENDS MitkCore MitkCLCore MitkCommandLine MitkDICOM
PACKAGE_DEPENDS PUBLIC Eigen PRIVATE tinyxml
)
if(TARGET ${MODULE_TARGET})
if(MITK_USE_OpenMP)
target_link_libraries(${MODULE_TARGET} PUBLIC OpenMP::OpenMP_CXX)
endif()
if(BUILD_TESTING)
add_subdirectory(test)
endif()
endif()
diff --git a/Modules/DICOMReader/CMakeLists.txt b/Modules/DICOM/CMakeLists.txt
similarity index 79%
rename from Modules/DICOMReader/CMakeLists.txt
rename to Modules/DICOM/CMakeLists.txt
index 4a1cff1322..98d7de357c 100644
--- a/Modules/DICOMReader/CMakeLists.txt
+++ b/Modules/DICOM/CMakeLists.txt
@@ -1,8 +1,9 @@
MITK_CREATE_MODULE(
DEPENDS MitkCore
PACKAGE_DEPENDS
PUBLIC tinyxml GDCM
PRIVATE ITK|ITKIOImageBase+ITKIOGDCM DCMTK
)
add_subdirectory(test)
+add_subdirectory(autoload/DICOMImageIO)
diff --git a/Modules/DICOMReader/TODOs.txt b/Modules/DICOM/TODOs.txt
similarity index 100%
rename from Modules/DICOMReader/TODOs.txt
rename to Modules/DICOM/TODOs.txt
diff --git a/Modules/DICOMReaderServices/CMakeLists.txt b/Modules/DICOM/autoload/DICOMImageIO/CMakeLists.txt
similarity index 75%
rename from Modules/DICOMReaderServices/CMakeLists.txt
rename to Modules/DICOM/autoload/DICOMImageIO/CMakeLists.txt
index ca742d6e75..53a0b7f3c2 100644
--- a/Modules/DICOMReaderServices/CMakeLists.txt
+++ b/Modules/DICOM/autoload/DICOMImageIO/CMakeLists.txt
@@ -1,6 +1,6 @@
MITK_CREATE_MODULE(
- DEPENDS MitkCore MitkDICOMReader
+ DEPENDS MitkCore MitkDICOM
PACKAGE_DEPENDS
PRIVATE ITK|ITKIOGDCM+ITKIOImageBase
AUTOLOAD_WITH MitkCore
)
diff --git a/Modules/DICOMReaderServices/files.cmake b/Modules/DICOM/autoload/DICOMImageIO/files.cmake
similarity index 89%
rename from Modules/DICOMReaderServices/files.cmake
rename to Modules/DICOM/autoload/DICOMImageIO/files.cmake
index 1a80da327e..7e3c88e6bf 100644
--- a/Modules/DICOMReaderServices/files.cmake
+++ b/Modules/DICOM/autoload/DICOMImageIO/files.cmake
@@ -1,10 +1,10 @@
file(GLOB_RECURSE H_FILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/include/*")
set(CPP_FILES
mitkAutoSelectingDICOMReaderService.cpp
mitkClassicDICOMSeriesReaderService.cpp
- mitkDICOMReaderServicesActivator.cpp
+ mitkDICOMImageIOActivator.cpp
mitkDICOMTagsOfInterestService.cpp
mitkSimpleVolumeDICOMSeriesReaderService.cpp
mitkManualSelectingDICOMReaderService.cpp
)
diff --git a/Modules/DICOMReaderServices/include/mitkAutoSelectingDICOMReaderService.h b/Modules/DICOM/autoload/DICOMImageIO/include/mitkAutoSelectingDICOMReaderService.h
similarity index 97%
rename from Modules/DICOMReaderServices/include/mitkAutoSelectingDICOMReaderService.h
rename to Modules/DICOM/autoload/DICOMImageIO/include/mitkAutoSelectingDICOMReaderService.h
index e0087dd882..e8e37b07a1 100644
--- a/Modules/DICOMReaderServices/include/mitkAutoSelectingDICOMReaderService.h
+++ b/Modules/DICOM/autoload/DICOMImageIO/include/mitkAutoSelectingDICOMReaderService.h
@@ -1,41 +1,41 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef MITKAUTOSELECTINGDICOMREADERSERVICE_H
#define MITKAUTOSELECTINGDICOMREADERSERVICE_H
#include
namespace mitk {
/**
Service wrapper that auto selects (using the mitk::DICOMFileReaderSelector) the best DICOMFileReader from
- the DICOMReader module.
+ the DICOM module.
*/
class AutoSelectingDICOMReaderService : public BaseDICOMReaderService
{
public:
AutoSelectingDICOMReaderService();
protected:
/** Returns the reader instance that should be used. The decision may be based
* one the passed list of relevant files.*/
mitk::DICOMFileReader::Pointer GetReader(const mitk::StringList& relevantFiles) const override;
private:
AutoSelectingDICOMReaderService* Clone() const override;
};
}
#endif // MITKDICOMSERIESREADERSERVICE_H
diff --git a/Modules/DICOMReaderServices/include/mitkClassicDICOMSeriesReaderService.h b/Modules/DICOM/autoload/DICOMImageIO/include/mitkClassicDICOMSeriesReaderService.h
similarity index 97%
rename from Modules/DICOMReaderServices/include/mitkClassicDICOMSeriesReaderService.h
rename to Modules/DICOM/autoload/DICOMImageIO/include/mitkClassicDICOMSeriesReaderService.h
index 8e1237e9e5..8db472ab28 100644
--- a/Modules/DICOMReaderServices/include/mitkClassicDICOMSeriesReaderService.h
+++ b/Modules/DICOM/autoload/DICOMImageIO/include/mitkClassicDICOMSeriesReaderService.h
@@ -1,40 +1,40 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef MITKCLASSICDICOMSERIESREADERSERVICE_H
#define MITKCLASSICDICOMSERIESREADERSERVICE_H
#include
namespace mitk {
/**
Service wrapper that directly returns an instance of ClassicDICOMSeriesReader class from
- the DICOMReader module.
+ the DICOM module.
*/
class ClassicDICOMSeriesReaderService : public BaseDICOMReaderService
{
public:
ClassicDICOMSeriesReaderService();
protected:
/** Returns a ClassicDICOMSeriesReader instance.*/
mitk::DICOMFileReader::Pointer GetReader(const mitk::StringList& relevantFiles) const override;
private:
ClassicDICOMSeriesReaderService* Clone() const override;
};
}
#endif // MITKCLASSICDICOMSERIESREADERSERVICE_H
diff --git a/Modules/DICOMReaderServices/include/mitkDICOMTagsOfInterestService.h b/Modules/DICOM/autoload/DICOMImageIO/include/mitkDICOMTagsOfInterestService.h
similarity index 100%
rename from Modules/DICOMReaderServices/include/mitkDICOMTagsOfInterestService.h
rename to Modules/DICOM/autoload/DICOMImageIO/include/mitkDICOMTagsOfInterestService.h
diff --git a/Modules/DICOMReaderServices/include/mitkManualSelectingDICOMReaderService.h b/Modules/DICOM/autoload/DICOMImageIO/include/mitkManualSelectingDICOMReaderService.h
similarity index 100%
rename from Modules/DICOMReaderServices/include/mitkManualSelectingDICOMReaderService.h
rename to Modules/DICOM/autoload/DICOMImageIO/include/mitkManualSelectingDICOMReaderService.h
diff --git a/Modules/DICOMReaderServices/include/mitkSimpleVolumeDICOMSeriesReaderService.h b/Modules/DICOM/autoload/DICOMImageIO/include/mitkSimpleVolumeDICOMSeriesReaderService.h
similarity index 100%
rename from Modules/DICOMReaderServices/include/mitkSimpleVolumeDICOMSeriesReaderService.h
rename to Modules/DICOM/autoload/DICOMImageIO/include/mitkSimpleVolumeDICOMSeriesReaderService.h
diff --git a/Modules/DICOMReaderServices/src/mitkAutoSelectingDICOMReaderService.cpp b/Modules/DICOM/autoload/DICOMImageIO/src/mitkAutoSelectingDICOMReaderService.cpp
similarity index 100%
rename from Modules/DICOMReaderServices/src/mitkAutoSelectingDICOMReaderService.cpp
rename to Modules/DICOM/autoload/DICOMImageIO/src/mitkAutoSelectingDICOMReaderService.cpp
diff --git a/Modules/DICOMReaderServices/src/mitkClassicDICOMSeriesReaderService.cpp b/Modules/DICOM/autoload/DICOMImageIO/src/mitkClassicDICOMSeriesReaderService.cpp
similarity index 100%
rename from Modules/DICOMReaderServices/src/mitkClassicDICOMSeriesReaderService.cpp
rename to Modules/DICOM/autoload/DICOMImageIO/src/mitkClassicDICOMSeriesReaderService.cpp
diff --git a/Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.cpp b/Modules/DICOM/autoload/DICOMImageIO/src/mitkDICOMImageIOActivator.cpp
similarity index 87%
rename from Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.cpp
rename to Modules/DICOM/autoload/DICOMImageIO/src/mitkDICOMImageIOActivator.cpp
index 907f5ab402..95ea5f389d 100644
--- a/Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.cpp
+++ b/Modules/DICOM/autoload/DICOMImageIO/src/mitkDICOMImageIOActivator.cpp
@@ -1,123 +1,123 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
-#include "mitkDICOMReaderServicesActivator.h"
+#include "mitkDICOMImageIOActivator.h"
#include "mitkAutoSelectingDICOMReaderService.h"
#include "mitkManualSelectingDICOMReaderService.h"
#include "mitkDICOMTagsOfInterestService.h"
#include "mitkSimpleVolumeDICOMSeriesReaderService.h"
#include "mitkCoreServices.h"
#include "mitkPropertyPersistenceInfo.h"
#include "mitkDICOMIOMetaInformationPropertyConstants.h"
#include "mitkIPropertyPersistence.h"
#include "mitkTemporoSpatialStringProperty.h"
#include
#include
void AddPropertyPersistence(const mitk::PropertyKeyPath& propPath, bool temporoSpatial = false)
{
mitk::CoreServicePointer persistenceService(mitk::CoreServices::GetPropertyPersistence());
mitk::PropertyPersistenceInfo::Pointer info = mitk::PropertyPersistenceInfo::New();
if (propPath.IsExplicit())
{
std::string name = mitk::PropertyKeyPathToPropertyName(propPath);
std::string key = name;
std::replace(key.begin(), key.end(), '.', '_');
info->SetNameAndKey(name, key);
}
else
{
std::string key = mitk::PropertyKeyPathToPersistenceKeyRegEx(propPath);
std::string keyTemplate = mitk::PropertyKeyPathToPersistenceKeyTemplate(propPath);
std::string propRegEx = mitk::PropertyKeyPathToPropertyRegEx(propPath);
std::string propTemplate = mitk::PropertyKeyPathToPersistenceNameTemplate(propPath);
info->UseRegEx(propRegEx, propTemplate, key, keyTemplate);
}
if (temporoSpatial)
{
info->SetDeserializationFunction(mitk::PropertyPersistenceDeserialization::deserializeJSONToTemporoSpatialStringProperty);
info->SetSerializationFunction(mitk::PropertyPersistenceSerialization::serializeTemporoSpatialStringPropertyToJSON);
}
persistenceService->AddInfo(info);
}
namespace mitk {
- void DICOMReaderServicesActivator::Load(us::ModuleContext* context)
+ void DICOMImageIOActivator::Load(us::ModuleContext* context)
{
m_Context = context;
m_AutoSelectingDICOMReader = std::make_unique();
m_SimpleVolumeDICOMSeriesReader = std::make_unique();
m_DICOMTagsOfInterestService = std::make_unique();
context->RegisterService(m_DICOMTagsOfInterestService.get());
DICOMTagPathMapType tagmap = GetDefaultDICOMTagsOfInterest();
for (auto tag : tagmap)
{
m_DICOMTagsOfInterestService->AddTagOfInterest(tag.first);
}
//add properties that should be persistent (if possible/supported by the writer)
AddPropertyPersistence(mitk::DICOMIOMetaInformationPropertyConstants::READER_3D_plus_t());
AddPropertyPersistence(mitk::DICOMIOMetaInformationPropertyConstants::READER_CONFIGURATION());
AddPropertyPersistence(mitk::DICOMIOMetaInformationPropertyConstants::READER_DCMTK());
AddPropertyPersistence(mitk::DICOMIOMetaInformationPropertyConstants::READER_FILES(), true);
AddPropertyPersistence(mitk::DICOMIOMetaInformationPropertyConstants::READER_GANTRY_TILT_CORRECTED());
AddPropertyPersistence(mitk::DICOMIOMetaInformationPropertyConstants::READER_GDCM());
AddPropertyPersistence(mitk::DICOMIOMetaInformationPropertyConstants::READER_IMPLEMENTATION_LEVEL());
AddPropertyPersistence(mitk::DICOMIOMetaInformationPropertyConstants::READER_IMPLEMENTATION_LEVEL_STRING());
AddPropertyPersistence(mitk::DICOMIOMetaInformationPropertyConstants::READER_PIXEL_SPACING_INTERPRETATION());
AddPropertyPersistence(mitk::DICOMIOMetaInformationPropertyConstants::READER_PIXEL_SPACING_INTERPRETATION_STRING());
//We have to handle ManualSelectingDICOMSeriesReader different then the other
//readers. Reason: The reader uses DICOMFileReaderSelector in its constructor.
- //this class needs to access resources of MitkDICOMReader module, which might
+ //this class needs to access resources of MitkDICOM module, which might
//not be initialized yet (that would lead to a crash, see i.a. T27553). Thus check if the module
//is alreade loaded. If not, register a listener and create the reader as soon
//as the module is available.
- auto dicomModule = us::ModuleRegistry::GetModule("MitkDICOMReader");
+ auto dicomModule = us::ModuleRegistry::GetModule("MitkDICOM");
if (nullptr == dicomModule)
{
std::lock_guard lock(m_Mutex);
// Listen for events of module life cycle.
- m_Context->AddModuleListener(this, &DICOMReaderServicesActivator::EnsureManualSelectingDICOMSeriesReader);
+ m_Context->AddModuleListener(this, &DICOMImageIOActivator::EnsureManualSelectingDICOMSeriesReader);
}
else
{
m_ManualSelectingDICOMSeriesReader = std::make_unique();
}
}
- void DICOMReaderServicesActivator::Unload(us::ModuleContext*)
+ void DICOMImageIOActivator::Unload(us::ModuleContext*)
{
}
- void DICOMReaderServicesActivator::EnsureManualSelectingDICOMSeriesReader(const us::ModuleEvent event)
+ void DICOMImageIOActivator::EnsureManualSelectingDICOMSeriesReader(const us::ModuleEvent event)
{
//We have to handle ManualSelectingDICOMSeriesReader different then the other
//readers. For more details see the explanations in the constructor.
std::lock_guard lock(m_Mutex);
- if (nullptr == m_ManualSelectingDICOMSeriesReader && event.GetModule()->GetName()=="MitkDICOMReader" && event.GetType() == us::ModuleEvent::LOADED)
+ if (nullptr == m_ManualSelectingDICOMSeriesReader && event.GetModule()->GetName()=="MitkDICOM" && event.GetType() == us::ModuleEvent::LOADED)
{
m_ManualSelectingDICOMSeriesReader = std::make_unique();
}
}
}
-US_EXPORT_MODULE_ACTIVATOR(mitk::DICOMReaderServicesActivator)
+US_EXPORT_MODULE_ACTIVATOR(mitk::DICOMImageIOActivator)
diff --git a/Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.h b/Modules/DICOM/autoload/DICOMImageIO/src/mitkDICOMImageIOActivator.h
similarity index 85%
rename from Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.h
rename to Modules/DICOM/autoload/DICOMImageIO/src/mitkDICOMImageIOActivator.h
index ae6c9d4de1..52a80c0db8 100644
--- a/Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.h
+++ b/Modules/DICOM/autoload/DICOMImageIO/src/mitkDICOMImageIOActivator.h
@@ -1,50 +1,50 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
-#ifndef MITKDICOMREADERSERVICESACTIVATOR_H
-#define MITKDICOMREADERSERVICESACTIVATOR_H
+#ifndef MITKDICOMIMAGEIOACTIVATOR_H
+#define MITKDICOMIMAGEIOACTIVATOR_H
#include
#include
#include
#include
namespace mitk {
struct IFileReader;
class IDICOMTagsOfInterest;
-class DICOMReaderServicesActivator : public us::ModuleActivator
+class DICOMImageIOActivator : public us::ModuleActivator
{
public:
void Load(us::ModuleContext* context) override;
void Unload(us::ModuleContext* context) override;
private:
void EnsureManualSelectingDICOMSeriesReader(const us::ModuleEvent event);
std::unique_ptr m_AutoSelectingDICOMReader;
std::unique_ptr m_ManualSelectingDICOMSeriesReader;
std::unique_ptr m_SimpleVolumeDICOMSeriesReader;
std::unique_ptr m_DICOMTagsOfInterestService;
us::ModuleContext* m_Context;
/**mutex to guard the module listening */
std::mutex m_Mutex;
};
}
-#endif // MITKDICOMREADERSERVICESACTIVATOR_H
+#endif // MITKDICOMIMAGEIOACTIVATOR_H
diff --git a/Modules/DICOMReaderServices/src/mitkDICOMTagsOfInterestService.cpp b/Modules/DICOM/autoload/DICOMImageIO/src/mitkDICOMTagsOfInterestService.cpp
similarity index 100%
rename from Modules/DICOMReaderServices/src/mitkDICOMTagsOfInterestService.cpp
rename to Modules/DICOM/autoload/DICOMImageIO/src/mitkDICOMTagsOfInterestService.cpp
diff --git a/Modules/DICOMReaderServices/src/mitkManualSelectingDICOMReaderService.cpp b/Modules/DICOM/autoload/DICOMImageIO/src/mitkManualSelectingDICOMReaderService.cpp
similarity index 100%
rename from Modules/DICOMReaderServices/src/mitkManualSelectingDICOMReaderService.cpp
rename to Modules/DICOM/autoload/DICOMImageIO/src/mitkManualSelectingDICOMReaderService.cpp
diff --git a/Modules/DICOMReaderServices/src/mitkSimpleVolumeDICOMSeriesReaderService.cpp b/Modules/DICOM/autoload/DICOMImageIO/src/mitkSimpleVolumeDICOMSeriesReaderService.cpp
similarity index 93%
rename from Modules/DICOMReaderServices/src/mitkSimpleVolumeDICOMSeriesReaderService.cpp
rename to Modules/DICOM/autoload/DICOMImageIO/src/mitkSimpleVolumeDICOMSeriesReaderService.cpp
index 06ca6de7e6..71f9460b5a 100644
--- a/Modules/DICOMReaderServices/src/mitkSimpleVolumeDICOMSeriesReaderService.cpp
+++ b/Modules/DICOM/autoload/DICOMImageIO/src/mitkSimpleVolumeDICOMSeriesReaderService.cpp
@@ -1,64 +1,64 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#include "mitkSimpleVolumeDICOMSeriesReaderService.h"
#include "mitkDICOMReaderConfigurator.h"
#include
#include
#include
#include
#include
#include
#include
namespace mitk {
SimpleVolumeDICOMSeriesReaderService::SimpleVolumeDICOMSeriesReaderService()
: BaseDICOMReaderService("MITK Simple 3D Volume Importer")
{
this->RegisterService();
}
DICOMFileReader::Pointer SimpleVolumeDICOMSeriesReaderService::GetReader(const mitk::StringList& relevantFiles) const
{
mitk::StringList files = relevantFiles;
std::string descr;
us::ModuleResource resource =
- us::ModuleRegistry::GetModule("MitkDICOMReader")->GetResource("configurations/3D/simpleinstancenumber_soft.xml");
+ us::ModuleRegistry::GetModule("MitkDICOM")->GetResource("configurations/3D/simpleinstancenumber_soft.xml");
if ( resource.IsValid() )
{
us::ModuleResourceStream stream(resource);
stream.seekg(0, std::ios::end);
descr.reserve(stream.tellg());
stream.seekg(0, std::ios::beg);
descr.assign((std::istreambuf_iterator(stream)),
std::istreambuf_iterator());
}
DICOMReaderConfigurator::Pointer configurator = DICOMReaderConfigurator::New();
DICOMFileReader::Pointer reader = configurator->CreateFromUTF8ConfigString(descr);
return reader.GetPointer();
};
SimpleVolumeDICOMSeriesReaderService* SimpleVolumeDICOMSeriesReaderService::Clone() const
{
return new SimpleVolumeDICOMSeriesReaderService(*this);
}
}
diff --git a/Modules/DICOMReader/doc/Doxygen/Modules.dox b/Modules/DICOM/doc/Doxygen/Modules.dox
similarity index 88%
rename from Modules/DICOMReader/doc/Doxygen/Modules.dox
rename to Modules/DICOM/doc/Doxygen/Modules.dox
index 2867b4a88e..93953558ba 100644
--- a/Modules/DICOMReader/doc/Doxygen/Modules.dox
+++ b/Modules/DICOM/doc/Doxygen/Modules.dox
@@ -1,38 +1,38 @@
/**
-\defgroup DICOMReaderModule The DICOMReader Module
+\defgroup DICOMModule The DICOM Module
\ingroup MITKModules
\brief DICOM This module contains a number of classes for DICOM image loading within MITK.
-\section DICOMReaderModule_overview Scope
+\section DICOMModule_overview Scope
When people around MITK talk about loading DICOM images or series, they are really not interested in the
images (2D slices) but in a 3D mitk::Image instance that groups DICOM images in a meaningful way.
The task of this module is to provide
- an interface for the general "DICOM files to mitk::Images" transformation: mitk::DICOMFileReader
- a flexible default reader for the most common DICOM images: mitk::DICOMITKSeriesGDCMReader
Most documentation is kept with these classes, so please have a look at their documentations.
\remark Prior to this module, a class called DicomSeriesReader grew too much to be maintainable anymore. Its functionality is conserved by class mitk::ClassicDICOMSeriesReader.
-\section DICOMReaderModule_interface Module Interface
+\section DICOMModule_interface Module Interface
The general loading proceduce is structured by mitk::DICOMFileReader, under the assumption that the best reader for a set of files is not known prior to inspection.
To facilitate applications that need to select between possible readers based on what would be loaded,
file readers are required to implement loading in two separate steps:
1. analysis of a list of files and description of potential mitk::Image%s by means of mitk::DICOMImageBlockDescriptor
2. actual loading of pixel data into mitk::Image%s
A very simple implementation is mitk::DICOMFileReaderSelector which selects the reader with the least possible number of mitk::Images (least confusing for the user?).
-\section DICOMReaderModule_tasks Tasks for future development
+\section DICOMModule_tasks Tasks for future development
Unstructured development tasks and ideas for future extensions
- a multi-frame image reader based on DCMTK
- perspective: slice-by-slice loading
*/
diff --git a/Modules/DICOMReader/doc/Doxygen/tilt-correction.jpg b/Modules/DICOM/doc/Doxygen/tilt-correction.jpg
similarity index 100%
rename from Modules/DICOMReader/doc/Doxygen/tilt-correction.jpg
rename to Modules/DICOM/doc/Doxygen/tilt-correction.jpg
diff --git a/Modules/DICOMReader/doc/images/implementeditkseriesgdcmreader.jpg b/Modules/DICOM/doc/images/implementeditkseriesgdcmreader.jpg
similarity index 100%
rename from Modules/DICOMReader/doc/images/implementeditkseriesgdcmreader.jpg
rename to Modules/DICOM/doc/images/implementeditkseriesgdcmreader.jpg
diff --git a/Modules/DICOMReader/doc/images/tilt-correction.jpg b/Modules/DICOM/doc/images/tilt-correction.jpg
similarity index 100%
rename from Modules/DICOMReader/doc/images/tilt-correction.jpg
rename to Modules/DICOM/doc/images/tilt-correction.jpg
diff --git a/Modules/DICOMReader/files.cmake b/Modules/DICOM/files.cmake
similarity index 100%
rename from Modules/DICOMReader/files.cmake
rename to Modules/DICOM/files.cmake
diff --git a/Modules/DICOMReader/include/mitkBaseDICOMReaderService.h b/Modules/DICOM/include/mitkBaseDICOMReaderService.h
similarity index 89%
rename from Modules/DICOMReader/include/mitkBaseDICOMReaderService.h
rename to Modules/DICOM/include/mitkBaseDICOMReaderService.h
index 0850f14699..ce18439626 100644
--- a/Modules/DICOMReader/include/mitkBaseDICOMReaderService.h
+++ b/Modules/DICOM/include/mitkBaseDICOMReaderService.h
@@ -1,70 +1,70 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef MITKBASEDICOMREADERSERVICE_H
#define MITKBASEDICOMREADERSERVICE_H
#include
#include
-#include "MitkDICOMReaderExports.h"
+#include "MitkDICOMExports.h"
namespace mitk {
/**
Base class for service wrappers that make DICOMFileReader from
- the DICOMReader module usable.
+ the DICOM module usable.
*/
-class MITKDICOMREADER_EXPORT BaseDICOMReaderService : public AbstractFileReader
+class MITKDICOM_EXPORT BaseDICOMReaderService : public AbstractFileReader
{
public:
using AbstractFileReader::Read;
IFileReader::ConfidenceLevel GetConfidenceLevel() const override;
protected:
BaseDICOMReaderService(const std::string& description);
BaseDICOMReaderService(const mitk::CustomMimeType& customType, const std::string& description);
/** Uses this->GetRelevantFile() and this->GetReader to load the image.
* data and puts it into base data instances-*/
std::vector> DoRead() override;
/** Returns the list of all DCM files that are in the same directory
* like this->GetLocalFileName().*/
mitk::StringList GetDICOMFilesInSameDirectory() const;
/** Returns the reader instance that should be used. The decision may be based
* one the passed list of relevant files.*/
virtual mitk::DICOMFileReader::Pointer GetReader(const mitk::StringList& relevantFiles) const = 0;
void SetOnlyRegardOwnSeries(bool);
bool GetOnlyRegardOwnSeries() const;
private:
/** Flags that constrols if the read() operation should only regard DICOM files of the same series
if the specified GetLocalFileName() is a file. If it is a director, this flag has no impact (it is
assumed false then).
*/
bool m_OnlyRegardOwnSeries = true;
};
class IPropertyProvider;
/** Helper function that generates a name string (e.g. for DataNode names) from the DICOM properties of the passed
provider instance. If the instance is nullptr, or has no dicom properties DataNode::NO_NAME_VALUE() will be returned.*/
-std::string MITKDICOMREADER_EXPORT GenerateNameFromDICOMProperties(const mitk::IPropertyProvider* provider);
+std::string MITKDICOM_EXPORT GenerateNameFromDICOMProperties(const mitk::IPropertyProvider* provider);
}
#endif // MITKBASEDICOMREADERSERVICE_H
diff --git a/Modules/DICOMReader/include/mitkClassicDICOMSeriesReader.h b/Modules/DICOM/include/mitkClassicDICOMSeriesReader.h
similarity index 94%
rename from Modules/DICOMReader/include/mitkClassicDICOMSeriesReader.h
rename to Modules/DICOM/include/mitkClassicDICOMSeriesReader.h
index 5e19e2901f..4aa37c6118 100644
--- a/Modules/DICOMReader/include/mitkClassicDICOMSeriesReader.h
+++ b/Modules/DICOM/include/mitkClassicDICOMSeriesReader.h
@@ -1,79 +1,79 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef mitkClassicDICOMSeriesReader_h
#define mitkClassicDICOMSeriesReader_h
#include "mitkThreeDnTDICOMSeriesReader.h"
-#include "MitkDICOMReaderExports.h"
+#include "MitkDICOMExports.h"
namespace mitk
{
/**
- \ingroup DICOMReaderModule
+ \ingroup DICOMModule
\brief Sorting and grouping like mitk::DicomSeriesReader until 2013.
This class implements the same functionality as the legacy class DicomSeriesReader,
except that is is 75 lines instead of 2500 lines.
\warning Since the old class is known to have problems with some series,
it is advised to use a good configuration of DICOMITKSeriesGDCMReader,
which can be obtained by using DICOMFileReaderSelector.
The following text documents the actual sorting logic of this reader.
The class groups datasets that have different values in any of the following tags:
- (0028,0010) Number of Rows
- (0028,0011) Number of Columns
- (0028,0030) Pixel Spacing
- (0018,1164) Imager Pixel Spacing
- (0020,0037) %Image Orientation (Patient)
- (0018,0050) Slice Thickness
- (0028,0008) Number of Frames
- (0020,000e) Series Instance UID
Within each of the groups, datasets are sorted by the value of the following tags (primary sorting first):
- (0020,0032) %Image Position (Patient) (distance from zero along normal of (0020,0037) %Image Orientation (Patient))
- (0020,0012) Aqcuisition Number
- (0008,0032) Aqcuisition Time
- (0018,1060) Trigger Time
- (0008,0018) SOP Instance UID (last resort, not really meaningful but decides clearly)
If the series was acquired using a tilted gantry, this will be "fixed" by applying a shear transformation.
If multiple images occupy the same position in space, it is assumed that this indicated a 3D+t image.
*/
-class MITKDICOMREADER_EXPORT ClassicDICOMSeriesReader : public ThreeDnTDICOMSeriesReader
+class MITKDICOM_EXPORT ClassicDICOMSeriesReader : public ThreeDnTDICOMSeriesReader
{
public:
mitkClassMacro( ClassicDICOMSeriesReader, DICOMITKSeriesGDCMReader );
mitkCloneMacro( ClassicDICOMSeriesReader );
itkNewMacro( ClassicDICOMSeriesReader );
bool operator==(const DICOMFileReader& other) const override;
protected:
ClassicDICOMSeriesReader();
~ClassicDICOMSeriesReader() override;
ClassicDICOMSeriesReader(const ClassicDICOMSeriesReader& other);
ClassicDICOMSeriesReader& operator=(const ClassicDICOMSeriesReader& other);
};
}
#endif
diff --git a/Modules/DICOMReader/include/mitkDICOMDCMTKTagScanner.h b/Modules/DICOM/include/mitkDICOMDCMTKTagScanner.h
similarity index 95%
rename from Modules/DICOMReader/include/mitkDICOMDCMTKTagScanner.h
rename to Modules/DICOM/include/mitkDICOMDCMTKTagScanner.h
index fd7248478e..248843d32c 100644
--- a/Modules/DICOMReader/include/mitkDICOMDCMTKTagScanner.h
+++ b/Modules/DICOM/include/mitkDICOMDCMTKTagScanner.h
@@ -1,95 +1,95 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef mitkDICOMDCMTKTagScanner_h
#define mitkDICOMDCMTKTagScanner_h
#include
#include "mitkDICOMTagScanner.h"
#include "mitkDICOMEnums.h"
#include "mitkDICOMGenericTagCache.h"
namespace mitk
{
/**
- \ingroup DICOMReaderModule
+ \ingroup DICOMModule
\brief Encapsulates the tag scanning process for a set of DICOM files.
For the scanning process it uses DCMTK functionality.
*/
- class MITKDICOMREADER_EXPORT DICOMDCMTKTagScanner : public DICOMTagScanner
+ class MITKDICOM_EXPORT DICOMDCMTKTagScanner : public DICOMTagScanner
{
public:
mitkClassMacro(DICOMDCMTKTagScanner, DICOMTagScanner);
itkFactorylessNewMacro( DICOMDCMTKTagScanner );
itkCloneMacro(Self);
/**
\brief Add this tag to the scanning process.
*/
void AddTag(const DICOMTag& tag) override;
/**
\brief Add a list of tags to the scanning process.
*/
void AddTags(const DICOMTagList& tags) override;
/**
\brief Add this tag path to the scanning process.
*/
void AddTagPath(const DICOMTagPath& tag) override;
/**
\brief Add a list of tag pathes to the scanning process.
*/
void AddTagPaths(const DICOMTagPathList& tags) override;
/**
\brief Define the list of files to scan.
This does not ADD to an internal list, but it replaces the
whole list of files.
*/
void SetInputFiles(const StringList& filenames) override;
/**
\brief Start the scanning process.
Calling Scan() will invalidate previous scans, forgetting
all about files and tags from files that have been scanned
previously.
*/
void Scan() override;
/**
\brief Retrieve a result list for file-by-file tag access.
*/
DICOMDatasetAccessingImageFrameList GetFrameInfoList() const override;
/**
\brief Retrieve Pointer to the complete cache of the scan.
*/
DICOMTagCache::Pointer GetScanCache() const override;
protected:
DICOMDCMTKTagScanner();
~DICOMDCMTKTagScanner() override;
std::set m_ScannedTags;
StringList m_InputFilenames;
DICOMGenericTagCache::Pointer m_Cache;
private:
DICOMDCMTKTagScanner(const DICOMDCMTKTagScanner&);
};
}
#endif
diff --git a/Modules/DICOMReader/include/mitkDICOMDatasetAccess.h b/Modules/DICOM/include/mitkDICOMDatasetAccess.h
similarity index 92%
rename from Modules/DICOMReader/include/mitkDICOMDatasetAccess.h
rename to Modules/DICOM/include/mitkDICOMDatasetAccess.h
index 6b33ec8b6f..53b115ee5f 100644
--- a/Modules/DICOMReader/include/mitkDICOMDatasetAccess.h
+++ b/Modules/DICOM/include/mitkDICOMDatasetAccess.h
@@ -1,74 +1,74 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef mitkDICOMDatasetAccess_h
#define mitkDICOMDatasetAccess_h
#include "mitkDICOMTag.h"
#include "mitkDICOMTagPath.h"
-#include "MitkDICOMReaderExports.h"
+#include "MitkDICOMExports.h"
namespace mitk
{
/**
Helper class that is used for the result of DICOMDatasetAccess::GetTagValueAsString
*/
- struct MITKDICOMREADER_EXPORT DICOMDatasetFinding
+ struct MITKDICOM_EXPORT DICOMDatasetFinding
{
/**Indicates if value is valid or not.*/
bool isValid;
/**The found value.*/
std::string value;
/**Tag path of the value*/
DICOMTagPath path;
DICOMDatasetFinding(bool valid = false, const std::string& aValue = "", const DICOMTagPath& aPath = DICOMTagPath()) : isValid(valid), value(aValue), path(aPath)
{};
};
/**
- \ingroup DICOMReaderModule
+ \ingroup DICOMModule
\brief Interface to datasets that is presented to sorting classes such as DICOMDatasetSorter.
Minimal interface to hide actual implementation, which might rely on GDCM.
*/
-class MITKDICOMREADER_EXPORT DICOMDatasetAccess
+class MITKDICOM_EXPORT DICOMDatasetAccess
{
public:
typedef std::list FindingsListType;
/// \brief Return a filename if possible.
/// If DICOM is not read from file but from somewhere else (network, database), we might not have files.
virtual std::string GetFilenameIfAvailable() const = 0;
/** \brief Return a DICOMDatasetFinding instance of the tag.
The return containes (if valid) the raw value of the tag as a string.
\param tag Tag which value should be retreived.
*/
virtual DICOMDatasetFinding GetTagValueAsString(const DICOMTag& tag) const = 0;
/** \brief Return a list of DICOMDatasetFindings of the passed tag path.
The return containes (if valid) the raw value of the tag as a string.
\param path Tag path which value should be retreived.
*/
virtual FindingsListType GetTagValueAsString(const DICOMTagPath& path) const = 0;
virtual ~DICOMDatasetAccess() {};
};
typedef std::vector DICOMDatasetList;
}
#endif
diff --git a/Modules/DICOMReader/include/mitkDICOMDatasetAccessingImageFrameInfo.h b/Modules/DICOM/include/mitkDICOMDatasetAccessingImageFrameInfo.h
similarity index 83%
rename from Modules/DICOMReader/include/mitkDICOMDatasetAccessingImageFrameInfo.h
rename to Modules/DICOM/include/mitkDICOMDatasetAccessingImageFrameInfo.h
index 938e7d791e..064f683914 100644
--- a/Modules/DICOMReader/include/mitkDICOMDatasetAccessingImageFrameInfo.h
+++ b/Modules/DICOM/include/mitkDICOMDatasetAccessingImageFrameInfo.h
@@ -1,59 +1,59 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef mitkDICOMDatasetAccessingImageFrameInfo_h
#define mitkDICOMDatasetAccessingImageFrameInfo_h
#include "mitkDICOMImageFrameInfo.h"
#include "mitkDICOMDatasetAccess.h"
-#include "MitkDICOMReaderExports.h"
+#include "MitkDICOMExports.h"
namespace mitk
{
/**
- \ingroup DICOMReaderModule
+ \ingroup DICOMModule
\brief Defines an abstract base class for DICOM image frame infos with data access.
This abstract base class extends the DICOMImageFrameInfo by the DICOMDatasetAccess interface.
This allows to directly query for tag values of a frame/file specified by the info.
DICOMGDCMImageFrameInfo is an example for a concrete implementation.
*/
- class MITKDICOMREADER_EXPORT DICOMDatasetAccessingImageFrameInfo : public DICOMImageFrameInfo, public DICOMDatasetAccess
+ class MITKDICOM_EXPORT DICOMDatasetAccessingImageFrameInfo : public DICOMImageFrameInfo, public DICOMDatasetAccess
{
public:
mitkClassMacro(DICOMDatasetAccessingImageFrameInfo, DICOMImageFrameInfo);
protected:
DICOMDatasetAccessingImageFrameInfo(const std::string& filename = "", unsigned int frameNo = 0);
~DICOMDatasetAccessingImageFrameInfo() override;
private:
DICOMDatasetAccessingImageFrameInfo(const DICOMDatasetAccessingImageFrameInfo::Pointer& frameinfo);
Self& operator = (const Self& frameinfo);
};
typedef std::vector DICOMDatasetAccessingImageFrameList;
- MITKDICOMREADER_EXPORT mitk::DICOMImageFrameList
+ MITKDICOM_EXPORT mitk::DICOMImageFrameList
ConvertToDICOMImageFrameList(const DICOMDatasetAccessingImageFrameList& input);
- MITKDICOMREADER_EXPORT mitk::DICOMDatasetList
+ MITKDICOM_EXPORT mitk::DICOMDatasetList
ConvertToDICOMDatasetList(const DICOMDatasetAccessingImageFrameList& input);
- MITKDICOMREADER_EXPORT mitk::DICOMDatasetAccessingImageFrameList
+ MITKDICOM_EXPORT mitk::DICOMDatasetAccessingImageFrameList
ConvertToDICOMDatasetAccessingImageFrameList(const DICOMDatasetList& input);
}
#endif
diff --git a/Modules/DICOMReader/include/mitkDICOMDatasetSorter.h b/Modules/DICOM/include/mitkDICOMDatasetSorter.h
similarity index 96%
rename from Modules/DICOMReader/include/mitkDICOMDatasetSorter.h
rename to Modules/DICOM/include/mitkDICOMDatasetSorter.h
index 88487ca536..98ae516a7d 100644
--- a/Modules/DICOMReader/include/mitkDICOMDatasetSorter.h
+++ b/Modules/DICOM/include/mitkDICOMDatasetSorter.h
@@ -1,91 +1,91 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef mitkDICOMDatasetSorter_h
#define mitkDICOMDatasetSorter_h
#include "itkObjectFactory.h"
#include "mitkCommon.h"
#include "mitkDICOMDatasetAccess.h"
namespace mitk
{
/**
- \ingroup DICOMReaderModule
+ \ingroup DICOMModule
\brief The sorting/splitting building-block of DICOMITKSeriesGDCMReader.
This class describes the interface of the sorting/splitting process
described as part of DICOMITKSeriesGDCMReader::AnalyzeInputFiles()
(see \ref DICOMITKSeriesGDCMReader_LoadingStrategy).
The prodecure is simple:
- take a list of input datasets (DICOMDatasetAccess)
- sort them (to be defined by sub-classes, based on specific tags)
- return the sorting result as outputs (the single input might be distributed into multiple outputs)
The simplest and most generic form of sorting is implemented in
sub-class DICOMTagBasedSorter.
*/
-class MITKDICOMREADER_EXPORT DICOMDatasetSorter : public itk::LightObject
+class MITKDICOM_EXPORT DICOMDatasetSorter : public itk::LightObject
{
public:
mitkClassMacroItkParent( DICOMDatasetSorter, itk::LightObject );
/**
\brief Return the tags of interest (to facilitate scanning)
*/
virtual DICOMTagList GetTagsOfInterest() = 0;
/// \brief Input for sorting
void SetInput(DICOMDatasetList filenames);
/// \brief Input for sorting
const DICOMDatasetList& GetInput() const;
/// \brief Sort input datasets into one or multiple outputs.
virtual void Sort() = 0;
/// \brief Output of the sorting process.
unsigned int GetNumberOfOutputs() const;
/// \brief Output of the sorting process.
const DICOMDatasetList& GetOutput(unsigned int index) const;
/// \brief Output of the sorting process.
DICOMDatasetList& GetOutput(unsigned int index);
/// \brief Print configuration details into stream.
virtual void PrintConfiguration(std::ostream& os, const std::string& indent = "") const = 0;
virtual bool operator==(const DICOMDatasetSorter& other) const = 0;
protected:
DICOMDatasetSorter();
~DICOMDatasetSorter() override;
DICOMDatasetSorter(const DICOMDatasetSorter& other);
DICOMDatasetSorter& operator=(const DICOMDatasetSorter& other);
void ClearOutputs();
void SetNumberOfOutputs(unsigned int numberOfOutputs);
void SetOutput(unsigned int index, const DICOMDatasetList& output);
private:
DICOMDatasetList m_Input;
std::vector< DICOMDatasetList > m_Outputs;
};
}
#endif
diff --git a/Modules/DICOMReader/include/mitkDICOMEnums.h b/Modules/DICOM/include/mitkDICOMEnums.h
similarity index 97%
rename from Modules/DICOMReader/include/mitkDICOMEnums.h
rename to Modules/DICOM/include/mitkDICOMEnums.h
index 48152667ce..51993a0f19 100644
--- a/Modules/DICOMReader/include/mitkDICOMEnums.h
+++ b/Modules/DICOM/include/mitkDICOMEnums.h
@@ -1,64 +1,64 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef mitkDICOMEnums_h
#define mitkDICOMEnums_h
#include
#include
#include
namespace mitk
{
typedef std::vector StringList;
typedef std::vector BoolList;
/**
- \ingroup DICOMReaderModule
+ \ingroup DICOMModule
\brief How the mitk::Image spacing should be interpreted (see mitk::DICOMFileReader).
Compare DICOM PS 3.3 10.7 (Basic Pixel Spacing Calibration Macro).
*/
typedef enum
{
SpacingInPatient, ///< distances are mm within a patient
SpacingAtDetector, ///< distances are mm at detector surface
SpacingUnknown ///< NO spacing information is present, we use (1,1) as default
} PixelSpacingInterpretation;
/**
- \ingroup DICOMReaderModule
+ \ingroup DICOMModule
\brief Describes how well the reader is tested for a certain file type (see mitk::DICOMFileReader).
Applications should not rely on the outcome for images which are reported
Implemented or Unsupported.
Errors to load images which are reported as Supported
are considered bugs. For PartlySupported please check the reader documentation on specifics.
*/
typedef enum
{
SOPClassSupported, ///< loader code and tests are established
SOPClassPartlySupported, ///< loader code and tests are establised for specific parts of a SOP Class
SOPClassImplemented, ///< loader code is implemented but not accompanied by tests
SOPClassUnsupported, ///< loader code is not known to work with this SOP Class
SOPClassUnknown, ///< loader did not yet inspect any images, unknown fitness
} ReaderImplementationLevel;
/// Convert mitk::PixelSpacingInterpretation to a human readable string.
std::string PixelSpacingInterpretationToString(const PixelSpacingInterpretation& value);
/// Convert mitk::ReaderImplementationLevel to a human readable string.
std::string ReaderImplementationLevelToString( const ReaderImplementationLevel& enumValue );
}
#endif
diff --git a/Modules/DICOMReader/include/mitkDICOMFileReader.h b/Modules/DICOM/include/mitkDICOMFileReader.h
similarity index 97%
rename from Modules/DICOMReader/include/mitkDICOMFileReader.h
rename to Modules/DICOM/include/mitkDICOMFileReader.h
index 91407ffa88..43f8bd7d91 100644
--- a/Modules/DICOMReader/include/mitkDICOMFileReader.h
+++ b/Modules/DICOM/include/mitkDICOMFileReader.h
@@ -1,169 +1,169 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef mitkDICOMFileReader_h
#define mitkDICOMFileReader_h
#include "itkObjectFactory.h"
#include "mitkCommon.h"
-#include "MitkDICOMReaderExports.h"
+#include "MitkDICOMExports.h"
#include "mitkDICOMTagCache.h"
#include "mitkDICOMImageBlockDescriptor.h"
#include
namespace mitk
{
// TODO Philips3D!
// TODO http://bugs.mitk.org/show_bug.cgi?id=11572 ?
/**
- \ingroup DICOMReaderModule
+ \ingroup DICOMModule
\brief Interface for DICOM readers that produce mitk::Images.
- As described in \ref DICOMReaderModule, this class structures
+ As described in \ref DICOMModule, this class structures
the reader's part in the process of analyzing a set of DICOM files
and selecting the most appropriate reader.
The overall loading process is as follows:
- Define input files: a list of absolute filenames
- Analyze the potential output: see what can be made of the input files, describe with
DICOMImageBlockDescriptor%s
- Load pixel data: an application will usually analyze files using multiple readers and only load
with a single reader
Sub-classes are required to implement a number of methods that
reflect above structure. See mitk::DICOMITKSeriesGDCMReader for
an example.
To help applications in describing different readers to the user, each reader
brings a number of methods that describe its configuration/specifics by
means of a short label and a (longer) description.
*/
-class MITKDICOMREADER_EXPORT DICOMFileReader : public itk::Object
+class MITKDICOM_EXPORT DICOMFileReader : public itk::Object
{
public:
mitkClassMacroItkParent( DICOMFileReader, itk::Object );
/// Test whether a file is DICOM at all
static bool IsDICOM( const std::string& filename );
/// Indicate whether this reader can handle given file
virtual bool CanHandleFile( const std::string& filename ) = 0;
/// This input files
void SetInputFiles( const StringList& filenames );
/// This input files
const StringList& GetInputFiles() const;
/// Analyze input files
virtual void AnalyzeInputFiles() = 0;
/// Number of outputs, only meaningful after calling AnalyzeInputFiles()
unsigned int GetNumberOfOutputs() const;
/// Individual outputs, only meaningful after calling AnalyzeInputFiles(). \throws std::invalid_argument
const DICOMImageBlockDescriptor& GetOutput( unsigned int index ) const;
// void AllocateOutputImages(); TODO for later implementation of slice-by-slice loading
/// Load the mitk::Image%s in our outputs, the DICOMImageBlockDescriptor. To be called only after
/// AnalyzeInputFiles(). Take care of potential exceptions!
virtual bool LoadImages() = 0;
virtual DICOMTagPathList GetTagsOfInterest() const = 0;
/// A way to provide external knowledge about files and tag values is appreciated.
virtual void SetTagCache( const DICOMTagCache::Pointer& ) = 0;
/// Short label/name to describe this reader
void SetConfigurationLabel( const std::string& );
/// Short label/name to describe this reader
std::string GetConfigurationLabel() const;
/// One-sentence description of the reader's loading "strategy"
void SetConfigurationDescription( const std::string& );
/// One-sentence description of the reader's loading "strategy"
std::string GetConfigurationDescription() const;
/// Print configuration description to given stream, for human reader
void PrintConfiguration( std::ostream& os ) const;
/// Print output description to given stream, for human reader
void PrintOutputs( std::ostream& os, bool filenameDetails = false ) const;
virtual bool operator==( const DICOMFileReader& other ) const = 0;
/** Type specifies additional tags of interest. Key is the tag path of interest.
* The value is an optional user defined name for the property that should be used to store the tag value(s).
* Empty value is default and will imply to use the found DICOMTagPath as property name.*/
typedef DICOMImageBlockDescriptor::AdditionalTagsMapType AdditionalTagsMapType;
/**
* \brief Set a list of DICOMTagPaths that specifiy all DICOM-Tags that will be copied into the property of the mitk::Image.
*
* This method can be used to specify a list of DICOM-tags that shall be available after the loading.
* The value in the tagMap is an optional user defined name for the property key that should be used
* when storing the property). Empty value is default and will imply to use the found DICOMTagPath
* as property key.
* By default the content of the DICOM tags will be stored in a StringLookupTable on the mitk::Image.
* This behaviour can be changed by setting a different TagLookupTableToPropertyFunctor via
* SetTagLookupTableToPropertyFunctor().
*/
virtual void SetAdditionalTagsOfInterest(const AdditionalTagsMapType& tagList);
/**
* \brief Set a functor that defines how the slice-specific tag-values are stored in a Property.
*
* This method sets a functor that is given a StringLookupTable that contains the values of one DICOM tag
* mapped to the slice index.
* The functor is supposed to store these values in an mitk Property.
*
* By default, the StringLookupTable is stored in a StringLookupTableProperty except if all values are
* identical. In this case, the unique value is stored only once in a StringProperty.
*/
virtual void SetTagLookupTableToPropertyFunctor(
mitk::DICOMImageBlockDescriptor::TagLookupTableToPropertyFunctor functor );
protected:
DICOMFileReader();
~DICOMFileReader() override;
DICOMFileReader( const DICOMFileReader& other );
DICOMFileReader& operator=( const DICOMFileReader& other );
void ClearOutputs();
void SetNumberOfOutputs( unsigned int numberOfOutputs );
void SetOutput( unsigned int index, const DICOMImageBlockDescriptor& output );
/// non-const access to the DICOMImageBlockDescriptor
DICOMImageBlockDescriptor& InternalGetOutput( unsigned int index );
/// Configuration description for human reader, to be implemented by sub-classes
virtual void InternalPrintConfiguration( std::ostream& os ) const = 0;
virtual AdditionalTagsMapType GetAdditionalTagsOfInterest() const;
mitk::DICOMImageBlockDescriptor::TagLookupTableToPropertyFunctor GetTagLookupTableToPropertyFunctor() const;
private:
StringList m_InputFilenames;
std::vector m_Outputs;
std::string m_ConfigLabel;
std::string m_ConfigDescription;
AdditionalTagsMapType m_AdditionalTagsOfInterest;
mitk::DICOMImageBlockDescriptor::TagLookupTableToPropertyFunctor m_TagLookupTableToPropertyFunctor;
};
}
#endif
diff --git a/Modules/DICOMReader/include/mitkDICOMFileReaderSelector.h b/Modules/DICOM/include/mitkDICOMFileReaderSelector.h
similarity index 92%
rename from Modules/DICOMReader/include/mitkDICOMFileReaderSelector.h
rename to Modules/DICOM/include/mitkDICOMFileReaderSelector.h
index 1ec18d21e6..fc69b29aa6 100644
--- a/Modules/DICOMReader/include/mitkDICOMFileReaderSelector.h
+++ b/Modules/DICOM/include/mitkDICOMFileReaderSelector.h
@@ -1,116 +1,116 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef mitkDICOMFileReaderSelector_h
#define mitkDICOMFileReaderSelector_h
#include "mitkDICOMFileReader.h"
#include
namespace mitk
{
/**
- \ingroup DICOMReaderModule
+ \ingroup DICOMModule
\brief Simple best-reader selection.
This class implements a process of comparing different DICOMFileReader%s and selecting
the reader with the minimal number of mitk::Image%s in its output.
The code found in this class can
- just be used to select a reader using this simple strategy
- be taken as an example of how to use DICOMFileReader%s
To create a selection of potential readers, the class makes use
of mitk::DICOMReaderConfigurator, i.e. DICOMFileReaderSelector
also expects the configuration files/strings to be in the format
expected by mitk::DICOMReaderConfigurator.
Two convenience methods load "default" configurations from
compiled-in resources: LoadBuiltIn3DConfigs() and LoadBuiltIn3DnTConfigs().
@remark If you use LoadBuiltIn3DConfigs() and LoadBuiltIn3DnTConfigs() you must
- ensure that the MitkDICOMReader module (and therefore its resources) is properly
+ ensure that the MitkDICOM module (and therefore its resources) is properly
loaded. If the module is not available these methods will do nothing.
This can especially lead to problems if these methods are used in the scope
of another module's activator.
*/
-class MITKDICOMREADER_EXPORT DICOMFileReaderSelector : public itk::LightObject
+class MITKDICOM_EXPORT DICOMFileReaderSelector : public itk::LightObject
{
public:
typedef std::list ReaderList;
mitkClassMacroItkParent( DICOMFileReaderSelector, itk::LightObject );
itkNewMacro( DICOMFileReaderSelector );
/// \brief Add a configuration as expected by DICOMReaderConfigurator.
/// Configs can only be reset by instantiating a new DICOMFileReaderSelector.
void AddConfig(const std::string& xmlDescription);
/// \brief Add a configuration as expected by DICOMReaderConfigurator.
/// Configs can only be reset by instantiating a new DICOMFileReaderSelector.
void AddConfigFile(const std::string& filename);
/// \brief Add a configuration that is stored in the passed us::ModuleResourse.
/// Configs can only be reset by instantiating a new DICOMFileReaderSelector.
void AddConfigFromResource(us::ModuleResource& resource);
/// \brief Add a whole pre-configured reader to the selection process.
void AddFileReaderCanditate(DICOMFileReader::Pointer reader);
/// \brief Load 3D image creating configurations from the MITK module system (see us::Module::FindResources()).
- /// For a default set of configurations, look into the directory Resources of the DICOMReader module.
- /// @remark If you use this function you must ensure that the MitkDICOMReader module(and therefore its resources)
+ /// For a default set of configurations, look into the directory Resources of the DICOM module.
+ /// @remark If you use this function you must ensure that the MitkDICOM module(and therefore its resources)
/// is properly loaded. If the module is not available this function will do nothing.
/// This can especially lead to problem if this function is used in the scope
/// of another module's activator.
void LoadBuiltIn3DConfigs();
/// \brief Load 3D+t image creating configurations from the MITK module system (see us::Module::FindResources()).
- /// For a default set of configurations, look into the directory Resources of the DICOMReader module.
- /// @remark If you use this function you must ensure that the MitkDICOMReader module(and therefore its resources)
+ /// For a default set of configurations, look into the directory Resources of the DICOM module.
+ /// @remark If you use this function you must ensure that the MitkDICOM module(and therefore its resources)
/// is properly loaded. If the module is not available this function will do nothing.
/// This can especially lead to problem if this function is used in the scope
/// of another module's activator.
void LoadBuiltIn3DnTConfigs();
/// \brief Return all the DICOMFileReader%s that are currently used for selection by this class.
/// The readers returned by this method depend on what config files have been added earlier
/// (or which of the built-in readers have been loaded)
ReaderList GetAllConfiguredReaders() const;
/// Input files
void SetInputFiles(StringList filenames);
/// Input files
const StringList& GetInputFiles() const;
/// Execute the analysis and selection process. The first reader with a minimal number of outputs will be returned.
DICOMFileReader::Pointer GetFirstReaderWithMinimumNumberOfOutputImages();
protected:
DICOMFileReaderSelector();
~DICOMFileReaderSelector() override;
void AddConfigsFromResources(const std::string& path);
void AddConfigFromResource(const std::string& resourcename);
private:
StringList m_PossibleConfigurations;
StringList m_InputFilenames;
ReaderList m_Readers;
};
} // namespace
#endif // mitkDICOMFileReaderSelector_h
diff --git a/Modules/DICOMReader/include/mitkDICOMFilesHelper.h b/Modules/DICOM/include/mitkDICOMFilesHelper.h
similarity index 97%
rename from Modules/DICOMReader/include/mitkDICOMFilesHelper.h
rename to Modules/DICOM/include/mitkDICOMFilesHelper.h
index 104b7f2511..e3165e754c 100644
--- a/Modules/DICOMReader/include/mitkDICOMFilesHelper.h
+++ b/Modules/DICOM/include/mitkDICOMFilesHelper.h
@@ -1,41 +1,41 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef MITKDICOMFILESHELPER_H
#define MITKDICOMFILESHELPER_H
#include
#include
-#include
+#include
namespace mitk {
typedef std::vector DICOMFilePathList;
/** Helper functions. Searches for all files in the directory of the passed file path.
All files will be checked if they are DICOM files. All DICOM files will be added to the result and
returned.
@remark The helper does no sorting of any kind.*/
DICOMFilePathList GetDICOMFilesInSameDirectory(const std::string& filePath);
/** All passed files will be checked if they are DICOM files.
All DICOM files will be added to the result and returned.
@remark The helper does no sorting of any kind.*/
DICOMFilePathList FilterForDICOMFiles(const DICOMFilePathList& fileList);
/** Returns all DICOM files passed with fileList that have the same series instance UID then the passed refFilePath.
@pre refFilePath must point to a valid DICOM file.*/
DICOMFilePathList FilterDICOMFilesForSameSeries(const std::string& refFilePath, const DICOMFilePathList& fileList);
}
#endif // MITKDICOMFILESHELPER_H
diff --git a/Modules/DICOMReader/include/mitkDICOMGDCMImageFrameInfo.h b/Modules/DICOM/include/mitkDICOMGDCMImageFrameInfo.h
similarity index 94%
rename from Modules/DICOMReader/include/mitkDICOMGDCMImageFrameInfo.h
rename to Modules/DICOM/include/mitkDICOMGDCMImageFrameInfo.h
index e756fc18b5..bed6f3986e 100644
--- a/Modules/DICOMReader/include/mitkDICOMGDCMImageFrameInfo.h
+++ b/Modules/DICOM/include/mitkDICOMGDCMImageFrameInfo.h
@@ -1,60 +1,60 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef mitkDICOMGDCMImageFrameInfo_h
#define mitkDICOMGDCMImageFrameInfo_h
#include "mitkDICOMDatasetAccessingImageFrameInfo.h"
#include "gdcmScanner.h"
namespace mitk
{
/**
- \ingroup DICOMReaderModule
+ \ingroup DICOMModule
\brief The dataset access implementation for DICOMITKSeriesGDCMReader, based on GDCM.
This class combines a DICOMImageFrameInfo object with the scanning results
from gdcm::Scanner. The scanning results will be used to implement the tag
access methods of DICOMDatasetAccess.
*/
- class MITKDICOMREADER_EXPORT DICOMGDCMImageFrameInfo : public DICOMDatasetAccessingImageFrameInfo
+ class MITKDICOM_EXPORT DICOMGDCMImageFrameInfo : public DICOMDatasetAccessingImageFrameInfo
{
public:
mitkClassMacro(DICOMGDCMImageFrameInfo, DICOMDatasetAccessingImageFrameInfo);
itkFactorylessNewMacro( DICOMGDCMImageFrameInfo );
mitkNewMacro1Param( DICOMGDCMImageFrameInfo, const std::string&);
mitkNewMacro2Param( DICOMGDCMImageFrameInfo, const std::string&, unsigned int );
mitkNewMacro1Param( DICOMGDCMImageFrameInfo, const DICOMImageFrameInfo::Pointer& );
mitkNewMacro2Param( DICOMGDCMImageFrameInfo, const DICOMImageFrameInfo::Pointer&, gdcm::Scanner::TagToValue const&);
~DICOMGDCMImageFrameInfo() override;
DICOMDatasetFinding GetTagValueAsString(const DICOMTag&) const override;
FindingsListType GetTagValueAsString(const DICOMTagPath& path) const override;
std::string GetFilenameIfAvailable() const override;
protected:
explicit DICOMGDCMImageFrameInfo(const DICOMImageFrameInfo::Pointer& frameinfo);
DICOMGDCMImageFrameInfo(const DICOMImageFrameInfo::Pointer& frameinfo, gdcm::Scanner::TagToValue const& tagToValueMapping);
DICOMGDCMImageFrameInfo(const std::string& filename = "", unsigned int frameNo = 0);
const gdcm::Scanner::TagToValue m_TagForValue;
};
typedef std::vector DICOMGDCMImageFrameList;
}
#endif
diff --git a/Modules/DICOMReader/include/mitkDICOMGDCMTagCache.h b/Modules/DICOM/include/mitkDICOMGDCMTagCache.h
similarity index 93%
rename from Modules/DICOMReader/include/mitkDICOMGDCMTagCache.h
rename to Modules/DICOM/include/mitkDICOMGDCMTagCache.h
index ffc8eace60..e5a56348bc 100644
--- a/Modules/DICOMReader/include/mitkDICOMGDCMTagCache.h
+++ b/Modules/DICOM/include/mitkDICOMGDCMTagCache.h
@@ -1,64 +1,64 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef mitkDICOMGDCMTagCache_h
#define mitkDICOMGDCMTagCache_h
#include "mitkDICOMTagCache.h"
#include
#include
#include
namespace mitk
{
/**
- \ingroup DICOMReaderModule
+ \ingroup DICOMModule
\brief Tag cache implementation used by the DICOMGDCMTagScanner.
*/
- class MITKDICOMREADER_EXPORT DICOMGDCMTagCache : public DICOMTagCache
+ class MITKDICOM_EXPORT DICOMGDCMTagCache : public DICOMTagCache
{
public:
mitkClassMacro(DICOMGDCMTagCache, DICOMTagCache);
itkFactorylessNewMacro( DICOMGDCMTagCache );
itkCloneMacro(Self);
DICOMDatasetFinding GetTagValue(DICOMImageFrameInfo* frame, const DICOMTag& tag) const override;
FindingsListType GetTagValue(DICOMImageFrameInfo* frame, const DICOMTagPath& path) const override;
DICOMDatasetAccessingImageFrameList GetFrameInfoList() const override;
void InitCache(const std::set& scannedTags, const std::shared_ptr& scanner, const StringList& inputFiles);
const gdcm::Scanner& GetScanner() const;
protected:
DICOMGDCMTagCache();
~DICOMGDCMTagCache() override;
std::set m_ScannedTags;
std::shared_ptr m_Scanner;
DICOMDatasetAccessingImageFrameList m_ScanResult;
private:
DICOMGDCMTagCache(const DICOMGDCMTagCache&);
};
}
#endif
diff --git a/Modules/DICOMReader/include/mitkDICOMGDCMTagScanner.h b/Modules/DICOM/include/mitkDICOMGDCMTagScanner.h
similarity index 97%
rename from Modules/DICOMReader/include/mitkDICOMGDCMTagScanner.h
rename to Modules/DICOM/include/mitkDICOMGDCMTagScanner.h
index fa07590ddb..4143554521 100644
--- a/Modules/DICOMReader/include/mitkDICOMGDCMTagScanner.h
+++ b/Modules/DICOM/include/mitkDICOMGDCMTagScanner.h
@@ -1,119 +1,119 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef mitkDICOMGDCMTagScanner_h
#define mitkDICOMGDCMTagScanner_h
#include "mitkDICOMTagScanner.h"
#include "mitkDICOMEnums.h"
#include "mitkDICOMGDCMTagCache.h"
namespace mitk
{
/**
- \ingroup DICOMReaderModule
+ \ingroup DICOMModule
\brief Encapsulates the tag scanning process for a set of DICOM files.
Formerly integrated as a part of DICOMITKSeriesGDCMReader, the tag
scanning part has been factored out into this DICOMGDCMTagScanner class
in order to allow a single scan for multiple reader alternatives. This
helps much in the selection process of e.g. DICOMFileReaderSelector.
The class works similar to gdcm::Scanner, just with the MITK set of classes:
- add a number of DICOM tags that should be read
- set a list of files that should be scanned for named tags
- call Scan()
- retrieve the scan results
- via GetFrameInfoList() or
- via GetTagValue()
When used in a process where multiple classes will access the scan
results, care should be taken that all the tags and files of interest
are communicated to DICOMGDCMTagScanner before requesting the results!
@remark This scanner does only support the scanning for simple value tag.
If you need to scann for sequence items or non-top-level elements, this scanner
will not be sufficient. See i.a. DICOMDCMTKTagScanner for these cases.
*/
- class MITKDICOMREADER_EXPORT DICOMGDCMTagScanner : public DICOMTagScanner
+ class MITKDICOM_EXPORT DICOMGDCMTagScanner : public DICOMTagScanner
{
public:
mitkClassMacro(DICOMGDCMTagScanner, DICOMTagScanner);
itkFactorylessNewMacro( DICOMGDCMTagScanner );
itkCloneMacro(Self);
/**
\brief Add this tag to the scanning process.
*/
void AddTag(const DICOMTag& tag) override;
/**
\brief Add a list of tags to the scanning process.
*/
void AddTags(const DICOMTagList& tags) override;
/**
\brief Add this tag path to the scanning process.
*/
void AddTagPath(const DICOMTagPath& tag) override;
/**
\brief Add a list of tag pathes to the scanning process.
*/
void AddTagPaths(const DICOMTagPathList& tags) override;
/**
\brief Define the list of files to scan.
This does not ADD to an internal list, but it replaces the
whole list of files.
*/
void SetInputFiles(const StringList& filenames) override;
/**
\brief Start the scanning process.
Calling Scan() will invalidate previous scans, forgetting
all about files and tags from files that have been scanned
previously.
*/
void Scan() override;
/**
\brief Retrieve a result list for file-by-file tag access.
*/
DICOMDatasetAccessingImageFrameList GetFrameInfoList() const override;
/**
\brief Retrieve Pointer to the complete cache of the scan.
*/
DICOMTagCache::Pointer GetScanCache() const override;
/**
\brief Directly retrieve the tag value for a given frame and tag.
@pre Scan() must have been called before calling this function.
*/
virtual DICOMDatasetFinding GetTagValue(DICOMImageFrameInfo* frame, const DICOMTag& tag) const;
protected:
DICOMGDCMTagScanner();
~DICOMGDCMTagScanner() override;
std::set m_ScannedTags;
StringList m_InputFilenames;
DICOMGDCMTagCache::Pointer m_Cache;
std::shared_ptr m_GDCMScanner;
private:
DICOMGDCMTagScanner(const DICOMGDCMTagScanner&);
};
}
#endif
diff --git a/Modules/DICOMReader/include/mitkDICOMGenericImageFrameInfo.h b/Modules/DICOM/include/mitkDICOMGenericImageFrameInfo.h
similarity index 93%
rename from Modules/DICOMReader/include/mitkDICOMGenericImageFrameInfo.h
rename to Modules/DICOM/include/mitkDICOMGenericImageFrameInfo.h
index 66a8269f0c..03f36aa13b 100644
--- a/Modules/DICOMReader/include/mitkDICOMGenericImageFrameInfo.h
+++ b/Modules/DICOM/include/mitkDICOMGenericImageFrameInfo.h
@@ -1,65 +1,65 @@
/*============================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.
Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.
============================================================================*/
#ifndef mitkDICOMGenericImageFrameInfo_h
#define mitkDICOMGenericImageFrameInfo_h
#include "mitkDICOMDatasetAccessingImageFrameInfo.h"
#include