Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit

TotalSegmentator segmentation tool. More...

#include <mitkTotalSegmentatorTool.h>

Inheritance diagram for mitk::TotalSegmentatorTool:
Collaboration diagram for mitk::TotalSegmentatorTool:

Public Types

enum class  Speed { Normal , Fast , Fastest }
 Model resolution: full (1.5 mm), –fast (3 mm) or –fastest (6 mm). More...
 
using CommandRunner = std::function< bool(const std::string &executable, const std::vector< std::string > &args)>
 Runs executable with args, returning true on success (exit 0) and false on cancellation or failure. More...
 
- Public Types inherited from mitk::SegWithPreviewTool
enum class  LabelTransferScope { ActiveLabel , SelectedLabels , AllLabels }
 Defines which labels from the preview are transferred on confirmation. More...
 
enum class  LabelTransferMode { MapLabel , AddLabel }
 Defines how labels are transferred from preview to the working image. More...
 
using SelectedLabelVectorType = std::vector< Label::PixelType >
 Type for the vector of selected label values. More...
 
- Public Types inherited from mitk::Tool
typedef mitk::Label::PixelType DefaultSegmentationDataType
 
- Public Types inherited from mitk::EventStateMachine
typedef itk::SmartPointer< StateMachineState > StateMachineStateType
 

Public Member Functions

 mitkClassMacro (TotalSegmentatorTool, SegWithPreviewTool)
 
Pointer Clone () const
 
const char * GetName () const override
 Returns the name of this tool. Make it short! More...
 
mitk::Label::AlgorithmType GetAlgorithmType () const override
 TotalSegmentator runs with no per-image human input, so AUTOMATIC. More...
 
us::ModuleResource GetIconResource () const override
 Returns the tool button icon of the tool wrapped by a usModuleResource. More...
 
void Activated () override
 Called when the tool gets activated. More...
 
virtual void SetTask (std::string _arg)
 
virtual std::string GetTask () const
 
virtual void SetSpeed (Speed _arg)
 
virtual Speed GetSpeed () const
 
virtual void SetDevice (std::string _arg)
 
virtual std::string GetDevice () const
 
virtual void SetExecutablePath (std::string _arg)
 
virtual std::string GetExecutablePath () const
 
void SetLabelNameLookup (const std::map< mitk::Label::PixelType, std::string > &lookup)
 Sets the label-id-to-name lookup for the selected task. More...
 
void SetCommandRunner (CommandRunner runner)
 
const std::string & GetLastErrorMessage () const
 Human-readable reason the last run produced no result, or empty if it succeeded or was cancelled by the user. More...
 
- Public Member Functions inherited from mitk::SegWithPreviewTool
 mitkClassMacro (SegWithPreviewTool, Tool)
 
void Activated () override
 Called when the tool gets activated. More...
 
void Deactivated () override
 Called when the tool gets deactivated. More...
 
mitk::Label::AlgorithmType GetAlgorithmType () const override
 Preview tools are SEMIAUTOMATIC by default (the user supplies seeds/parameters). Fully automatic preview tools (e.g. TotalSegmentator) override this again to AUTOMATIC. More...
 
void ConfirmSegmentation ()
 Confirms the current preview segmentation and transfers it to the working image. More...
 
virtual void SetCreateAllTimeSteps (bool _arg)
 If true, the preview is computed for all time steps at once. More...
 
virtual bool GetCreateAllTimeSteps ()
 
virtual void CreateAllTimeStepsOn ()
 
virtual void CreateAllTimeStepsOff ()
 
virtual void SetKeepActiveAfterAccept (bool _arg)
 If true, the tool stays active after the segmentation is accepted. More...
 
virtual bool GetKeepActiveAfterAccept ()
 
virtual void KeepActiveAfterAcceptOn ()
 
virtual void KeepActiveAfterAcceptOff ()
 
virtual void SetIsTimePointChangeAware (bool _arg)
 If true, the tool reacts to time point changes and updates the preview. More...
 
virtual bool GetIsTimePointChangeAware ()
 
virtual void IsTimePointChangeAwareOn ()
 
virtual void IsTimePointChangeAwareOff ()
 
virtual void SetResetsToEmptyPreview (bool _arg)
 If true, the preview is reset to empty on activation. More...
 
virtual bool GetResetsToEmptyPreview ()
 
virtual void ResetsToEmptyPreviewOn ()
 
