diff --git a/Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox b/Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox index a9a58b1800..6adb5bc02e 100644 --- a/Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox +++ b/Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox @@ -1,63 +1,64 @@ /** \page PluginListPage MITK Plugin Manuals \section PluginListPageOverview Overview 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. The distinction between developer and end user use is for convenience only and mainly distinguishes which group a plugin is primarily aimed at. \section PluginListPageEndUserPluginList List of Plugins for End User Use \li \subpage org_blueberry_ui_qt_log \li \subpage org_mitk_views_basicimageprocessing \li \subpage org_mitk_views_cmdlinemodules \li \subpage org_mitk_views_datamanager \li \subpage org_mitk_gui_qt_dicom \li \subpage org_mitk_gui_qt_dicominspector \li \subpage org_mitk_gui_qt_diffusionimaging \li \subpage org_mitk_gui_qt_imagecropper \li \subpage org_mitk_views_imagenavigator \li \subpage org_mitk_gui_qt_measurementtoolbox \li \subpage org_mitk_gui_qt_moviemaker \li \subpage org_mitk_views_screenshotmaker \li \subpage org_mitk_views_pointsetinteraction \li \subpage org_mitk_gui_qt_pointsetinteractionmultispectrum \li \subpage org_mitk_gui_qt_python \li \subpage org_mitk_gui_qt_registration \li \subpage org_mitk_gui_qt_remeshing \li \subpage org_mitk_views_segmentation \li \subpage org_mitk_views_multilabelsegmentation \li \subpage org_mitk_gui_qt_spectrocamrecorder \li \subpage org_mitk_gui_qt_ultrasound \li \subpage org_mitk_gui_qt_viewnavigator \li \subpage org_mitk_views_volumevisualization \li \subpage org_mitk_gui_qt_xnat \li \subpage org_mitk_gui_qt_aicpregistration \li \subpage org_mitk_gui_qt_igtlplugin \li \subpage org_mitk_gui_qt_geometrytools \li \subpage org_mitk_gui_qt_classificationsegmentation \li \subpage org_mitk_gui_qt_matchpoint_algorithm_batch \li \subpage org_mitk_gui_qt_matchpoint_algorithm_browser \li \subpage org_mitk_gui_qt_matchpoint_algorithm_control \li \subpage org_mitk_gui_qt_matchpoint_evaluator \li \subpage org_mitk_gui_qt_matchpoint_framereg \li \subpage org_mitk_gui_qt_matchpoint_manipulator \li \subpage org_mitk_gui_qt_matchpoint_mapper \li \subpage org_mitk_gui_qt_matchpoint_visualizer + \li \subpage org_mitk_gui_qt_cest \section PluginListPageDevPluginList List of Plugins for Developer Use and Examples \li \subpage org_surfacematerialeditor \li \subpage org_toftutorial \li \subpage org_mitk_gui_qt_examples \li \subpage org_mitkexamplesopencv \li \subpage org_mitk_gui_qt_igtexample \li \subpage org_mitk_gui_qt_igttracking \li \subpage org_mitk_gui_qt_igt_app_echotrack \li \subpage org_blueberry_ui_qt_objectinspector \li \subpage org_mitk_gui_qt_eventrecorder \li \subpage org_mitk_gui_qt_overlaymanager */ diff --git a/Modules/CEST/include/mitkCustomTagParser.h b/Modules/CEST/include/mitkCustomTagParser.h index 8a5a3f5fd9..a151a8e304 100644 --- a/Modules/CEST/include/mitkCustomTagParser.h +++ b/Modules/CEST/include/mitkCustomTagParser.h @@ -1,106 +1,110 @@ /*=================================================================== 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 MITKCUSTOMTAGPARSER_H #define MITKCUSTOMTAGPARSER_H #include #include #include namespace mitk { /** The custom tag parser can be used to parse the custom dicom tag of the siemens private tag (0x0029, 0x1020) to extract relevant CEST data. + An initial parsing determines whether the provided string belongs to CEST data at all. + If the "tSequenceFileName" is of the format "{WHATEVER}CEST_Rev####" it is assumed that the + data is indeed CEST data and was taken with revision #### (not limited to four digits). + Which custom parameters to save and to which property name can be controlled by a json file. This file can be either provided as a resource for the MitkCEST module during compilation or placed next to the MitkCEST library in your binary folder. - The expected format for the file REVISIONNUMBER.json: - { - "REVISIONNUMBER" : "revision_json", - "sWiPMemBlock.alFree[1]" : "AdvancedMode", - "sWiPMemBlock.alFree[2]" : "RetreatMode" - } + The expected format for the file "REVISIONNUMBER.json":
+ {
+ "REVISIONNUMBER" : "revision_json",
+ "sWiPMemBlock.alFree[1]" : "AdvancedMode",
+ "sWiPMemBlock.alFree[2]" : "RetreatMode"
+ }
where :
  • REVISIONNUMBER is the revision number of this json parameter mapping (files with non digit characters in their name will be ignored)
  • sWiPMemBlock.alFree[1] is the name of one parameter in the private dicom tag
  • AdvancedMode is the name of the property the content of sWiPMemBlock.alFree[1] should be saved to
\note It is assumed that the entire content of tag (0x0029, 0x1020) is provided and that it es hex encoded (12\23\04...). If the sampling type is list it will try to access LIST.txt at the location provided in the constructor to read the offsets. */ class MITKCEST_EXPORT CustomTagParser { public: /// the constructor expects a path to one of the files to be loaded or the directory of the dicom files CustomTagParser(std::string relevantFile); /// parse the provided dicom property and return a property list based on the closest revision parameter mapping mitk::PropertyList::Pointer ParseDicomProperty(mitk::TemporoSpatialStringProperty *dicomProperty); /// parse the provided string and return a property list based on the closest revision parameter mapping mitk::PropertyList::Pointer ParseDicomPropertyString(std::string dicomPropertyString); /// name of the property for the offsets, including normalization offsets static const std::string m_OffsetsPropertyName; /// name of the property for the data acquisition revision static const std::string m_RevisionPropertyName; /// name of the property for the json parameter mapping revision static const std::string m_JSONRevisionPropertyName; /// prefix for all CEST related property names static const std::string m_CESTPropertyPrefix; protected: std::string GetRevisionAppropriateJSONString(std::string revisionString); void GetClosestLowerRevision(std::string revisionString); std::string GetClosestLowerRevision(std::string revisionString, std::vector &availableRevisionsVector); /// Get a string filled with the properly formated offsets based on the sampling type and offset std::string GetOffsetString(std::string samplingType, std::string offset, std::string measurements); /// returns a vector revision numbers of all REVISIONNUMBER.json found beside the MitkCEST library std::vector GetExternalRevisions(); /// returns a vector revision numbers of all REVISIONNUMBER.json provided as resources during the compile std::vector GetInternalRevisions(); /// the closest lower revision provided as resource, empty if none found std::string m_ClosestInternalRevision; /// the closest lower revision provided as a json beside the library, empty if none found std::string m_ClosestExternalRevision; /// revision independent mapping to inject into the revision dependent json string static const std::string m_RevisionIndependentMapping; /// default revision dependent json string if none is found static const std::string m_DefaultJsonString; /// path to the dicom data std::string m_DicomDataPath; }; } #endif // MITKCUSTOMTAGPARSER_H \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.cest/documentation/UserManual/org_mitk_gui_qt_cest.dox b/Plugins/org.mitk.gui.qt.cest/documentation/UserManual/org_mitk_gui_qt_cest.dox index aaa0afff9b..b559b0388e 100644 --- a/Plugins/org.mitk.gui.qt.cest/documentation/UserManual/org_mitk_gui_qt_cest.dox +++ b/Plugins/org.mitk.gui.qt.cest/documentation/UserManual/org_mitk_gui_qt_cest.dox @@ -1,12 +1,66 @@ /** \page org_mitk_gui_qt_cest The CEST View \imageMacro{icon.svg,"Icon of the cest view",2.00} \tableofcontents \section org_mitk_gui_qt_cestOverview Overview This view gives the option to explore and analyze CEST data. You can select a CEST data set together with either a segmentation or a point set in the datamanager. If a segmentation was selected (make sure the segmentation is the same in each time step, you can use the button at the top of the view to copy the first time step to all subsequent ones) a statistic for the selected region is shown. If a point set was selected each points grey value is plotted. +\section org_mitk_gui_qt_cestDataLoading Data Loading + +CEST dicom data can be loaded either via file open or drag and drop. When a dicom file is loaded via MITK and it contains CEST meta information + the CEST Dicom Reader is offered as an option. Selecting it will parse the CEST data as follows: + + An initial parsing determines whether the provided string belongs to CEST data at all. + If the "tSequenceFileName" is of the format "{WHATEVER}CEST_Rev####" it is assumed that the + data is indeed CEST data and was taken with revision #### (not limited to four digits). + + Which custom parameters to save and to which property name can be controlled by a json file. + This file can be either provided as a resource for the MitkCEST module during compilation or + placed next to the MitkCEST library in your binary folder. + + The expected format for the file "REVISIONNUMBER.json":
+ {
+ "REVISIONNUMBER" : "revision_json",
+ "sWiPMemBlock.alFree[1]" : "AdvancedMode",
+ "sWiPMemBlock.alFree[2]" : "RetreatMode"
+ }
+ + where : +
    +
  • REVISIONNUMBER is the revision number of this json parameter mapping (files with non digit characters in their + name will be ignored) +
  • sWiPMemBlock.alFree[1] is the name of one parameter in the private dicom tag +
  • AdvancedMode is the name of the property the content of sWiPMemBlock.alFree[1] should be saved to +
+ + If the sampling type is list it will try to access LIST.txt at the same location as the dicom files + read the offsets. + +\section org_mitk_gui_qt_cestCreatingSegmentation Creating a segmentation + +You can use the segmentation view to create a segmentation for the CEST data. Drawing a segmentation will by default only add it to +the first timestep. For more information check the help of the segmentation view. + +You can copy the segmentation on the first timestep to all following ones by using the copy timestep button in this view. + +\section org_mitk_gui_qt_cestCreatingPointSet Creating a point set + +You can use the point set interaction view to create a point set for the CEST data. +For more information check the help of the point set interaction view. + +\section org_mitk_gui_qt_cestNormalizing Normalizing the CEST data + +Select the CEST image in the datamanager and hit the normalize button to create a new, normalized image. + +\section org_mitk_gui_qt_cestInspectProperties Investigate CEST meta data + +You can inspect the CEST meta data with the properties view. You need to enable the developer mode in the "Window->Preferences" Properties menu. +When selecting a data node in the data manager with the properties view active you can change the Property List from "Data node: common" to "Base data". + +The cest meta data is grouped under CEST. + */