Medical Imaging Interaction Toolkit  2024.06.99-60d9b802
Medical Imaging Interaction Toolkit

MonaiLabel segmentation tool base class. More...

#include <mitkMonaiLabelTool.h>

Inheritance diagram for mitk::MonaiLabelTool:
Collaboration diagram for mitk::MonaiLabelTool:

Public Member Functions

 mitkClassMacro (MonaiLabelTool, SegWithPreviewTool)
 
Pointer Clone () const
 
void Activated () override
 Called when the tool gets activated. More...
 
void Deactivated () override
 Called when the tool gets deactivated. More...
 
void UpdatePrepare () override
 
void FetchOverallInfo (const std::string &hostName, const int &port)
 Method does the GET Rest call to fetch MonaiLabel server metadata including all models' info. More...
 
const std::vector< MonaiModelInfoGetAutoSegmentationModels (const int dim=-1) const
 Get the Auto Segmentation Models info for the given dimension. More...
 
const std::vector< MonaiModelInfoGetInteractiveSegmentationModels (const int dim=-1) const
 Get the Interactive Segmentation Models info for the given dimension. More...
 
const std::vector< MonaiModelInfoGetScribbleSegmentationModels (const int dim=-1) const
 Get the Scribble Segmentation Models info for the given dimension. More...
 
MonaiModelInfo GetModelInfoFromName (const std::string) const
 Helper function to get full model info object from model name. More...
 
virtual void SetModelName (std::string _arg)
 
virtual std::string GetModelName () const
 
virtual void SetURL (std::string _arg)
 
virtual std::string GetURL () const
 
virtual void SetTempDir (std::string _arg)
 
virtual std::string GetTempDir () const
 
virtual void SetTimeout (unsigned int _arg)
 
virtual unsigned int GetTimeout () const
 
const MonaiAppMetadataGetInfoParameters () const
 
void ClearPicks ()
 Clears all picks and updates the preview. More...
 
bool HasPicks () const
 Checks if any point exists in the either of the PointSetPositive or PointSetNegative. 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...
 
void ConfirmSegmentation ()
 
virtual void SetCreateAllTimeSteps (bool _arg)
 
virtual bool GetCreateAllTimeSteps ()
 
virtual void CreateAllTimeStepsOn ()
 
virtual void CreateAllTimeStepsOff ()
 
virtual void SetKeepActiveAfterAccept (bool _arg)
 
virtual bool GetKeepActiveAfterAccept ()
 
virtual void KeepActiveAfterAcceptOn ()
 
virtual void KeepActiveAfterAcceptOff ()
 
virtual void SetIsTimePointChangeAware (bool _arg)
 
virtual bool GetIsTimePointChangeAware ()
 
virtual void IsTimePointChangeAwareOn ()
 
virtual void IsTimePointChangeAwareOff ()
 
virtual void SetResetsToEmptyPreview (bool _arg)
 
virtual bool GetResetsToEmptyPreview ()
 
virtual void ResetsToEmptyPreviewOn ()
 
virtual void ResetsToEmptyPreviewOff ()
 
virtual void SetUseSpecialPreviewColor (bool _arg)
 
virtual bool GetUseSpecialPreviewColor ()
 
virtual void UseSpecialPreviewColorOn ()
 
virtual void UseSpecialPreviewColorOff ()
 
virtual void SetRequestDeactivationConfirmation (bool _arg)
 
virtual bool GetRequestDeactivationConfirmation ()
 
virtual void RequestDeactivationConfirmationOn ()
 
virtual void RequestDeactivationConfirmationOff ()
 
void SetMergeStyle (MultiLabelSegmentation::MergeStyle mergeStyle)
 
virtual MultiLabelSegmentation::MergeStyle GetMergeStyle ()
 
void SetOverwriteStyle (MultiLabelSegmentation::OverwriteStyle overwriteStyle)
 