virtual void ResetsToEmptyPreviewOff ()
 
virtual void SetUseSpecialPreviewColor (bool _arg)
 If true, a special color is used for the preview rendering. More...
 
virtual bool GetUseSpecialPreviewColor ()
 
virtual void UseSpecialPreviewColorOn ()
 
virtual void UseSpecialPreviewColorOff ()
 
virtual void SetRequestDeactivationConfirmation (bool _arg)
 If true, a confirmation dialog is shown before deactivating the tool. More...
 
virtual bool GetRequestDeactivationConfirmation ()
 
virtual void RequestDeactivationConfirmationOn ()
 
virtual void RequestDeactivationConfirmationOff ()
 
Color GetSpecialPreviewColor () const
 Returns the special preview color. More...
 
void SetMergeStyle (MultiLabelSegmentation::MergeStyle mergeStyle)
 Sets how the preview content is merged into the working image upon confirmation. More...
 
virtual MultiLabelSegmentation::MergeStyle GetMergeStyle ()
 
void SetOverwriteStyle (MultiLabelSegmentation::OverwriteStyle overwriteStyle)
 Sets whether locked labels should be overwritten during transfer. More...
 
virtual MultiLabelSegmentation::OverwriteStyle GetOverwriteStyle ()
 
void SetLabelTransferScope (LabelTransferScope labelTransferScope)
 Sets which labels from the preview are transferred on confirmation. More...
 
virtual LabelTransferScope GetLabelTransferScope ()
 
void SetSelectedLabels (const SelectedLabelVectorType &labelsToTransfer)
 Sets the labels to transfer from preview to working image on confirmation. More...
 
virtual SelectedLabelVectorType GetSelectedLabels ()
 
void SetLabelTransferMode (LabelTransferMode labelTransferMode)
 Sets how labels are transferred from preview to the working image. More...
 
virtual LabelTransferMode GetLabelTransferMode ()
 
bool CanHandle (const BaseData *referenceData, const BaseData *workingData) const override
 Checks if a tool can handle the given reference data and optional working data. More...
 
void UpdatePreview (bool ignoreLazyPreviewSetting=false)
 Triggers the update of the preview segmentation. More...
 
bool IsUpdating () const
 
std::string GetCurrentSegmentationName ()
 Returns the name of the currently selected segmentation node. More...
 
virtual DataNode * GetTargetSegmentationNode () const
 Returns the currently selected segmentation node. More...
 
MultiLabelSegmentation * GetTargetSegmentation () const
 
MultiLabelSegmentation * GetPreviewSegmentation ()
 
const MultiLabelSegmentation * GetPreviewSegmentation () const
 
DataNode * GetPreviewSegmentationNode ()
 
void SetPreviewOpacity (float opacity)
 
virtual float GetPreviewOpacity () const
 
void SetPreviewVisibility (bool visible)
 
virtual bool GetPreviewVisibility () const
 
- Public Member Functions inherited from mitk::Tool
 mitkClassMacro (Tool, EventStateMachine)
 
virtual us::ModuleResource GetCursorIconResource () const
 Returns the cursor icon of the tool wrapped by a usModuleResource. More...
 
virtual bool IsEligibleForAutoInit () const
 Returns whether this tool is eligible for auto-initialization by ToolManager. More...
 
virtual void InitializeStateMachine ()
 Initializes the state machine for this tool based on the interaction type. More...
 
virtual itk::Object::Pointer GetGUI (const std::string &toolkitPrefix, const std::string &toolkitPostfix)
 Interface for GUI creation. More...
 
virtual NodePredicateBase::ConstPointer GetReferenceDataPreference () const
 Returns a predicate describing valid reference data for this tool. More...
 
virtual NodePredicateBase::ConstPointer GetWorkingDataPreference () const
 Returns a predicate describing valid working data for this tool. More...
 
- Public Member Functions inherited from mitk::EventStateMachine
 mitkClassMacro (EventStateMachine, InteractionEventHandler)
 
bool LoadStateMachine (const std::string &filename, const us::Module *module=nullptr)
 Load a state machine pattern from an XML resource file. More...
 
bool HandleEvent (InteractionEvent *event, DataNode *dataNode)
 Process an incoming interaction event. More...
 
void EnableUndo (bool enable)
 Enable or disable the undo mechanism for this state machine. More...
 
void EnableInteraction (bool enable)
 Enable or disable the state machine. More...
 
