Skip to main content

Class: LabelMapEditWithContourTool

LabelMapEditWithContourTool provides an intuitive way to edit labelmap segmentations by drawing freehand contours. This tool combines the precision of contour drawing with the efficiency of labelmap-based segmentation editing.

Key Features:

  • Extends PlanarFreehandContourSegmentationTool for contour drawing capabilities
  • Automatically converts completed contours to labelmap modifications
  • Supports both closed and open contour editing (configurable)
  • Real-time viewport tracking for annotation management
  • Integration with existing segmentation workflows

Workflow:

  1. User draws a freehand contour around the area to be modified
  2. Tool tracks the annotation and associated viewport during drawing
  3. Upon completion, the contour is automatically converted to labelmap data
  4. Changes are applied to the active segmentation representation

Example

// Add the tool to a tool group
toolGroup.addTool(LabelMapEditWithContourTool.toolName);

// Set as active tool
toolGroup.setToolActive(LabelMapEditWithContourTool.toolName, {
bindings: [{ mouseButton: MouseBindings.Primary }]
});

Extends

Constructors

new LabelMapEditWithContourTool()

new LabelMapEditWithContourTool(toolProps): LabelMapEditWithContourTool

Creates a new instance of LabelMapEditWithContourTool.

Parameters

toolProps: PublicToolProps = {}

Optional configuration properties for the tool

Returns

LabelMapEditWithContourTool

Remarks

The constructor merges default configuration with provided props:

  • calculateStats is disabled by default for performance
  • allowOpenContours is disabled to ensure closed contours for proper labelmap conversion
  • Open contours are still allowed during drawing, but must be closed for completion
  • Binds event handlers for viewport and segmentation management

Overrides

PlanarFreehandContourSegmentationTool.constructor

Defined in

tools/src/tools/segmentation/LabelmapEditWithContour.ts:71

Properties

_throttledCalculateCachedStats

_throttledCalculateCachedStats: Function

Inherited from

PlanarFreehandContourSegmentationTool._throttledCalculateCachedStats

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:123


activateDraw()

protected activateDraw: (evt, annotation, viewportIdsToRender) => void

Parameters

evt: InteractionEventType

annotation: PlanarFreehandROIAnnotation

viewportIdsToRender: string[]

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.activateDraw

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:129


configuration

configuration: Record<string, any>

Inherited from

PlanarFreehandContourSegmentationTool.configuration

Defined in

tools/src/tools/base/BaseTool.ts:19


editData

editData: object

annotation

annotation: Annotation

handleIndex?

optional handleIndex: number

hasMoved?

optional hasMoved: boolean

movingTextBox?

optional movingTextBox: boolean

newAnnotation?

optional newAnnotation: boolean

viewportIdsToRender?

optional viewportIdsToRender: string[]

Inherited from

PlanarFreehandContourSegmentationTool.editData

Defined in

tools/src/tools/base/AnnotationTool.ts:61


eventDispatchDetail

protected eventDispatchDetail: object

renderingEngineId

renderingEngineId: string

viewportId

viewportId: string

Inherited from

PlanarFreehandContourSegmentationTool.eventDispatchDetail

Defined in

tools/src/tools/base/AnnotationTool.ts:55


isDrawing

isDrawing: boolean = false

Inherited from

PlanarFreehandContourSegmentationTool.isDrawing

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:125


isEditingClosed

isEditingClosed: boolean = false

Inherited from

PlanarFreehandContourSegmentationTool.isEditingClosed

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:126


isEditingOpen

isEditingOpen: boolean = false

Inherited from

PlanarFreehandContourSegmentationTool.isEditingOpen

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:127


isHandleOutsideImage

isHandleOutsideImage: boolean

Inherited from

PlanarFreehandContourSegmentationTool.isHandleOutsideImage

Defined in

tools/src/tools/base/AnnotationTool.ts:60


isSuvScaled()

isSuvScaled: (viewport, targetId, imageId?) => boolean = AnnotationTool.isSuvScaled