virtual MultiLabelSegmentation::OverwriteStyle GetOverwriteStyle ()
 
void SetLabelTransferScope (LabelTransferScope labelTransferScope)
 
virtual LabelTransferScope GetLabelTransferScope ()
 
void SetSelectedLabels (const SelectedLabelVectorType &labelsToTransfer)
 
virtual SelectedLabelVectorType GetSelectedLabels ()
 
void SetLabelTransferMode (LabelTransferMode labelTransferMode)
 
virtual LabelTransferMode GetLabelTransferMode ()
 
bool CanHandle (const BaseData *referenceData, const BaseData *workingData) const override
 
void UpdatePreview (bool ignoreLazyPreviewSetting=false)
 
bool IsUpdating () const
 
std::string GetCurrentSegmentationName ()
 Gets the name of the currently selected segmentation node. More...
 
virtual DataNodeGetTargetSegmentationNode () const
 Returns the currently selected segmentation node. More...
 
LabelSetImageGetTargetSegmentation () const
 
LabelSetImageGetPreviewSegmentation ()
 
const LabelSetImageGetPreviewSegmentation () const
 
DataNodeGetPreviewSegmentationNode ()
 
- Public Member Functions inherited from mitk::Tool
 mitkClassMacro (Tool, EventStateMachine)
 
virtual const char ** GetXPM () const =0
 Returns an icon in the XPM format. More...
 
virtual std::string GetIconPath () const
 Returns the path of an icon. More...
 
virtual us::ModuleResource GetCursorIconResource () const
 Returns the path of a cursor icon. More...
 
virtual us::ModuleResource GetIconResource () const
 Returns the tool button icon of the tool wrapped by a usModuleResource. More...
 
virtual const char * GetName () const =0
 Returns the name of this tool. Make it short! More...
 
virtual void InitializeStateMachine ()
 
virtual itk::Object::Pointer GetGUI (const std::string &toolkitPrefix, const std::string &toolkitPostfix)
 Interface for GUI creation. More...
 
virtual NodePredicateBase::ConstPointer GetReferenceDataPreference () const
 
virtual NodePredicateBase::ConstPointer GetWorkingDataPreference () const
 
DataNode::Pointer CreateEmptySegmentationNode (const Image *original, const std::string &organName, const mitk::Color &color) const
 
DataNode::Pointer CreateSegmentationNode (Image *image, const std::string &organName, const mitk::Color &color) const
 
- Public Member Functions inherited from mitk::EventStateMachine
virtual std::vector< std::string > GetClassHierarchy () const override
 
virtual const char * GetClassName () const
 
bool LoadStateMachine (const std::string &filename, const us::Module *module=nullptr)
 Loads XML resource. More...
 
bool HandleEvent (InteractionEvent *event, DataNode *dataNode)
 
void EnableUndo (bool enable)
 Enables or disabled Undo. More...
 
void EnableInteraction (bool enable)
 Enables/disables the state machine. In un-enabled state it won't react to any events. More...
 
- Public Member Functions inherited from mitk::InteractionEventHandler
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 ()
 
void Enable ()
 
bool IsEnabled () const
 

Public Attributes

std::unique_ptr< MonaiLabelRequestm_RequestParameters
 Variable to set selected model's and other data needed for the POST call. More...
 
Message1< const bool > MonaiStatusEvent
 
- 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 Member Functions

 MonaiLabelTool ()
 
 ~MonaiLabelTool ()
 
void DoUpdatePreview (const Image *inputAtTimeStep, const Image *oldSegAtTimeStep, LabelSetImage *previewImage, TimeStepType timeStep) override
 
void ConnectActionsAndFunctions () override
 
virtual void WriteImage (const Image *, const std::string &) const =0
 Writes image to disk as the tool desires. Default implementation does nothing. More...
 
virtual void OnAddPositivePoint (StateMachineAction *, InteractionEvent *interactionEvent)
 