- Public Member Functions inherited from mitk::InteractionEventHandler
 mitkClassMacroItkParent (InteractionEventHandler, itk::Object)
 
bool SetEventConfig (const std::string &filename, const us::Module *module=nullptr)
 Loads a configuration from an XML resource. More...
 
bool SetEventConfig (const EventConfig &config)
 Loads a configuration from an EventConfig object. More...
 
EventConfig GetEventConfig () const
 Returns the current configuration. More...
 
bool AddEventConfig (const std::string &filename, const us::Module *module=nullptr)
 This method extends the configuration. More...
 
bool AddEventConfig (const EventConfig &config)
 This method extends the configuration. The configuration from the EventConfig object is loaded and only the ones conflicting are replaced by the new one. This way several configurations can be combined. More...
 
- Public Member Functions inherited from mitk::InteractionEventObserver
 InteractionEventObserver ()
 
virtual ~InteractionEventObserver ()
 
void Disable ()
 Disable this observer so it no longer receives notifications. More...
 
void Enable ()
 Enable this observer so it receives notifications. More...
 
bool IsEnabled () const
 Check whether this observer is currently enabled. More...
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 TotalSegmentatorTool ()
 
 ~TotalSegmentatorTool () override
 
void DoUpdatePreview (const Image *inputAtTimeStep, const Image *oldSegAtTimeStep, MultiLabelSegmentation *previewImage, TimeStepType timeStep) override
 Runs TotalSegmentator on the input and loads its multi-label output. More...
 
void UpdatePrepare () override
 
- Protected Member Functions inherited from mitk::SegWithPreviewTool
 SegWithPreviewTool (bool lazyDynamicPreviews=false)
 
 SegWithPreviewTool (bool lazyDynamicPreviews, const char *interactorType, const us::Module *interactorModule=nullptr)
 
 ~SegWithPreviewTool () override
 
const char * GetGroup () const override
 Name of a group. More...
 
void EnsureTargetSegmentationNodeInDataStorage () const
 
virtual void InitiateToolByInput ()
 
virtual void UpdateCleanUp ()
 
virtual void ConfirmCleanUp ()
 
virtual void PreparePreviewToResultTransfer (const LabelMappingType &labelMapping)
 Called before the preview content is transferred to the segmentation on confirmation. More...
 
const Image * GetSegmentationInput () const
 
const Image * GetReferenceData () const
 
void ResetPreviewNode ()
 
void ResetPreviewContent ()
 
void ResetPreviewContentAtTimeStep (unsigned int timeStep)
 
TimePointType GetLastTimePointOfUpdate () const
 
MultiLabelSegmentation::LabelValueType GetActiveLabelValueOfPreview () const
 
virtual Label::PixelType GetUserDefinedActiveLabel () const
 
virtual void SetWorkingPlaneGeometry (PlaneGeometry *_arg)
 
virtual const PlaneGeometry * GetWorkingPlaneGeometry ()
 
bool ConfirmBeforeDeactivation () override
 Method call to invoke a dialog box just before exiting. More...
 
virtual void OnTimePointChanged ()
 
- Protected Member Functions inherited from mitk::Tool
virtual void SetToolManager (ToolManager *)
 
ToolManager * GetToolManager () const
 
mitk::DataStorage * GetDataStorage () const
 
void ConnectActionsAndFunctions () override
 
 Tool (const char *, const us::Module *interactorModule=nullptr)
 
 ~Tool () override
 
void Notify (InteractionEvent *interactionEvent, bool isHandled) override
 Called by the Dispatcher to notify this observer about an InteractionEvent. More...
 
bool FilterEvents (InteractionEvent *, DataNode *) override
 
- Protected Member Functions inherited from mitk::EventStateMachine
 EventStateMachine ()
 
 ~EventStateMachine () override
 
void AddActionFunction (const std::string &action, const ActionFunctionDelegate &delegate)
 
void AddConditionFunction (const std::string &condition, const ConditionFunctionDelegate &delegate)
 
StateMachineState * GetCurrentState () const
 
void ResetToStartState ()
 ResetToStartState Reset state machine to it initial starting state. More...
 
virtual bool CheckCondition (const StateMachineCondition &condition, const InteractionEvent *interactionEvent)
 
virtual void ExecuteAction (StateMachineAction *action, InteractionEvent *interactionEvent)
 
void SetMouseCursor (const char *xpm[], int hotspotX, int hotspotY)
 Sets the specified mouse cursor. More...
 