Returns true if the viewport is scaled to SUV units

Parameters

viewport: StackViewport | VolumeViewport

The viewport

targetId: string

The annotation targetId

imageId?: string

The annotation imageId

Returns

boolean

Inherited from

PlanarFreehandContourSegmentationTool.isSuvScaled

Defined in

tools/src/tools/base/AnnotationTool.ts:420


memo

protected memo: Memo

A memo recording the starting state of a tool. This will be updated as changes are made, and reflects the fact that a memo has been created.

Inherited from

PlanarFreehandContourSegmentationTool.memo

Defined in

tools/src/tools/base/BaseTool.ts:28


mode

mode: ToolModes

Tool Mode - Active/Passive/Enabled/Disabled/

Inherited from

PlanarFreehandContourSegmentationTool.mode

Defined in

tools/src/tools/base/BaseTool.ts:23


supportedInteractionTypes

supportedInteractionTypes: InteractionTypes[]

Supported Interaction Types - currently only Mouse

Inherited from

PlanarFreehandContourSegmentationTool.supportedInteractionTypes

Defined in

tools/src/tools/base/BaseTool.ts:17


toolGroupId

toolGroupId: string

ToolGroup ID the tool instance belongs to

Inherited from

PlanarFreehandContourSegmentationTool.toolGroupId

Defined in

tools/src/tools/base/BaseTool.ts:21


annotationsToViewportMap

static annotationsToViewportMap: Map<any, any>

Static map that tracks the relationship between annotations and their associated viewports. This is used to maintain context when converting contours to labelmap data.

Defined in

tools/src/tools/segmentation/LabelmapEditWithContour.ts:51


defaults

static defaults: object

Has the defaults associated with the base tool.

configuration

configuration: object

configuration.activeStrategy

activeStrategy: any = undefined

configuration.defaultStrategy

defaultStrategy: any = undefined

configuration.strategies

strategies: object = {}

configuration.strategyOptions

strategyOptions: object = {}

Inherited from

PlanarFreehandContourSegmentationTool.defaults

Defined in

tools/src/tools/base/BaseTool.ts:33


PreviewSegmentIndex

static PreviewSegmentIndex: number = 255

Inherited from

PlanarFreehandContourSegmentationTool.PreviewSegmentIndex

Defined in

tools/src/tools/base/ContourSegmentationBaseTool.ts:39


toolName

static toolName: string = 'LabelMapEditWithContour'

Overrides

PlanarFreehandContourSegmentationTool.toolName

Defined in

tools/src/tools/segmentation/LabelmapEditWithContour.ts:45


viewportIdsChecked

static viewportIdsChecked: any[] = []

Defined in

tools/src/tools/segmentation/LabelmapEditWithContour.ts:54

Accessors

toolName

get toolName(): string

Newer method for getting the tool name as a property

Returns

string

Inherited from

PlanarFreehandContourSegmentationTool.toolName

Defined in

tools/src/tools/base/BaseTool.ts:82

Methods

_calculateStatsIfActive()

_calculateStatsIfActive(annotation, targetId, viewport, renderingEngine, enabledElement): void

Parameters

annotation: PlanarFreehandROIAnnotation

targetId: string

viewport: any

renderingEngine: any

enabledElement: any

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool._calculateStatsIfActive

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:713


addAnnotation()

protected addAnnotation(annotation, element): string

Add the annotation to the annotation manager.

Parameters

annotation: Annotation

Contour annotation that is being added

element: HTMLDivElement

HTMLDivElement

Returns

string

Inherited from

PlanarFreehandContourSegmentationTool.addAnnotation

Defined in

tools/src/tools/base/ContourSegmentationBaseTool.ts:112


addNewAnnotation()

addNewAnnotation(evt): PlanarFreehandROIAnnotation

Based on the current position of the mouse and the current image, creates a PlanarFreehandROIAnnotation and stores it in the annotationManager.