virtual void OnAddNegativePoint (StateMachineAction *, InteractionEvent *interactionEvent)
 
virtual void OnDelete (StateMachineAction *, InteractionEvent *)
 
void ClearSeeds ()
 
virtual std::string ConvertPointsAsListString (const mitk::BaseGeometry *baseGeometry, const PointSet::Pointer pointSet) const
 Get the Points from given pointset as csv string. More...
 
virtual void WriteBackResults (LabelSetImage *, LabelSetImage *, TimeStepType) const =0
 Writes back segmentation results in 3D or 2D shape to preview LabelSetImage. More...
 
- 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)
 
const ImageGetSegmentationInput () const
 
const ImageGetReferenceData () const
 
void ResetPreviewNode ()
 
void ResetPreviewContent ()
 
void ResetPreviewContentAtTimeStep (unsigned int timeStep)
 
TimePointType GetLastTimePointOfUpdate () const
 
LabelSetImage::LabelValueType GetActiveLabelValueOfPreview () const
 
virtual Label::PixelType GetUserDefinedActiveLabel () const
 
virtual void SetWorkingPlaneGeometry (PlaneGeometry *_arg)
 
virtual const PlaneGeometryGetWorkingPlaneGeometry ()
 
bool ConfirmBeforeDeactivation () override
 Method call to invoke a dialog box just before exiting. The method can be reimplemented in the respective tool class with business logic on when there should be a confirmation dialog from the user before the tool exits. More...
 
- Protected Member Functions inherited from mitk::Tool
virtual void SetToolManager (ToolManager *)
 
ToolManagerGetToolManager () const
 
mitk::DataStorageGetDataStorage () const
 
void ConnectActionsAndFunctions () override
 
 Tool (const char *, const us::Module *interactorModule=nullptr)
 
 ~Tool () override
 
void Notify (InteractionEvent *interactionEvent, bool isHandled) override
 
bool FilterEvents (InteractionEvent *, DataNode *) override
 
- Protected Member Functions inherited from mitk::EventStateMachine
 EventStateMachine ()
 
 ~EventStateMachine () override
 
void AddActionFunction (const std::string &action, TActionFunctor *functor)
 
void AddActionFunction (const std::string &action, const ActionFunctionDelegate &delegate)
 
void AddConditionFunction (const std::string &condition, const ConditionFunctionDelegate &delegate)
 
StateMachineStateGetCurrentState () 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...
 
StateMachineTransitionGetExecutableTransition (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 ()
 

Protected Attributes

PointSet::Pointer m_PointSetPositive
 
PointSet::Pointer m_PointSetNegative
 
DataNode::Pointer m_PointSetNodePositive
 
DataNode::Pointer m_PointSetNodeNegative
 
int m_PointSetCount
 
- 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
 
UndoControllerm_UndoController
 
bool m_UndoEnabled
 

Additional Inherited Members

- Public Types inherited from mitk::SegWithPreviewTool
enum  LabelTransferScope { LabelTransferScope::ActiveLabel, LabelTransferScope::SelectedLabels, LabelTransferScope::AllLabels }
 
enum  LabelTransferMode { LabelTransferMode::MapLabel, LabelTransferMode::AddLabel }
 
using SelectedLabelVectorType = std::vector< Label::PixelType >
 
- Public Types inherited from mitk::Tool
typedef mitk::Label::PixelType DefaultSegmentationDataType
 
- Public Types inherited from mitk::EventStateMachine
typedef EventStateMachine Self
 
typedef InteractionEventHandler Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef std::map< std::string, TActionFunctor * > ActionFunctionsMapType
 
typedef itk::SmartPointer< StateMachineStateStateMachineStateType
 
- Public Types inherited from mitk::InteractionEventHandler
typedef InteractionEventHandler Self
 
typedef itk::Object Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
- Static Public Member Functions inherited from mitk::EventStateMachine
static const char * GetStaticNameOfClass ()
 
- Static Public Member Functions inherited from mitk::InteractionEventHandler
static const char * GetStaticNameOfClass ()
 
- 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::LabelSetImage *source, mitk::LabelSetImage *target)
 