void ResetMouseCursor ()
 Resets the mouse cursor to its original state. More...
 
StateMachineTransition * GetExecutableTransition (InteractionEvent *event)
 Returns the executable transition for the given event. More...
 
- Protected Member Functions inherited from mitk::InteractionEventHandler
 InteractionEventHandler ()
 
 ~InteractionEventHandler () override
 
PropertyList::Pointer GetAttributes () const
 
std::string MapToEventVariant (InteractionEvent *interactionEvent)
 
virtual void ConfigurationChanged ()
 

Additional Inherited Members

- Public Attributes inherited from mitk::Tool
Message GUIProcessEventsMessage
 To let GUI process new events (e.g. qApp->processEvents() ) More...
 
Message1< std::string > ErrorMessage
 To send error messages (to be shown by some GUI) More...
 
Message1< bool > CurrentlyBusy
 To send whether the tool is busy (to be shown by some GUI) More...
 
Message1< std::string > GeneralMessage
 To send general messages (to be shown by some GUI) More...
 
- Protected Types inherited from mitk::SegWithPreviewTool
using LabelMappingType = std::vector< std::pair< Label::PixelType, Label::PixelType > >
 
- Protected Types inherited from mitk::EventStateMachine
typedef MessageAbstractDelegate2< StateMachineAction *, InteractionEvent *, void > ActionFunctionDelegate
 
typedef MessageAbstractDelegate1< const InteractionEvent *, bool > ConditionFunctionDelegate
 
- Static Protected Member Functions inherited from mitk::SegWithPreviewTool
static Image::ConstPointer GetImageByTimeStep (const Image *image, TimeStepType timestep)
 
static Image::Pointer GetImageByTimeStep (Image *image, TimeStepType timestep)
 
static Image::ConstPointer GetImageByTimePoint (const Image *image, TimePointType timePoint)
 
static void TransferLabelInformation (const LabelMappingType &labelMapping, const mitk::MultiLabelSegmentation *source, mitk::MultiLabelSegmentation *target)
 Copies label information (not pixel content) from one segmentation to another. More...
 
- Protected Attributes inherited from mitk::SegWithPreviewTool
ToolCommand::Pointer m_ProgressCommand
 
- Protected Attributes inherited from mitk::Tool
std::string m_EventConfig
 Let subclasses change their event configuration. More...
 
- Protected Attributes inherited from mitk::EventStateMachine
bool m_IsActive
 
UndoController * m_UndoController
 
bool m_UndoEnabled
 

Detailed Description

TotalSegmentator segmentation tool.

Wraps the TotalSegmentator command-line tool. The heavy work runs in a subprocess (never in this process), which keeps MITK's own interpreter free of the virtual environment and lets the GUI keep the application responsive. To stay free of any Qt dependency, this class does not spawn the process itself: the GUI injects the resolved executable path (SetExecutablePath), a label-id-to-name lookup for the selected task (SetLabelNameLookup) and a CommandRunner that actually runs the process while showing progress and offering cancellation.

Warning
Only to be instantiated by mitk::ToolManager.

Definition at line 47 of file mitkTotalSegmentatorTool.h.

Member Typedef Documentation

◆ CommandRunner

using mitk::TotalSegmentatorTool::CommandRunner = std::function<bool(const std::string& executable, const std::vector<std::string>& args)>

Runs executable with args, returning true on success (exit 0) and false on cancellation or failure.

Injected by the GUI so the long-running CLI call can keep the application responsive and cancellable while this core module stays free of Qt.

Definition at line 68 of file mitkTotalSegmentatorTool.h.

Member Enumeration Documentation

◆ Speed

Model resolution: full (1.5 mm), –fast (3 mm) or –fastest (6 mm).

Enumerator
Normal 
Fast 
Fastest 

Definition at line 55 of file mitkTotalSegmentatorTool.h.

Constructor & Destructor Documentation

◆ TotalSegmentatorTool()

mitk::TotalSegmentatorTool::TotalSegmentatorTool ( )
protected

◆ ~TotalSegmentatorTool()

mitk::TotalSegmentatorTool::~TotalSegmentatorTool ( )
overrideprotected

Member Function Documentation

◆ Activated()

void mitk::TotalSegmentatorTool::Activated ( )
overridevirtual

Called when the tool gets activated.

Derived tools should call their parents implementation at the beginning of the overriding function.

Reimplemented from mitk::Tool.