Parameters

evt: InteractionEventType

EventTypes.NormalizedMouseEventType

Returns

PlanarFreehandROIAnnotation

The PlanarFreehandROIAnnotation object.

Inherited from

PlanarFreehandContourSegmentationTool.addNewAnnotation

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:287


applyActiveStrategy()

applyActiveStrategy(enabledElement, operationData): any

Applies the active strategy function to the enabled element with the specified operation data.

Parameters

enabledElement: IEnabledElement

The element that is being operated on.

operationData: unknown

The data that needs to be passed to the strategy.

Returns

any

The result of the strategy.

Inherited from

PlanarFreehandContourSegmentationTool.applyActiveStrategy

Defined in

tools/src/tools/base/BaseTool.ts:102


applyActiveStrategyCallback()

applyActiveStrategyCallback(enabledElement, operationData, callbackType, ...extraArgs): any

Applies the active strategy, with a given event type being applied. The event type function is found by indexing it on the active strategy function.

Parameters

enabledElement: IEnabledElement

The element that is being operated on.

operationData: unknown

The data that needs to be passed to the strategy.

callbackType: string

the type of the callback

• ...extraArgs: any[]

Returns

any

The result of the strategy.

Inherited from

PlanarFreehandContourSegmentationTool.applyActiveStrategyCallback

Defined in

tools/src/tools/base/BaseTool.ts:126


cancel()

cancel(element): void

Parameters

element: HTMLDivElement

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.cancel

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:417


cancelAnnotation()

protected cancelAnnotation(annotation): void

Unregister the segmentation when the annotation is canceled

Parameters

annotation: Annotation

Contour segmentation annotation

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.cancelAnnotation

Defined in

tools/src/tools/base/ContourSegmentationBaseTool.ts:130


checkContourSegmentation()

protected checkContourSegmentation(viewportId): Promise<boolean>

Checks and ensures that contour segmentation representation is available for a viewport.

This method verifies that the active segmentation in the specified viewport has a contour representation. If not present, it automatically adds one to enable contour-based editing.

Parameters

viewportId: string

The ID of the viewport to check

Returns

Promise<boolean>

Promise boolean or undefined - True if contour representation is available or was successfully added, false if no active segmentation exists, undefined if already checked

Remarks

The method performs the following operations:

  1. Checks if the viewport has already been processed to avoid duplicate work
  2. Retrieves the active segmentation for the viewport
  3. If no contour representation exists, adds one with the appropriate configuration
  4. Marks the viewport as checked to prevent redundant processing

Defined in

tools/src/tools/segmentation/LabelmapEditWithContour.ts:179


createAnnotation()

protected createAnnotation(evt): ContourAnnotation

Creates a contour segmentation annotation

Parameters

evt: InteractionEventType

Returns

ContourAnnotation

Inherited from

PlanarFreehandContourSegmentationTool.createAnnotation

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:585


createMemo()

protected createMemo(element, annotation, options?): void

Creates a memo on the given annotation.

Parameters

element: any

annotation: any

options?: any

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.createMemo

Defined in

tools/src/tools/base/AnnotationTool.ts:660


doneEditMemo()

doneEditMemo(): void

This clears and edit memo storage to allow for further history functions to be called. Calls the complete function if present, and pushes the memo to the history memo stack.

This should be called when a tool has finished making a change which should be separated from future/other changes in terms of the history. Usually that means on endCallback (mouse up), but some tools also make changes on the initial creation of an object or have alternate flows and the doneEditMemo has to be called on mouse down or other initiation events to ensure that new changes are correctly recorded.

If the tool has no end callback, then the doneEditMemo is called from the pre mouse down callback. See ZoomTool for an example of this usage.

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.doneEditMemo

Defined in

tools/src/tools/base/BaseTool.ts:305


filterInteractableAnnotationsForElement()

filterInteractableAnnotationsForElement(element, annotations): Annotations

