Class: ScaleOverlayTool
ScaleOverlayTool
Memberof
Tools
Classdesc
Tool for displaying a scale overlay on the image.
Extends
Constructors
new ScaleOverlayTool()
new ScaleOverlayTool(
toolProps,defaultToolProps):ScaleOverlayTool
Parameters
• toolProps: PublicToolProps = {}
• defaultToolProps: SharedToolProp = ...
Returns
Overrides
AnnotationDisplayTool.constructor
Defined in
tools/src/tools/ScaleOverlayTool.ts:45
Properties
_throttledCalculateCachedStats
_throttledCalculateCachedStats:
Function
Defined in
tools/src/tools/ScaleOverlayTool.ts:36
configuration
configuration:
Record<string,any>
The configuration for this tool. IBaseTool contains some default configuration values, and you can use configurationTyped to get the typed version of this.
Inherited from
AnnotationDisplayTool.configuration
Defined in
tools/src/tools/base/BaseTool.ts:56
editData
editData:
object=null
annotation
annotation:
ScaleOverlayAnnotation
renderingEngine
renderingEngine:
RenderingEngine
viewport
viewport:
Viewport
Defined in
tools/src/tools/ScaleOverlayTool.ts:37
isDrawing
isDrawing:
boolean
Defined in
tools/src/tools/ScaleOverlayTool.ts:42
isHandleOutsideImage
isHandleOutsideImage:
boolean
Defined in
tools/src/tools/ScaleOverlayTool.ts:43
isPrimary
isPrimary:
boolean=false
Primary tool - this is set to true when this tool is primary
Inherited from
AnnotationDisplayTool.isPrimary
Defined in
tools/src/tools/base/BaseTool.ts:66
memo
protectedmemo: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
Defined in
tools/src/tools/base/BaseTool.ts:72
mode
mode:
ToolModes
Tool Mode - Active/Passive/Enabled/Disabled/
Inherited from
Defined in
tools/src/tools/base/BaseTool.ts:64
supportedInteractionTypes
supportedInteractionTypes:
InteractionTypes[]
Supported Interaction Types - currently only Mouse
Inherited from
AnnotationDisplayTool.supportedInteractionTypes
Defined in
tools/src/tools/base/BaseTool.ts:49
toolGroupId
toolGroupId:
string
ToolGroup ID the tool instance belongs to
Inherited from
AnnotationDisplayTool.toolGroupId
Defined in
tools/src/tools/base/BaseTool.ts:62
activeCursorTool
staticactiveCursorTool:any
Set to the tool that is currently drawing the active cursor. This will be either primary mouse button tool if no tool is currently being directly interacted with, OR the tool that is directly interacted with. This logic ensures that there is only a single tool at a time drawing, which prevents tools not getting mouse updates from over-writing the cursor.
- If the tool bound to the primary button is a cursor drawing tool, use that tool and there is NOT a tool currently drawing directly
- If there is a tool currently drawing directly, then that tool should display a cursor EVEN if it normally doesn't have a custom cursor
- When a tool finishes drawing direct, it should stop being the active cursor tool unless it is also the primary tool
Inherited from
AnnotationDisplayTool.activeCursorTool
Defined in
tools/src/tools/base/BaseTool.ts:46
defaults
staticdefaults: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
AnnotationDisplayTool.defaults
Defined in
tools/src/tools/base/BaseTool.ts:77
toolName
statictoolName:any
Overrides
AnnotationDisplayTool.toolName
Defined in
tools/src/tools/ScaleOverlayTool.ts:34
Accessors
configurationTyped
getconfigurationTyped():ToolConfiguration
Returns
Inherited from
AnnotationDisplayTool.configurationTyped
Defined in
tools/src/tools/base/BaseTool.ts:57
toolName
gettoolName():string
Newer method for getting the tool name as a property
Returns
string
Inherited from
AnnotationDisplayTool.toolName
Defined in
tools/src/tools/base/BaseTool.ts:150
Methods
_getTextLines()
_getTextLines(
scaleSize):string[]
Parameters
• scaleSize: number
Returns
string[]
Defined in
tools/src/tools/ScaleOverlayTool.ts:384
_init()
_init():
void
Returns
void
Defined in
tools/src/tools/ScaleOverlayTool.ts:57
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
AnnotationDisplayTool.applyActiveStrategy
Defined in
tools/src/tools/base/BaseTool.ts:170
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
AnnotationDisplayTool.applyActiveStrategyCallback
Defined in
tools/src/tools/base/BaseTool.ts:194
computeCanvasScaleCoordinates()
computeCanvasScaleCoordinates(
canvasSize,canvasCoordinates,vscaleBounds,hscaleBounds,location):any
Computes the centered canvas coordinates for scale
Parameters
• canvasSize: any
• canvasCoordinates: any
• vscaleBounds: any
• hscaleBounds: any
• location: any
Returns
any
scaleCanvasCoordinates
Defined in
tools/src/tools/ScaleOverlayTool.ts:626
computeEndScaleTicks()
computeEndScaleTicks(
canvasCoordinates,location):object
calculates scale ticks for ends of the scale
Parameters
• canvasCoordinates: any
• location: any
Returns
object
leftTick, rightTick
endTick1
endTick1:
any[][]
endTick2
endTick2:
any[][]
Defined in
tools/src/tools/ScaleOverlayTool.ts:436
computeInnerScaleTicks()
computeInnerScaleTicks(
scaleSize,location,annotationUID,leftTick,rightTick):object
Parameters
• scaleSize: number
• location: string
• annotationUID: string
• leftTick: Point2[]
• rightTick: Point2[]
Returns
object
tickCoordinates
tickCoordinates:
any[]
tickIds
tickIds:
any[]
tickUIDs
tickUIDs:
any[]
Defined in
tools/src/tools/ScaleOverlayTool.ts:483
computeScaleBounds()
computeScaleBounds(
canvasSize,horizontalReduction,verticalReduction,location):object
Computes the max bound for scales on the image
Parameters
• canvasSize: any
• horizontalReduction: any
• verticalReduction: any
• location: any
Returns
object
height
height:
any
width
width:
any
Defined in
tools/src/tools/ScaleOverlayTool.ts:660
computeScaleSize()
computeScaleSize(
worldWidthViewport,worldHeightViewport,location):any
Parameters
• worldWidthViewport: number
• worldHeightViewport: number
• location: string
Returns
any
currentScaleSize
Defined in
tools/src/tools/ScaleOverlayTool.ts:405
computeWorldScaleCoordinates()
computeWorldScaleCoordinates(
scaleSize,location,pointSet):any
Parameters
• scaleSize: any
• location: any
• pointSet: any
Returns
any
Defined in
tools/src/tools/ScaleOverlayTool.ts:556
createAnnotation()
protectedcreateAnnotation(evt,points?, ...annotationBaseData?):Annotation
Creates an annotation containing the basic data set.
Parameters
• evt: InteractionEventType
• points?: Point3[]
• ...annotationBaseData?: any[]
Returns
Inherited from
AnnotationDisplayTool.createAnnotation
Defined in
tools/src/tools/base/AnnotationDisplayTool.ts:178
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
AnnotationDisplayTool.doneEditMemo
Defined in
tools/src/tools/base/BaseTool.ts:690
ensureCachedStatsTargets()
protectedensureCachedStatsTargets(data,targetIds,needsUpdate?):boolean
Ensures a cachedStats entry exists for every measurement target, so that the tool stats calculators (which iterate the cachedStats keys) compute statistics for each of them. This is what allows a single fusion viewport to compute the statistics of several display sets at once, even when no other viewport has computed them.
Parameters
• data: AnnotationData
the annotation data containing the cachedStats
• targetIds: string[]
the targets to seed (see getMeasurementTargets)
• needsUpdate?
optional test flagging an existing entry as incomplete (eg hydrated annotations missing units) and needing to be recalculated
Returns
boolean
true if any entry was added or flagged, meaning the stats need to be (re)calculated
Inherited from
AnnotationDisplayTool.ensureCachedStatsTargets
Defined in
tools/src/tools/base/BaseTool.ts:607
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
The filtered annotations
Inherited from
AnnotationDisplayTool.filterInteractableAnnotationsForElement
Defined in
tools/src/tools/base/AnnotationDisplayTool.ts:64
getMeasurementTargetCandidates()
protectedgetMeasurementTargetCandidates(viewport,data?):MeasurementTargetCandidate[]
Builds the list of candidate measurement targets for the given viewport:
one per volume actor being displayed (including segmentation
representations, which carry a representationUID and are excluded by
the default filter rather than skipped here), falling back to a single
candidate for the default view reference when there are none. The
candidates are what the
targetsFilter tool configuration chooses from - each carries the
display set related parameters (display set, uid, exemplar instance and
index) where they are known.
The candidate modality is taken from the display set where available - the exemplar instance or volume metadata for volume backed candidates, or the registered display set of the viewport for the fallback candidate. When the display set is unknown (eg a stack viewport using the legacy set image ids), the candidate has none of the display set fields, and filters can choose whether to include it based on that.
When the annotation already has a cachedStats entry for a candidate's volume (possibly created by another viewport with a different view reference), the existing key is reused as the targetId so statistics are shared rather than recomputed per view.
Parameters
• viewport: Viewport
• data?: AnnotationData
Returns
Inherited from
AnnotationDisplayTool.getMeasurementTargetCandidates
Defined in
tools/src/tools/base/BaseTool.ts:417
getMeasurementTargets()
protectedgetMeasurementTargets(viewport,data?):string[]
Gets the array of targetIds the tool should compute and display measurement statistics for on the given viewport.
The targets are selected by the targetsFilter tool configuration
option (see measurementTargetFilters for ready made filters).
The filter receives the viewport's candidate display sets and the
viewport, and returns the subset to measure.
Each returned targetId reuses an existing cachedStats key when statistics were already computed for the same volume (possibly by a different viewport), and is otherwise the view reference id of this viewport for that volume - so a single fusion viewport can seed and compute the statistics of every filtered target itself, even when no other viewport has computed them.
A configured filter's result is authoritative: when it returns no
candidates (eg a PT-only filter on a CT viewport, or the default
allPixelData filter when only a SEG is shown), an empty array is
returned and no statistics are computed or displayed.
The deprecated isPreferredTargetId configuration is honoured before
the filter, so existing configurations keep their behaviour. When
neither selects anything and no filter is configured, the viewport's
default view reference id is the single target.
Multi-target selection only works for volumes displayed on screen
TODO: Fix this for other fusion types on stack and also for inclusion of annotation measurements which are not currently on screen.
Parameters
• viewport: Viewport
• data?: AnnotationData
Returns
string[]
Inherited from
AnnotationDisplayTool.getMeasurementTargets
Defined in
tools/src/tools/base/BaseTool.ts:354
getReferencedImageId()
protectedgetReferencedImageId(viewport,worldPos,viewPlaneNormal,viewUp?):string
Parameters
• viewport: Viewport
• worldPos: Point3
• viewPlaneNormal: Point3
• viewUp?: Point3
Returns
string
Inherited from
AnnotationDisplayTool.getReferencedImageId
Defined in
tools/src/tools/base/AnnotationDisplayTool.ts:223
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
AnnotationDisplayTool.getStyle
Defined in
tools/src/tools/base/AnnotationDisplayTool.ts:260
getTargetId()
protectedgetTargetId(viewport,data?):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 usually derived from the imageId. For VolumeViewport, it's derived from the volumeId.
This is the primary (first) entry of getMeasurementTargets, so it
honours the targetsFilter tool configuration - configuring, for
example, measurementTargetFilters.forModality('PT') makes the PT volume of a
fusion viewport the target the statistics are stored/read for.
Parameters
• viewport: Viewport
viewport to get the targetId for
• data?: AnnotationData
Optional: The annotation's data object, containing cachedStats.
Returns
string
targetId, or undefined when a configured filter selects no targets for this viewport
Inherited from
AnnotationDisplayTool.getTargetId
Defined in
tools/src/tools/base/BaseTool.ts:316
getTargetImageData()
protectedgetTargetImageData(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
AnnotationDisplayTool.getTargetImageData
Defined in
tools/src/tools/base/BaseTool.ts:249
getToolName()
getToolName():
string
Returns the name of the tool
Returns
string
The name of the tool.
Inherited from
AnnotationDisplayTool.getToolName
Defined in
tools/src/tools/base/BaseTool.ts:158
onCameraModified()
onCameraModified(
evt):void
Parameters
• evt: CameraModifiedEvent
Returns
void
Defined in
tools/src/tools/ScaleOverlayTool.ts:160
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
AnnotationDisplayTool.onImageSpacingCalibrated
Defined in
tools/src/tools/base/AnnotationDisplayTool.ts:89
onSetToolEnabled()
onSetToolEnabled():
void
Returns
void
Defined in
tools/src/tools/ScaleOverlayTool.ts:156
redo()
redo():
void
Redo an action (undo the undo)
Returns
void
Inherited from
Defined in
tools/src/tools/base/BaseTool.ts:637
renderAnnotation()
renderAnnotation(
enabledElement,svgDrawingHelper):boolean
Used to draw the scale 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
AnnotationDisplayTool.renderAnnotation
Defined in
tools/src/tools/ScaleOverlayTool.ts:176
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
AnnotationDisplayTool.setActiveStrategy
Defined in
tools/src/tools/base/BaseTool.ts:235
setConfiguration()
setConfiguration(
newConfiguration):void
merges the new configuration with the tool configuration
Parameters
• newConfiguration: Record<string, any>
Returns
void
Inherited from
AnnotationDisplayTool.setConfiguration
Defined in
tools/src/tools/base/BaseTool.ts:221
undo()
undo():
void
Undoes an action
Returns
void
Inherited from
Defined in
tools/src/tools/base/BaseTool.ts:627
calculateLengthInIndex()
staticcalculateLengthInIndex(calibrate,indexPoints,closed):number
Calculates the length between two index coordinates using the calibrate information for scaling information.
Parameters
• calibrate: any
• indexPoints: any
• closed: boolean = false
set to true to calculate the closed length, including the line between the first/last index
Returns
number
Inherited from
AnnotationDisplayTool.calculateLengthInIndex
Defined in
tools/src/tools/base/BaseTool.ts:713
createAnnotation()
staticcreateAnnotation(...annotationBaseData):Annotation
Creates a base annotation object, adding in any annotation base data provided
NOTE: This is the static version of this method and doesn't know about adding any of the dynamic data. Use this version to create a general annotation, and then extend it appropriately with the tool specific data. See this.createAnnotation for details.
Parameters
• ...annotationBaseData: any[]
Returns
Inherited from
AnnotationDisplayTool.createAnnotation
Defined in
tools/src/tools/base/AnnotationDisplayTool.ts:140
createZoomPanMemo()
staticcreateZoomPanMemo(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
AnnotationDisplayTool.createZoomPanMemo
Defined in
tools/src/tools/base/BaseTool.ts:645
endGroupRecording()
staticendGroupRecording():void
Ends a group recording of history memo
Returns
void
Inherited from
AnnotationDisplayTool.endGroupRecording
Defined in
tools/src/tools/base/BaseTool.ts:703
findCachedStatsTargetId()
protectedstaticfindCachedStatsTargetId(data,referencedId):string
Finds an existing cachedStats key for the given referenced volume id, if
statistics were already computed for that volume - the keys are view
reference ids of the form volumeId:<volumeId>?..., so entries created
by other viewports (with a different slice/orientation) still match.
Parameters
• data: AnnotationData
• referencedId: string
Returns
string
Inherited from
AnnotationDisplayTool.findCachedStatsTargetId
Defined in
tools/src/tools/base/BaseTool.ts:579
getExemplarInstance()
protectedstaticgetExemplarInstance(imageIds?):Record<string,unknown>
Resolves an exemplar (first) instance - naturalized DICOM metadata - from the image ids of a display set/volume, when available.
Parameters
• imageIds?: string[]
Returns
Record<string, unknown>
Inherited from
AnnotationDisplayTool.getExemplarInstance
Defined in
tools/src/tools/base/BaseTool.ts:562
getViewportDisplaySets()
protectedstaticgetViewportDisplaySets(viewport):object[]
Resolves the display sets a viewport is displaying, when known.
Viewports displaying registered display sets (see setDisplaySets on
the generic viewports) resolve through the displaySetModule metadata
(an IDisplaySet from @cornerstonejs/metadata) falling back to the
generic viewport display set registration; legacy viewports (setStack
with plain image ids) have no display set, so an empty list is returned
and their candidates carry no display set fields.
Parameters
• viewport: Viewport
Returns
object[]
Inherited from
AnnotationDisplayTool.getViewportDisplaySets
Defined in
tools/src/tools/base/BaseTool.ts:491
isInsideVolume()
staticisInsideVolume(dimensions,indexPoints):boolean
Return true if all the index points are within the dimensions provided.
Parameters
• dimensions: any
• indexPoints: any
Returns
boolean
Inherited from
AnnotationDisplayTool.isInsideVolume
Defined in
tools/src/tools/base/BaseTool.ts:735
isSpecifiedTargetId()
staticisSpecifiedTargetId(desiredVolumeId): (_viewport,__namedParameters) =>any
A function generator to test if the target id is the desired one. Used for deciding which set of cached stats is appropriate to display for a given viewport.
This relies on the fact that the target id contains a substring which is the
desired volume id when the target is a volume.
It is also possible to use series query parameters such as /series/{seriesUID}/
to generate specific series selections within a stack viewport.
Parameters
• desiredVolumeId: string
Returns
Function
Parameters
• _viewport: any
• __namedParameters
• __namedParameters.targetId: any
Returns
any
Deprecated
Use the targetsFilter configuration option with
measurementTargetFilters.forId instead.
Inherited from
AnnotationDisplayTool.isSpecifiedTargetId
Defined in
tools/src/tools/base/BaseTool.ts:136
mergeDefaultProps()
staticmergeDefaultProps(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
AnnotationDisplayTool.mergeDefaultProps
Defined in
tools/src/tools/base/BaseTool.ts:116
startGroupRecording()
staticstartGroupRecording():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
AnnotationDisplayTool.startGroupRecording