static void TransferLabelSetImageContent (const LabelSetImage *source, LabelSetImage *target, TimeStepType timeStep)
 

Detailed Description

MonaiLabel segmentation tool base class.

Warning
Only to be instantiated by mitk::ToolManager.

Definition at line 104 of file mitkMonaiLabelTool.h.

Constructor & Destructor Documentation

◆ MonaiLabelTool()

mitk::MonaiLabelTool::MonaiLabelTool ( )
protected

◆ ~MonaiLabelTool()

mitk::MonaiLabelTool::~MonaiLabelTool ( )
protected

Member Function Documentation

◆ Activated()

void mitk::MonaiLabelTool::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.

◆ ClearPicks()

void mitk::MonaiLabelTool::ClearPicks ( )

Clears all picks and updates the preview.

◆ ClearSeeds()

void mitk::MonaiLabelTool::ClearSeeds ( )
protected

◆ Clone()

Pointer mitk::MonaiLabelTool::Clone ( ) const

◆ ConnectActionsAndFunctions()

void mitk::MonaiLabelTool::ConnectActionsAndFunctions ( )
overrideprotectedvirtual

Is called after loading a statemachine. Overwrite this function in specific interactor implementations. Connect actions and functions using the CONNECT_FUNCTION macro within this function.

Reimplemented from mitk::EventStateMachine.

◆ ConvertPointsAsListString()

virtual std::string mitk::MonaiLabelTool::ConvertPointsAsListString ( const mitk::BaseGeometry baseGeometry,
const PointSet::Pointer  pointSet 
) const
protectedvirtual

Get the Points from given pointset as csv string.

◆ Deactivated()

void mitk::MonaiLabelTool::Deactivated ( )
overridevirtual

Called when the tool gets deactivated.

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

Reimplemented from mitk::Tool.

◆ DoUpdatePreview()

void mitk::MonaiLabelTool::DoUpdatePreview ( const Image inputAtTimeStep,
const Image oldSegAtTimeStep,
LabelSetImage previewImage,
TimeStepType  timeStep 
)
overrideprotectedvirtual

This function does the real work. Here the preview for a given input image should be computed and stored in the also passed preview image at the passed time step. It also provides the current/old segmentation at the time point, which can be used, if the preview depends on the the segmentation so far.

Implements mitk::SegWithPreviewTool.

◆ FetchOverallInfo()

void mitk::MonaiLabelTool::FetchOverallInfo ( const std::string &  hostName,
const int &  port 
)

Method does the GET Rest call to fetch MonaiLabel server metadata including all models' info.

◆ GetAutoSegmentationModels()

const std::vector<MonaiModelInfo> mitk::MonaiLabelTool::GetAutoSegmentationModels ( const int  dim = -1) const

Get the Auto Segmentation Models info for the given dimension.

◆ GetInfoParameters()

const MonaiAppMetadata* mitk::MonaiLabelTool::GetInfoParameters ( ) const

◆ GetInteractiveSegmentationModels()

const std::vector<MonaiModelInfo> mitk::MonaiLabelTool::GetInteractiveSegmentationModels ( const int  dim = -1) const

Get the Interactive Segmentation Models info for the given dimension.

◆ GetModelInfoFromName()

MonaiModelInfo mitk::MonaiLabelTool::GetModelInfoFromName ( const std::string  ) const

Helper function to get full model info object from model name.

◆ GetModelName()

virtual std::string mitk::MonaiLabelTool::GetModelName ( ) const
virtual

◆ GetScribbleSegmentationModels()

const std::vector<MonaiModelInfo> mitk::MonaiLabelTool::GetScribbleSegmentationModels ( const int  dim = -1) const

Get the Scribble Segmentation Models info for the given dimension.

◆ GetTempDir()

virtual std::string mitk::MonaiLabelTool::GetTempDir ( ) const
virtual

◆ GetTimeout()

virtual unsigned int mitk::MonaiLabelTool::GetTimeout ( ) const
virtual

◆ GetURL()

virtual std::string mitk::MonaiLabelTool::GetURL ( ) const
virtual

◆ HasPicks()

bool mitk::MonaiLabelTool::HasPicks ( ) const

Checks if any point exists in the either of the PointSetPositive or PointSetNegative.

◆ mitkClassMacro()

mitk::MonaiLabelTool::mitkClassMacro ( MonaiLabelTool  ,
SegWithPreviewTool   
)

◆ OnAddNegativePoint()

virtual void mitk::MonaiLabelTool::OnAddNegativePoint ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protectedvirtual

◆ OnAddPositivePoint()

virtual void mitk::MonaiLabelTool::OnAddPositivePoint ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protectedvirtual

◆ OnDelete()

virtual void mitk::MonaiLabelTool::OnDelete ( StateMachineAction ,
InteractionEvent  
)
protectedvirtual

◆ SetModelName()

virtual void mitk::MonaiLabelTool::SetModelName ( std::string  _arg)
virtual

◆ SetTempDir()

virtual void mitk::MonaiLabelTool::SetTempDir ( std::string  _arg)
virtual

◆ SetTimeout()

virtual void mitk::MonaiLabelTool::SetTimeout ( unsigned int  _arg)
virtual

◆ SetURL()

virtual void mitk::MonaiLabelTool::SetURL ( std::string  _arg)
virtual

◆ UpdatePrepare()

void mitk::MonaiLabelTool::UpdatePrepare ( )
overridevirtual

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.

◆ WriteBackResults()

virtual void mitk::MonaiLabelTool::WriteBackResults ( LabelSetImage ,
LabelSetImage ,
TimeStepType   
) const
protectedpure virtual

Writes back segmentation results in 3D or 2D shape to preview LabelSetImage.

Implemented in mitk::MonaiLabel2DTool, and mitk::MonaiLabel3DTool.

◆ WriteImage()

virtual void mitk::MonaiLabelTool::WriteImage ( const Image ,
const std::string &   
) const
protectedpure virtual

Writes image to disk as the tool desires. Default implementation does nothing.

Implemented in mitk::MonaiLabel2DTool, and mitk::MonaiLabel3DTool.

Member Data Documentation

◆ m_PointSetCount

int mitk::MonaiLabelTool::m_PointSetCount
protected

Definition at line 221 of file mitkMonaiLabelTool.h.

◆ m_PointSetNegative

PointSet::Pointer mitk::MonaiLabelTool::m_PointSetNegative
protected

Definition at line 218 of file mitkMonaiLabelTool.h.

◆ m_PointSetNodeNegative

DataNode::Pointer mitk::MonaiLabelTool::m_PointSetNodeNegative
protected

Definition at line 220 of file mitkMonaiLabelTool.h.

◆ m_PointSetNodePositive

DataNode::Pointer mitk::MonaiLabelTool::m_PointSetNodePositive
protected

Definition at line 219 of file mitkMonaiLabelTool.h.

◆ m_PointSetPositive

PointSet::Pointer mitk::MonaiLabelTool::m_PointSetPositive
protected

Definition at line 217 of file mitkMonaiLabelTool.h.

◆ m_RequestParameters

std::unique_ptr<MonaiLabelRequest> mitk::MonaiLabelTool::m_RequestParameters

Variable to set selected model's and other data needed for the POST call.

Definition at line 123 of file mitkMonaiLabelTool.h.

◆ MonaiStatusEvent

Message1<const bool> mitk::MonaiLabelTool::MonaiStatusEvent

Definition at line 171 of file mitkMonaiLabelTool.h.


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