We need to override this method as the tool doesn't always have handles, which means filterAnnotationsForDisplay fails inside filterAnnotationsWithinSlice.

Parameters

element: HTMLDivElement

annotations: Annotations

Returns

Annotations

Inherited from

PlanarFreehandContourSegmentationTool.filterInteractableAnnotationsForElement

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:436


getAnnotationStyle()

protected getAnnotationStyle(context): any

Get the annotation style that may or may not be merged with segmentation style so that it can be used by ROI and contour segmentation annotations when rendered on a canvas or svg layer.

Segmentation style shall be a combination of four different configurations from different levels (global, toolGroup, segmentation and segment) and it shall not be used when isContourSegmentationTool() is overwritten and changed by a child class to return false when that class should work only as an ROI.

Parameters

context: any

Returns

any

Inherited from

PlanarFreehandContourSegmentationTool.getAnnotationStyle

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:613


getHandleNearImagePoint()

getHandleNearImagePoint(element, annotation, canvasCoords, proximity): ToolHandle

It checks if the mouse click is near TextBoxHandle or AnnotationHandle itself, and return either it. It prioritize TextBoxHandle over AnnotationHandle. If the mouse click is not near any of the handles, it does not return anything.

Parameters

element: HTMLDivElement

The element that the tool is attached to.

annotation: Annotation

The annotation object associated with the annotation

canvasCoords: Point2

The coordinates of the mouse click on canvas

proximity: number

The distance from the mouse cursor to the point that is considered "near".

Returns

ToolHandle

The handle that is closest to the cursor, or null if the cursor is not near any of the handles.

Inherited from

PlanarFreehandContourSegmentationTool.getHandleNearImagePoint

Defined in

tools/src/tools/base/AnnotationTool.ts:293


getLinkedTextBoxStyle()

getLinkedTextBoxStyle(specifications, annotation?): Record<string, unknown>

It returns the style for the text box

Parameters

specifications: StyleSpecifier

annotation?: Annotation

The annotation for the tool that is currently active.

Returns

Record<string, unknown>

An object of the style settings for the text box.

Inherited from

PlanarFreehandContourSegmentationTool.getLinkedTextBoxStyle

Defined in

tools/src/tools/base/AnnotationTool.ts:359


getPolylinePoints()

protected getPolylinePoints(annotation): Point3[]

Get polyline points in world space. Just to give a chance for child classes to override it.

Parameters

annotation: ContourAnnotation

Contour annotation

Returns

Point3[]

Polyline points in world space

Inherited from

PlanarFreehandContourSegmentationTool.getPolylinePoints

Defined in

tools/src/tools/base/ContourBaseTool.ts:210


getReferencedImageId()

protected getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp?): string

Parameters

viewport: Viewport

worldPos: Point3

viewPlaneNormal: Point3

viewUp?: Point3

Returns

string

Inherited from

PlanarFreehandContourSegmentationTool.getReferencedImageId

Defined in

tools/src/tools/base/AnnotationDisplayTool.ts:184


getStyle()

getStyle(property, specifications, annotation?): unknown

It takes the property (color, lineDash, etc.) and based on the state of the annotation (selected, highlighted etc.) it returns the appropriate value based on the central toolStyle settings for each level of specification.

Parameters

property: string

The name of the style property to get.

specifications: StyleSpecifier

annotation?: Annotation

The annotation for the tool that is currently active.

Returns

unknown

The value of the property.

Inherited from

PlanarFreehandContourSegmentationTool.getStyle

Defined in

tools/src/tools/base/AnnotationDisplayTool.ts:221


getTargetId()

protected getTargetId(viewport): string

Get the target Id for the viewport which will be used to store the cached statistics scoped to that target in the annotations. For StackViewport, targetId is the viewportId, but for the volume viewport, the targetId will be grabbed from the volumeId if particularly specified in the tool configuration, or if not, the first actorUID in the viewport.

Parameters

viewport: Viewport

viewport to get the targetId for

Returns

string

targetId

Inherited from