◆ Clone()

Pointer mitk::TotalSegmentatorTool::Clone ( ) const

◆ DoUpdatePreview()

void mitk::TotalSegmentatorTool::DoUpdatePreview ( const Image *  inputAtTimeStep,
const Image *  oldSegAtTimeStep,
MultiLabelSegmentation *  previewImage,
TimeStepType  timeStep 
)
overrideprotectedvirtual

Runs TotalSegmentator on the input and loads its multi-label output.

Saves the input to a temporary NIfTI, runs the CLI via the injected CommandRunner, then loads the single –ml output and names its labels. On cancellation or failure the preview is left empty.

Implements mitk::SegWithPreviewTool.

◆ GetAlgorithmType()

mitk::Label::AlgorithmType mitk::TotalSegmentatorTool::GetAlgorithmType ( ) const
overridevirtual

TotalSegmentator runs with no per-image human input, so AUTOMATIC.

Reimplemented from mitk::Tool.

◆ GetDevice()

virtual std::string mitk::TotalSegmentatorTool::GetDevice ( ) const
virtual

◆ GetExecutablePath()

virtual std::string mitk::TotalSegmentatorTool::GetExecutablePath ( ) const
virtual

◆ GetIconResource()

us::ModuleResource mitk::TotalSegmentatorTool::GetIconResource ( ) const
overridevirtual

Returns the tool button icon of the tool wrapped by a usModuleResource.

Returns
A valid ModuleResource or an invalid one if this function is not reimplemented.

Reimplemented from mitk::Tool.

◆ GetLastErrorMessage()

const std::string& mitk::TotalSegmentatorTool::GetLastErrorMessage ( ) const

Human-readable reason the last run produced no result, or empty if it succeeded or was cancelled by the user.

The SegWithPreviewTool base catches itk::ExceptionObject (which mitkThrow produces) and only forwards it to ErrorMessage, so such a throw never reaches the GUI's handler. DoUpdatePreview therefore catches its failures internally and records them here, letting the GUI tell a genuine failure from a user cancellation and show a meaningful message.

◆ GetName()

const char* mitk::TotalSegmentatorTool::GetName ( ) const
overridevirtual

Returns the name of this tool. Make it short!

This name has to fit into some kind of button in most applications, so take some time to think of a good name!

Note
The name is also recorded as label provenance via mitk::Label::AddToolUse, which reserves the separator characters "|" and ":". Avoid them in tool names (use plain spaces); names containing them are sanitized (separators replaced with "#") and a warning is logged.

Implements mitk::Tool.

◆ GetSpeed()

virtual Speed mitk::TotalSegmentatorTool::GetSpeed ( ) const
virtual

◆ GetTask()

virtual std::string mitk::TotalSegmentatorTool::GetTask ( ) const
virtual

◆ mitkClassMacro()

mitk::TotalSegmentatorTool::mitkClassMacro ( TotalSegmentatorTool  ,
SegWithPreviewTool   
)

◆ New()

static Pointer mitk::TotalSegmentatorTool::New ( )
static

◆ SetCommandRunner()

void mitk::TotalSegmentatorTool::SetCommandRunner ( CommandRunner  runner)

◆ SetDevice()

virtual void mitk::TotalSegmentatorTool::SetDevice ( std::string  _arg)
virtual

◆ SetExecutablePath()

virtual void mitk::TotalSegmentatorTool::SetExecutablePath ( std::string  _arg)
virtual

◆ SetLabelNameLookup()

void mitk::TotalSegmentatorTool::SetLabelNameLookup ( const std::map< mitk::Label::PixelType, std::string > &  lookup)

Sets the label-id-to-name lookup for the selected task.

Ids present in the segmentation output but absent from this lookup are auto-named, so an incomplete or missing lookup never drops a structure.

◆ SetSpeed()

virtual void mitk::TotalSegmentatorTool::SetSpeed ( Speed  _arg)
virtual

◆ SetTask()

virtual void mitk::TotalSegmentatorTool::SetTask ( std::string  _arg)
virtual

◆ UpdatePrepare()

void mitk::TotalSegmentatorTool::UpdatePrepare ( )
overrideprotectedvirtual

This member function offers derived classes the possibility to alter what should happen directly before the update of the preview is performed. It is called by UpdatePreview. Default implementation does nothing.

Reimplemented from mitk::SegWithPreviewTool.


The documentation for this class was generated from the following file: