Skip to main content

Class: RectangleROIStartEndThresholdTool

This tool is similar to the RectangleROIThresholdTool which only draws a rectangle on the image, and by using utility functions such as thresholdByRange and thresholdByROIStat it can be used to create a segmentation. The only difference is that it only acts on the acquisition plane and not the 3D volume, and accepts a start and end slice, and renders a dashed rectangle on the image between the start and end but a solid rectangle on start and end slice. Utility functions should be used to modify the start and end slice. // Todo: right now only the first slice has grabbable handles, need to make // it so that the handles are grabbable on all slices.

Extends

Constructors

new RectangleROIStartEndThresholdTool()

new RectangleROIStartEndThresholdTool(toolProps, defaultToolProps): RectangleROIStartEndThresholdTool

Parameters

toolProps: PublicToolProps = {}

defaultToolProps: SharedToolProp = ...

Returns

RectangleROIStartEndThresholdTool

Overrides

RectangleROITool.constructor

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:82

Properties

_throttledCalculateCachedStats

_throttledCalculateCachedStats: Function

Overrides

RectangleROITool._throttledCalculateCachedStats

Defined in

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


configuration

configuration: Record<string, any>

Inherited from

RectangleROITool.configuration

Defined in

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


editData

editData: object

annotation

annotation: Annotation

handleIndex?

optional handleIndex: number

hasMoved?

optional hasMoved: boolean

newAnnotation?

optional newAnnotation: boolean

viewportIdsToRender

viewportIdsToRender: string[]

Overrides

RectangleROITool.editData

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:72


isDrawing

isDrawing: boolean

Overrides

RectangleROITool.isDrawing

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:79


isHandleOutsideImage

isHandleOutsideImage: boolean

Overrides

RectangleROITool.isHandleOutsideImage

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:80


mode

mode: ToolModes

Tool Mode - Active/Passive/Enabled/Disabled/

Inherited from

RectangleROITool.mode

Defined in

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


supportedInteractionTypes

supportedInteractionTypes: InteractionTypes[]

Supported Interaction Types - currently only Mouse

Inherited from

RectangleROITool.supportedInteractionTypes

Defined in

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


toolGroupId

toolGroupId: string

ToolGroup ID the tool instance belongs to

Inherited from

RectangleROITool.toolGroupId

Defined in

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


toolName

static toolName: any

Overrides

RectangleROITool.toolName

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:70

Methods

_activateDraw()

_activateDraw(element): void

Add event handlers for the modify event loop, and prevent default event prapogation.

Parameters

element: any

Returns

void

Inherited from

RectangleROITool._activateDraw

Defined in

tools/src/tools/annotation/RectangleROITool.ts:526


_activateModify()

_activateModify(element): void

Add event handlers for the modify event loop, and prevent default event prapogation.

Parameters

element: any

Returns

void

Inherited from

RectangleROITool._activateModify

Defined in

tools/src/tools/annotation/RectangleROITool.ts:558


_calculateCachedStats()

_calculateCachedStats(annotation, viewPlaneNormal, viewUp, renderingEngine, enabledElement): any

_calculateCachedStats - For each volume in the frame of reference that a tool instance in particular viewport defines as its target volume, find the volume coordinates (i,j,k) being probed by the two corners. One of i,j or k will be constant across the two points. In the other two directions iterate over the voxels and calculate the first and second-order statistics.

Parameters

annotation: any

viewPlaneNormal: any

The normal vector of the camera.

viewUp: any

The viewUp vector of the camera.

renderingEngine: any

enabledElement: any

Returns

any

Inherited from

RectangleROITool._calculateCachedStats

Defined in

tools/src/tools/annotation/RectangleROITool.ts:844


_calculateCachedStatsTool()

_calculateCachedStatsTool(annotation, enabledElement): any

Parameters

annotation: any

enabledElement: any

Returns

any

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:472


_computePointsInsideVolume()

_computePointsInsideVolume(annotation, targetId, imageVolume, enabledElement): void

Parameters

annotation: any

targetId: any

imageVolume: any

enabledElement: any

Returns

void

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:341


_computeProjectionPoints()

_computeProjectionPoints(annotation, imageVolume): void

Parameters

annotation: RectangleROIStartEndThresholdAnnotation

imageVolume: ImageVolume

Returns

void

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:286


_deactivateDraw()

_deactivateDraw(element): void

Add event handlers for the modify event loop, and prevent default event prapogation.

Parameters

element: any

Returns

void

Inherited from

RectangleROITool._deactivateDraw

Defined in

tools/src/tools/annotation/RectangleROITool.ts:542


_deactivateModify()

_deactivateModify(element): void

Remove event handlers for the modify event loop, and enable default event propagation.

Parameters

element: any

Returns

void

Inherited from

RectangleROITool._deactivateModify

Defined in

tools/src/tools/annotation/RectangleROITool.ts:573


_dragCallback()

_dragCallback(evt): void

Parameters

evt: InteractionEventType

Returns

void

Inherited from

RectangleROITool._dragCallback

Defined in

tools/src/tools/annotation/RectangleROITool.ts:388


_endCallback()

_endCallback(evt): void

Parameters

evt: InteractionEventType

Returns

void

Overrides

RectangleROITool._endCallback

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:235


_getCoordinateForViewplaneNormal()

_getCoordinateForViewplaneNormal(pos, viewPlaneNormal): number

Parameters

pos: number | vec3

viewPlaneNormal: Point3

Returns

number

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:792


_getEndCoordinate()

_getEndCoordinate(worldPos, spacingInNormal, viewPlaneNormal): number

Parameters

worldPos: Point3

spacingInNormal: number

viewPlaneNormal: Point3

Returns

number

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:752


_getIndexOfCoordinatesForViewplaneNormal()

_getIndexOfCoordinatesForViewplaneNormal(viewPlaneNormal): number

Parameters

viewPlaneNormal: Point3

Returns

number

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:777


_getRectangleImageCoordinates()

_getRectangleImageCoordinates(points): object

Parameters

points: Point2[]

Returns

object

height

height: number

left

left: number

top

top: number

width

width: number

Inherited from

RectangleROITool._getRectangleImageCoordinates

Defined in

tools/src/tools/annotation/RectangleROITool.ts:815


_getStartCoordinate()

_getStartCoordinate(worldPos, viewPlaneNormal): number

Parameters

worldPos: Point3

viewPlaneNormal: Point3

Returns

number

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:739


_isInsideVolume()

_isInsideVolume(index1, index2, dimensions): boolean

Parameters

index1: any

index2: any

dimensions: any

Returns

boolean

Inherited from

RectangleROITool._isInsideVolume

Defined in

tools/src/tools/annotation/RectangleROITool.ts:978


addNewAnnotation()

addNewAnnotation(evt): object

Based on the current position of the mouse and the enabledElement it creates the edit data for the tool.

Parameters

evt: InteractionEventType

EventTypes.NormalizedMouseEventType

Returns

object

The annotation object.

data

data: object

data.cachedStats

cachedStats: object

data.cachedStats.pointsInVolume

pointsInVolume: any[] = []

data.cachedStats.projectionPoints

projectionPoints: any[] = []

data.cachedStats.projectionPointsImageIds

projectionPointsImageIds: any[]

data.cachedStats.statistics

statistics: ROICachedStats

data.endCoordinate

endCoordinate: number = endCoord

data.handles

handles: object

data.handles.activeHandleIndex

activeHandleIndex: any = null

data.handles.points

points: Point3[]

data.handles.textBox

textBox: object

data.handles.textBox.hasMoved

hasMoved: boolean = false

data.handles.textBox.worldBoundingBox

worldBoundingBox: object

data.handles.textBox.worldBoundingBox.bottomLeft

bottomLeft: Point3

data.handles.textBox.worldBoundingBox.bottomRight

bottomRight: Point3

data.handles.textBox.worldBoundingBox.topLeft

topLeft: Point3

data.handles.textBox.worldBoundingBox.topRight

topRight: Point3

data.handles.textBox.worldPosition

worldPosition: Point3

data.label

label: string = ''

data.labelmapUID

labelmapUID: any = null

data.startCoordinate

startCoordinate: number = startCoord

highlighted

highlighted: boolean = true

invalidated

invalidated: boolean = true

metadata

metadata: object

metadata.enabledElement

enabledElement: IEnabledElement

metadata.FrameOfReferenceUID

FrameOfReferenceUID: string

metadata.referencedImageId

referencedImageId: any

metadata.spacingInNormal

spacingInNormal: number

metadata.toolName

toolName: string

metadata.viewPlaneNormal

viewPlaneNormal: Point3

metadata.viewUp

viewUp: Point3

metadata.volumeId

volumeId: any

Overrides

RectangleROITool.addNewAnnotation

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:113


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

RectangleROITool.applyActiveStrategy

Defined in

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


applyActiveStrategyCallback()

applyActiveStrategyCallback(enabledElement, operationData, callbackType): 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

Returns

any

The result of the strategy.

Inherited from

RectangleROITool.applyActiveStrategyCallback

Defined in

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


cancel()

cancel(element): string

cancel Used to cancel the ongoing tool drawing and manipulation

Parameters

element: HTMLDivElement

Returns

string

Inherited from

RectangleROITool.cancel

Defined in

tools/src/tools/annotation/RectangleROITool.ts:498


filterInteractableAnnotationsForElement()

filterInteractableAnnotationsForElement(element, annotations): Annotations

Given the element and annotations which is an array of annotation, it filters the annotations array to only include the annotation based on the viewportType. If the viewport is StackViewport, it filters based on the current imageId of the viewport, if the viewport is volumeViewport, it only returns those that are within the same slice as the current rendered slice in the volume viewport. imageId as the enabledElement.

Parameters

element: HTMLDivElement

The HTML element

annotations: Annotations

The annotations to filter (array of annotation)

Returns

Annotations

The filtered annotations

Inherited from

RectangleROITool.filterInteractableAnnotationsForElement

Defined in

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


getAnnotationStyle()

protected getAnnotationStyle(context): AnnotationStyle

Get the style that will be applied to all annotations such as length, cobb angle, arrow annotate, etc. when rendered on a canvas or svg layer

Parameters

context

context.annotation: Annotation

context.styleSpecifier: StyleSpecifier

Returns

AnnotationStyle

Inherited from

RectangleROITool.getAnnotationStyle

Defined in

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


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

RectangleROITool.getHandleNearImagePoint

Defined in

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


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

RectangleROITool.getLinkedTextBoxStyle

Defined in

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


getReferencedImageId()

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

Parameters

viewport: Viewport

worldPos: Point3

viewPlaneNormal: Point3

viewUp?: Point3

Returns

string

Inherited from

RectangleROITool.getReferencedImageId

Defined in

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


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

RectangleROITool.getStyle

Defined in

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


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

RectangleROITool.getTargetId

Defined in

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


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

RectangleROITool.getTargetImageData

Defined in

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


getToolName()

getToolName(): string

Returns the name of the tool

Returns

string

The name of the tool.

Inherited from

RectangleROITool.getToolName

Defined in

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


handleSelectedCallback()

handleSelectedCallback(evt, annotation, handle): void

handleSelectedCallback Custom callback for when a handle is selected.

Parameters

evt: InteractionEventType

The normalized mouse event

annotation: RectangleROIAnnotation

The annotation selected.

handle: ToolHandle

The selected handle (either Types.Point3 in space for annotations, or TextBoxHandle object for text boxes).

Returns

void

Inherited from

RectangleROITool.handleSelectedCallback

Defined in

tools/src/tools/annotation/RectangleROITool.ts:306


isPointNearTool()

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

It returns if the canvas point is near the provided 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: RectangleROIAnnotation

Annotation

canvasCoords: Point2

Canvas coordinates

proximity: number

Proximity to tool to consider

Returns

boolean

Boolean, whether the canvas point is near tool

Inherited from

RectangleROITool.isPointNearTool

Defined in

tools/src/tools/annotation/RectangleROITool.ts:239


isSuvScaled()

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

RectangleROITool.isSuvScaled

Defined in

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


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

RectangleROITool.mouseMoveCallback

Defined in

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


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

RectangleROITool.onImageSpacingCalibrated

Defined in

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


renderAnnotation()

renderAnnotation(enabledElement, svgDrawingHelper): boolean

it is used to draw the rectangleROIStartEnd annotation in each request animation frame.

Parameters

enabledElement: IEnabledElement

The Cornerstone's enabledElement.

svgDrawingHelper: SVGDrawingHelper

The svgDrawingHelper providing the context for drawing.

Returns

boolean

Overrides

RectangleROITool.renderAnnotation

Defined in

tools/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts:518


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

RectangleROITool.setActiveStrategy

Defined in

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


setConfiguration()

setConfiguration(newConfiguration): void

merges the new configuration with the tool configuration

Parameters

newConfiguration: Record<string, any>

Returns

void

Inherited from

RectangleROITool.setConfiguration

Defined in

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


toolSelectedCallback()

toolSelectedCallback(evt, annotation): void

Custom callback for when an annotation is selected

Parameters

evt: InteractionEventType

The normalized mouse event

annotation: RectangleROIAnnotation

The Annotation to check.

Returns

void

Inherited from

RectangleROITool.toolSelectedCallback

Defined in

tools/src/tools/annotation/RectangleROITool.ts:274


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

RectangleROITool.createAndAddAnnotation

Defined in

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


createAnnotation()

static createAnnotation(...annotationBaseData): Annotation

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

Parameters

• ...annotationBaseData: any[]

Returns

Annotation

Inherited from

RectangleROITool.createAnnotation

Defined in

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


createAnnotationForViewport()

static createAnnotationForViewport(viewport, ...annotationBaseData): Annotation

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.

Parameters

viewport: any

• ...annotationBaseData: any[]

Returns

Annotation

Inherited from

RectangleROITool.createAnnotationForViewport

Defined in

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