PlanarFreehandContourSegmentationTool.getTargetId

Defined in

tools/src/tools/base/BaseTool.ts:238


getTargetImageData()

protected getTargetImageData(targetId): IImageData | CPUIImageData

Get the image that is displayed for the targetId in the cachedStats which can be

  • imageId:<imageId>
  • volumeId:<volumeId>
  • videoId:<basePathForVideo>/frames/<frameSpecifier>

Parameters

targetId: string

annotation targetId stored in the cached stats

Returns

IImageData | CPUIImageData

The image data for the target.

Inherited from

PlanarFreehandContourSegmentationTool.getTargetImageData

Defined in

tools/src/tools/base/BaseTool.ts:181


getToolName()

getToolName(): string

Returns the name of the tool

Returns

string

The name of the tool.

Inherited from

PlanarFreehandContourSegmentationTool.getToolName

Defined in

tools/src/tools/base/BaseTool.ts:90


handleSelectedCallback()

handleSelectedCallback(evt, annotation, handle): void

Begins an edit of an open contour, when the mouse has selected a handle (end) of the open contour.

Parameters

evt: InteractionEventType

EventTypes.MouseDownEventType

annotation: PlanarFreehandROIAnnotation

PlanarFreehandROIAnnotation annotation.

handle: ToolHandle

The handle index, 0 for the start and 1 for the end.

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.handleSelectedCallback

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:322


isContourSegmentationTool()

protected isContourSegmentationTool(): boolean

Allow children classes inherit from this one and disable contour segmentation behavior and children classes shall work like a normal contour instance which is useful for "hybrid" classes such as splineROI/splineSeg, livewire/livewireSeg, freehandROI/freehandSeg. When this method returns false:

  • contour segmentation data is not added to new annotations
  • annotations are not registered/unregistered as segmentations
  • annotation style shall not contain any segmentation style

Returns

boolean

True if it is a contour segmentation class or false otherwise

Inherited from

PlanarFreehandContourSegmentationTool.isContourSegmentationTool

Defined in

tools/src/tools/annotation/PlanarFreehandContourSegmentationTool.ts:29


isPointNearTool()

isPointNearTool(element, annotation, canvasCoords, proximity): boolean

Returns if the canvas point is near the line of the given annotation in the provided element or not. A proximity is passed to the function to determine the proximity of the point to the annotation in number of pixels.

Parameters

element: HTMLDivElement

HTML Element

annotation: PlanarFreehandROIAnnotation

The PlanarFreehandROIAnnotation.

canvasCoords: Point2

Canvas coordinates

proximity: number

Proximity to tool to consider

Returns

boolean

Boolean, whether the canvas point is near tool

Inherited from

PlanarFreehandContourSegmentationTool.isPointNearTool

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:378


mouseMoveCallback()

mouseMoveCallback(evt, filteredAnnotations?): boolean

Event handler for Cornerstone MOUSE_MOVE event.

Parameters

evt: MouseMoveEventType

The normalized mouse event

filteredAnnotations?: Annotations

The annotations to check for hover interactions

Returns

boolean

True if the annotation needs to be re-drawn by the annotationRenderingEngine.

Inherited from

PlanarFreehandContourSegmentationTool.mouseMoveCallback

Defined in

tools/src/tools/base/AnnotationTool.ts:228


moveAnnotation()

protected moveAnnotation(annotation, worldPosDelta): void

Move an annotation and all its child annotations in a recursive way.

That is useful when clicking on a spline contour to completely translate it to a different place. In that case all holes (child annotations) must also be translated too.

Parameters

annotation: Annotation

Annotation

worldPosDelta: Point3

Delta in world space

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.moveAnnotation

Defined in

tools/src/tools/base/ContourBaseTool.ts:157


onImageSpacingCalibrated()

onImageSpacingCalibrated(evt): void

On Image Calibration, take all the annotation from the AnnotationState manager, and invalidate them to force them to be re-rendered and their stats to be recalculated. Then use the old and new imageData (non-calibrated and calibrated) to calculate the new position for the annotations in the space of the new imageData.

Parameters

evt: ImageSpacingCalibratedEvent

The calibration event

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.onImageSpacingCalibrated

Defined in

tools/src/tools/base/AnnotationDisplayTool.ts:88


onSegmentationModified()

protected onSegmentationModified(evt): void

Event handler called when a segmentation is modified.

This method responds to segmentation modification events and ensures that all viewports associated with the modified segmentation have proper contour representation configured.

Parameters

evt: any

The segmentation modified event

Returns

void

Remarks

The method performs the following operations:

  1. Validates that a segmentation ID is provided in the event
  2. Retrieves all representations associated with the segmentation
  3. For each representation, checks and configures contour segmentation in its viewport
  4. This ensures consistency across all viewports displaying the same segmentation

Defined in

tools/src/tools/segmentation/LabelmapEditWithContour.ts:257


onSetToolActive()

onSetToolActive(): void

Returns

void

Defined in

tools/src/tools/segmentation/LabelmapEditWithContour.ts:276


onSetToolDisabled()

onSetToolDisabled(): void

Returns

void

Defined in

tools/src/tools/segmentation/LabelmapEditWithContour.ts:280


onSetToolEnabled()

onSetToolEnabled(): void

Returns

void

Defined in

tools/src/tools/segmentation/LabelmapEditWithContour.ts:272


onViewportAddedToToolGroup()

protected onViewportAddedToToolGroup(evt): void

Event handler called when a viewport is added to the tool group.

This method responds to viewport addition events and ensures that the newly added viewport has the necessary contour segmentation representation configured.

Parameters

evt: any

The viewport added event

Returns

void

Remarks

The method only processes viewports that belong to this tool's tool group, ignoring events from other tool groups to avoid unnecessary processing.

Defined in

tools/src/tools/segmentation/LabelmapEditWithContour.ts:230


redo()

redo(): void

Redo an action (undo the undo)

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.redo

Defined in

tools/src/tools/base/BaseTool.ts:261


renderAnnotation()

renderAnnotation(enabledElement, svgDrawingHelper): boolean

it is used to draw the annotation in each request animation frame. It calculates the updated cached statistics if data is invalidated and cache it.

Parameters

enabledElement: IEnabledElement

The Cornerstone's enabledElement.

svgDrawingHelper: SVGDrawingHelper

The svgDrawingHelper providing the context for drawing.

Returns

boolean

Inherited from

PlanarFreehandContourSegmentationTool.renderAnnotation

Defined in

tools/src/tools/base/ContourBaseTool.ts:39


renderAnnotationInstance()

protected renderAnnotationInstance(renderContext): boolean

Parameters

renderContext: AnnotationRenderContext

Returns

boolean

Inherited from

PlanarFreehandContourSegmentationTool.renderAnnotationInstance

Defined in

tools/src/tools/annotation/PlanarFreehandContourSegmentationTool.ts:34


setActiveStrategy()

setActiveStrategy(strategyName): void

Sets the active strategy for a tool. Strategies are multiple implementations of tool behavior that can be switched by tool configuration.

Parameters

strategyName: string

name of the strategy to be set as active

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.setActiveStrategy

Defined in

tools/src/tools/base/BaseTool.ts:167


setConfiguration()

setConfiguration(newConfiguration): void

merges the new configuration with the tool configuration

Parameters

newConfiguration: Record<string, any>

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.setConfiguration

Defined in

tools/src/tools/base/BaseTool.ts:153


toolSelectedCallback()

toolSelectedCallback(evt, annotation): void

Edits the open or closed contour when the line is grabbed and dragged.

Parameters

evt: InteractionEventType

annotation: PlanarFreehandROIAnnotation

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.toolSelectedCallback

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:346


undo()

undo(): void

Undoes an action

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.undo

Defined in

tools/src/tools/base/BaseTool.ts:251


updateClosedCachedStats()

protected updateClosedCachedStats(__namedParameters): void

Parameters

__namedParameters

__namedParameters.cachedStats: any

__namedParameters.calibratedScale: any

__namedParameters.canvasCoordinates: any

__namedParameters.deltaInX: any

__namedParameters.deltaInY: any

__namedParameters.imageData: any

__namedParameters.metadata: any

__namedParameters.modalityUnit: any

__namedParameters.points: any

__namedParameters.targetId: any

__namedParameters.viewport: any

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.updateClosedCachedStats

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:894


updateContourPolyline()

protected updateContourPolyline(annotation, polylineData, transforms, options?): void

Parameters

annotation: ContourAnnotation

polylineData

polylineData.closed?: boolean

polylineData.points: Point2[]

polylineData.targetWindingDirection?: ContourWindingDirection

transforms?

transforms.canvasToWorld?

transforms.worldToCanvas?

options?

options.updateWindingDirection?: boolean

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.updateContourPolyline

Defined in

tools/src/tools/base/ContourBaseTool.ts:178


updateOpenCachedStats()

protected updateOpenCachedStats(__namedParameters): void

Parameters

__namedParameters

__namedParameters.cachedStats: any

__namedParameters.calibratedScale: any

__namedParameters.canvasCoordinates: any

__namedParameters.deltaInX: any

__namedParameters.deltaInY: any

__namedParameters.metadata: any

__namedParameters.modalityUnit: any

__namedParameters.targetId: any

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.updateOpenCachedStats

Defined in

tools/src/tools/annotation/PlanarFreehandROITool.ts:1043


createAndAddAnnotation()

static createAndAddAnnotation(viewport, ...annotationBaseData): void

Creates and adds an annotation of the given type, firing the annotation modified event on the new annotation. This implicitly uses the static class when you call it on the correct base class. For example, you can call the KeyImageTool.createAnnotation method on KeyImageTool.toolName by calling KeyImageTool.createAndAddAnnotation

Parameters

viewport: any

• ...annotationBaseData: any[]

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.createAndAddAnnotation

Defined in

tools/src/tools/base/AnnotationTool.ts:128


createAnnotation()

static createAnnotation(...annotationBaseData): Annotation

Creates a base annotation object, adding in any annotation base data provided

Parameters

• ...annotationBaseData: any[]

Returns

Annotation

Inherited from

PlanarFreehandContourSegmentationTool.createAnnotation

Defined in

tools/src/tools/base/AnnotationTool.ts:73


createAnnotationForViewport()

static createAnnotationForViewport<T>(viewport, ...annotationBaseData): T

Creates a new annotation for the given viewport. This just adds the viewport reference data to the metadata, and otherwise returns the static class createAnnotation data.

Type Parameters

T extends Annotation

Parameters

viewport: any

• ...annotationBaseData: any[]

Returns

T

Inherited from

PlanarFreehandContourSegmentationTool.createAnnotationForViewport

Defined in

tools/src/tools/base/AnnotationTool.ts:110


createAnnotationMemo()

static createAnnotationMemo(element, annotation, options?): object

Creates an annotation memo storing the current data state on the given annotation object. This will store/recover handles data, text box and contour data, and if the options are set for deletion, will apply that correctly.

Parameters

element: any

that the annotation is shown on.

annotation: Annotation

to store a memo for the current state.

options?

whether the annotation is being created (newAnnotation) or is in the process of being deleted (deleting)

  • Note the naming on deleting is to indicate the deletion is in progress, as the createAnnotationMemo needs to be called BEFORE the annotation is actually deleted.
  • deleting with a value of false is the same as newAnnotation=true, as it is simply the opposite direction. Use undefined for both newAnnotation and deleting for non-create/delete operations.

options.deleting?: boolean

options.newAnnotation?: boolean

Returns

object

Memo containing the annotation data.

id

id: string = annotationUID

operationType

operationType: string = 'annotation'

restoreMemo()

restoreMemo: () => void

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.createAnnotationMemo

Defined in

tools/src/tools/base/AnnotationTool.ts:567


createAnnotationState()

protected static createAnnotationState(annotation, deleting?): object

Creates an annotation state copy to allow storing the current state of an annotation. This class has knowledge about the contour and spline implementations in order to copy the contour object efficiently, and to allow copying the spline object (which has member variables etc).

Parameters

annotation: Annotation

the annotation to create a clone of

deleting?: boolean

a flag to indicate that this object is about to be deleted (deleting true), or was just created (deleting false), or neither (deleting undefined).

Returns

object

state information for the given annotation.

annotationUID

annotationUID: string

data

data: object

Index Signature

[key: string]: unknown

data.cachedStats?

optional cachedStats: Record<string, unknown>

Cached Annotation statistics which is specific to the tool

data.contour?

optional contour: Contour

contour data

data.handles?

optional handles: Handles

Annotation handles that are grabbable for manipulation

data.label?

optional label: string

Label of an annotation

deleting

deleting: boolean

Inherited from

PlanarFreehandContourSegmentationTool.createAnnotationState

Defined in

tools/src/tools/base/AnnotationTool.ts:514


createZoomPanMemo()

static createZoomPanMemo(viewport): object

Creates a zoom/pan memo that remembers the original zoom/pan position for the given viewport.

Parameters

viewport: any

Returns

object

restoreMemo()

restoreMemo: () => void

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.createZoomPanMemo

Defined in

tools/src/tools/base/BaseTool.ts:269


endGroupRecording()

static endGroupRecording(): void

Ends a group recording of history memo

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.endGroupRecording

Defined in

tools/src/tools/base/BaseTool.ts:318


hydrateBase()

protected static hydrateBase<T>(ToolClass, enabledElement, points, options): object

Type Parameters

T extends AnnotationTool

Parameters

ToolClass

enabledElement: IEnabledElement

points: Point3[]

options = {}

options.annotationUID?: string

options.referencedImageId?: string

options.toolInstance?: T

options.viewplaneNormal?: Point3

options.viewUp?: Point3

Returns

object

FrameOfReferenceUID

FrameOfReferenceUID: string

instance

instance: T

referencedImageId

referencedImageId: any

viewPlaneNormal

viewPlaneNormal: Point3 = finalViewPlaneNormal

viewport

viewport: StackViewport | VolumeViewport

viewUp

viewUp: Point3 = finalViewUp

Inherited from

PlanarFreehandContourSegmentationTool.hydrateBase

Defined in

tools/src/tools/base/AnnotationTool.ts:668


isSuvScaled()

static isSuvScaled(viewport, targetId, imageId?): boolean

Returns true if the viewport is scaled to SUV units

Parameters

viewport: StackViewport | VolumeViewport

The viewport

targetId: string

The annotation targetId

imageId?: string

The annotation imageId

Returns

boolean

Inherited from

PlanarFreehandContourSegmentationTool.isSuvScaled

Defined in

tools/src/tools/base/AnnotationTool.ts:405


mergeDefaultProps()

static mergeDefaultProps(defaultProps, additionalProps?): any

Does a deep merge of property options. Allows extending the default values for a child class.

Parameters

defaultProps = {}

this is a base set of defaults to merge into

additionalProps?: any

the additional properties to merge into the default props

Returns

any

defaultProps if additional props not defined, or a merge into a new object containing additionalProps adding onto and overriding defaultProps.

Inherited from

PlanarFreehandContourSegmentationTool.mergeDefaultProps

Defined in

tools/src/tools/base/BaseTool.ts:72


startGroupRecording()

static startGroupRecording(): void

Starts a group recording of history memo, so that with a single undo you can undo multiple actions that are related to each other

Returns

void

Inherited from

PlanarFreehandContourSegmentationTool.startGroupRecording

Defined in

tools/src/tools/base/BaseTool.ts:313