Types
Index
Namespaces
Classes
Interfaces
Type Aliases
- Annotation
- AnnotationGroupSelector
- AnnotationHandle
- AnnotationRenderContext
- AnnotationState
- Annotations
- BidirectionalData
- BoundsIJK
- CanvasCoordinates
- CardinalSplineProps
- ClosestControlPoint
- ClosestPoint
- ClosestSplinePoint
- ContourAnnotation
- ContourAnnotationData
- ContourSegmentationAnnotation
- ContourSegmentationAnnotationData
- ContourSegmentationData
- ControlPointInfo
- FloodFillGetter
- FloodFillOptions
- FloodFillResult
- GroupSpecificAnnotations
- IDistance
- IPoints
- IToolBinding
- IToolClassReference
- ITouchPoints
- ImageInterpolationData
- InteractionTypes
- InterpolationViewportData
- JumpToSliceOptions
- LabelmapToolOperationData
- LabelmapToolOperationDataStack
- LabelmapToolOperationDataVolume
- NamedStatistics
- PlanarBoundingBox
- PolySegConversionOptions
- PublicToolProps
- RepresentationConfig
- RepresentationPublicInput
- SVGCursorDescriptor
- SVGDrawingHelper
- SVGPoint
- ScrollOptions
- Segmentation
- SegmentationRepresentationConfig
- SegmentationRepresentationData
- SegmentationState
- SetToolBindingsType
- SplineCurveSegment
- SplineLineSegment
- SplineProps
- Statistics
- TextBoxHandle
- ToolAction
- ToolConfiguration
- ToolGroupSpecificContourRepresentation
- ToolGroupSpecificLabelmapRepresentation
- ToolGroupSpecificRepresentation
- ToolGroupSpecificRepresentationState
- ToolHandle
- ToolOptionsType
- ToolProps
Namespaces
AnnotationStyle
AnnotationStyle
StyleConfig
Type declaration
optionalannotations?: {}
[annotationUID string]: AnnotationStyle
default: ToolStyleConfig
optionaltoolGroups?: {}
[toolGroupId string]: ToolStyleConfig
optionalviewports?: {}
[viewportId string]: ToolStyleConfig
StyleSpecifier
Type declaration
optionalannotationUID?: string
optionaltoolGroupId?: string
optionaltoolName?: string
optionalviewportId?: string
ToolStyleConfig
CINETypes
ToolData
optionaldynamicCineEnabled
frameTimeVector
framesPerSecond
ignoreFrameTimeVector
intervalId
lastFrameTimeStamp
loop
reverse
speed
usingFrameTimeVector
CinePlayContext
Type declaration
optionalwaitForRenderedCount?: number
get currentStepIndex(): number
get frameTimeVectorEnabled(): boolean
get numScrollSteps(): number
scroll: function
Parameters
delta: number
Returns void
PlayClipOptions
Type declaration
optionaldynamicCineEnabled?: boolean
optionalframeTimeVector?: number[]
optionalframeTimeVectorSpeedMultiplier?: number
optionalframesPerSecond?: number
optionalloop?: boolean
optionalreverse?: boolean
optionalwaitForRendered?: number
EventTypes
AnnotationAddedEventDetail
Type declaration
annotation: Annotation
The annotation that is being added to the annotations manager.
optionalrenderingEngineId?: string
unique id of the rendering engine
optionalviewportId?: string
unique id of the viewport
AnnotationAddedEventType
The AnnotationAdded event type
AnnotationCompletedEventDetail
The data that is passed to the event handler when a new annotation is completed drawing on the viewport.
Type declaration
annotation: Annotation
The annotation that is being added to the annotations manager.
optionalchangeType?: ChangeTypes.Completed
AnnotationCompletedEventType
The AnnotationCompleted event type
AnnotationInterpolationCompletedEventDetail
Type declaration
annotation: InterpolationROIAnnotation
The annotation that is being updated with a change in label.
element: HTMLDivElement
The HTML element that the annotation was rendered on.
renderingEngineId: string
unique id of the rendering engine
viewportId: string
unique id of the viewport
AnnotationInterpolationCompletedEventType
The Annotation interpolation process completed event type
AnnotationInterpolationRemovedEventDetail
Type declaration
annotations: InterpolationROIAnnotation[]
The annotations that is being removed .
element: HTMLDivElement
The HTML element that the annotation was rendered on.
renderingEngineId: string
unique id of the rendering engine
viewportId: string
unique id of the viewport
AnnotationInterpolationRemovedEventType
The Annotation interpolation removed event type
AnnotationLockChangeEventDetail
The data that is passed to the event handler when an annotation lock status changes.
Type declaration
added: Annotation[]
locked: Annotation[]
removed: Annotation[]
AnnotationLockChangeEventType
The AnnotationLockChange event type
AnnotationModifiedEventDetail
The data that is passed to the event handler when an annotation is modified.
Type declaration
annotation: Annotation
The annotation that is being added to the annotations manager.
optionalchangeType?: ChangeTypes
The type of this change
renderingEngineId: string
unique id of the rendering engine
viewportId: string
unique id of the viewport
AnnotationModifiedEventType
The AnnotationModified event type
AnnotationRemovedEventDetail
The data that is passed to the event handler when an annotation is completed drawing.
Type declaration
annotation: Annotation
The annotation that is being added to the annotations manager.
annotationManagerUID: string
annotationManagerUID
AnnotationRemovedEventType
The AnnotationRemoved event type
AnnotationRenderedEventDetail
The data that is passed to the event handler when an annotation selection status changes.
Type declaration
element: HTMLDivElement
The HTML element that the annotation was rendered on.
renderingEngineId: string
unique id of the rendering engine
viewportId: string
unique id of the viewport
AnnotationRenderedEventType
The AnnotationRendered event type
AnnotationSelectionChangeEventDetail
The data that is passed to the event handler when an annotation selection status changes.
Type declaration
added: string[]
AnnotationUID added to the selection
removed: string[]
AnnotationUID removed from the selection
selection: string[]
Updated selection
AnnotationSelectionChangeEventType
The AnnotationSelectionChange event type
AnnotationVisibilityChangeEventDetail
Type declaration
hidden: string[]
lastHidden: string[]
lastVisible: string[]
AnnotationVisibilityChangeEventType
The AnnotationVisibilityChange event type
ContourAnnotationCompletedEventDetail
The data that is passed to the event handler when a new contour annotation is completed drawing on the viewport.
InteractionEndType
Event for interaction end
InteractionEventType
Event for interaction
InteractionStartType
Event for interaction start
KeyDownEventDetail
EventDetail for keyDown event
Type declaration
element: HTMLDivElement
html element
key: string
The key that was pressed
keyCode: number
key code
renderingEngineId: string
unique id of the rendering engine
viewportId: string
unique id of the viewport
KeyDownEventType
Event for when a key is pressed
KeyUpEventDetail
EventDetail for keyDown event
KeyUpEventType
Event for when a key is released
MouseClickEventDetail
EventDetail mouseClick (a mouse down which is followed by a mouse up)
MouseClickEventType
Event for mouse click
MouseDoubleClickEventDetail
EventDetail mouseClick (a mouse down which is followed by a mouse up)
MouseDoubleClickEventType
Event for mouse double click
MouseDownActivateEventDetail
EventDetail for mouseDown Activate, it is triggered when mouseDown event is fired but stopPropagation is not called, used for creating new annotation
MouseDownActivateEventType
Event for mouse down event
MouseDownEventDetail
EventDetail for mouseDown event
MouseDownEventType
Event for when a mouse button is pressed
MouseDragEventDetail
EventDetail for mouseDrag event
MouseDragEventType
Event for mouse drag
MouseMoveEventDetail
EventDetail mouseMove event
MouseMoveEventType
Event for mouse move
MouseUpEventDetail
EventDetail for mouseUp event
MouseUpEventType
Event for mouse up
MouseWheelEventDetail
Mouse Wheel event detail
MouseWheelEventType
Event for mouse wheel
NormalizedInteractionEventDetail
The normalized interaction event detail
Type declaration
camera: Record<string, unknown>
The camera at the time of the event.
element: HTMLDivElement
The element that the event was fired on.
eventName: string
The normalized event name.
renderingEngineId: string
The unique identifier of the rendering engine.
viewportId: string
The unique identifier of the viewport that the event was fired in.
NormalizedMouseEventType
The Normalized mouse event type
NormalizedTouchEventType
The Normalized mouse event type
SegmentationDataModifiedEventDetail
EventDetail for when a Segmentation Data is modified by a tool
Type declaration
optionalmodifiedSlicesToUse?: number[]
array of slice indices in a labelmap which have been modified
segmentationId: string
unique id of the segmentationData
SegmentationDataModifiedEventType
Event for when SegmentationData is modified
SegmentationModifiedEventDetail
EventDetail for when a Segmentation Global State is modified
Type declaration
segmentationId: string
unique id of segmentation (not segmentationData), for volumes (labelMaps) it is volumeId
SegmentationModifiedEventType
Event for when Segmentation Global State is modified
SegmentationRemovedEventDetail
EventDetail for when a Segmentation is removed
Type declaration
segmentationId: string
the id of the removed segmentation
SegmentationRemovedEventType
Event for when Segmentation is removed
SegmentationRenderedEventDetail
EventDetail for when a Segmentation is rendered by segmentation rendering engine
Type declaration
toolGroupId: string
unique id of the toolGroup segmentation belongs to
viewportId: string
unique id of the viewport
SegmentationRenderedEventType
Event for when Segmentation is rendered
SegmentationRepresentationModifiedEventDetail
EventDetail for when a Segmentation Representation for a toolGroup is modified
Type declaration
segmentationRepresentationUID: string
segmentation representationUID
toolGroupId: string
unique id of the toolGroup
SegmentationRepresentationModifiedEventType
Event for when Segmentation Representation is modified
SegmentationRepresentationRemovedEventDetail
EventDetail for when a Segmentation Representation is removed
Type declaration
segmentationRepresentationUID: string
segmentation representationUID
toolGroupId: string
unique id of the toolGroup
SegmentationRepresentationRemovedEventType
Event for when Segmentation Representation is modified
ToolActivatedEventDetail
The data that is passed to the event handler when a tool is activated.
Type declaration
toolBindingsOptions: SetToolBindingsType
Tool binding options
toolGroupId: string
unique id of the toolGroup
toolName: string
Tool name
ToolActivatedEventType
The ToolActivated event type
ToolModeChangedEventDetail
The data that is passed to the event handler when tool mode changes
Type declaration
mode: ToolModes
Tool mode
optionaltoolBindingsOptions?: SetToolBindingsType
Tool binding options
toolGroupId: string
unique id of the toolGroup
toolName: string
Tool name
ToolModeChangedEventType
The ToolModeChanged event type
TouchDragEventDetail
EventDetail for touch drag event
TouchDragEventType
Event for touch drag
TouchEndEventDetail
EventDetail for touch end event
TouchEndEventType
Event for touch end
TouchPressEventDetail
EventDetail touchPress (a longer press in the same spot)
TouchPressEventType
Event for when a touch is long pressed
TouchStartActivateEventDetail
EventDetail for touchStart Activate, it is triggered when touchStart event is fired but stopPropagation is not called, used for creating new annotation
TouchStartActivateEventType
Event for touch start event
TouchStartEventDetail
EventDetail for touchstart event
TouchStartEventType
Event for when a touch starts
TouchSwipeEventDetail
TouchSwipeEventType
Event for when a touch is swiped
TouchTapEventDetail
EventDetail touchTap (successive taps which do not trigger touchstart)
TouchTapEventType
Event for when a touch is tapped
VolumeScrollOutOfBoundsEventDetail
Volume Scroll Out of Bounds event detail
Type declaration
currentImageId: string
currentStepIndex: number
delta: number
desiredStepIndex: number
numScrollSteps: number
viewport: Types.IVolumeViewport
volumeId: string
VolumeScrollOutOfBoundsEventType
Event for volume scroll out of bounds
LabelmapTypes
LabelmapConfig
Label map config for the label map representation
Type declaration
optionalactiveSegmentOutlineWidthDelta?: number
delta thickness of the active segment index outline (0 means same thickness, 1 means 1px thicker, -1 means 1px thinner)
optionalfillAlpha?: number
alpha of the fill
optionalfillAlphaInactive?: number
alpha of the fill when inactive
optionaloutlineOpacity?: number
alpha of outline for active segmentation
optionaloutlineOpacityInactive?: number
alpha of outline for inactive segmentation
optionaloutlineWidthActive?: number
thickness of the outline when segmentation is active - all segments
optionaloutlineWidthInactive?: number
thickness of the outline when segmentation is inactive - all segments
optionalrenderFill?: boolean
whether to render segmentation filling
optionalrenderFillInactive?: boolean
whether to render segmentation filling when inactive
optionalrenderOutline?: boolean
whether to render segmentation outline
LabelmapRenderingConfig
Labelmap representation type
Type declaration
optionalcfun?: vtkColorTransferFunction
color transfer function
optionalofun?: vtkPiecewiseFunction
opacity transfer function
LabelmapSegmentationData
LabelmapSegmentationDataStack
Type declaration
imageIdReferenceMap: Map<string, string>
This is a Map from referenced imageId to the segmentation (Derived) imageIds (can be multiple) that are associated with it.
LabelmapSegmentationDataVolume
Type declaration
optionalreferencedVolumeId?: string
volumeId: string
ToolSpecificAnnotationTypes
ContourAnnotation
AdvancedMagnifyAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
handles: { activeHandleIndex: number; points: [Point3, Point3, Point3, Point3] }
activeHandleIndex: number
points: [Point3, Point3, Point3, Point3]
isCanvasAnnotation: boolean
magnifyViewportId: string
sourceViewportId: string
zoomFactor: number
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
AngleAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
cachedStats: {}
[targetId string]: { angle: number }
handles: { activeHandleIndex: number; points: Point3[]; textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 } }
activeHandleIndex: number
points: Point3[]
textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 }
hasMoved: boolean
worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }
bottomLeft: Point3
bottomRight: Point3
topLeft: Point3
topRight: Point3
worldPosition: Point3
label: string
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
ArrowAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
handles: { activeHandleIndex: number; arrowFirst: boolean; points: Point3[]; textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 } }
activeHandleIndex: number
arrowFirst: boolean
points: Point3[]
textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 }
hasMoved: boolean
worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }
bottomLeft: Point3
bottomRight: Point3
topLeft: Point3
topRight: Point3
worldPosition: Point3
text: string
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
BidirectionalAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
cachedStats: {}
[targetId string]: { length: number; unit: string; width: number }
handles: { activeHandleIndex: number; points: Point3[]; textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 } }
activeHandleIndex: number
points: Point3[]
textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 }
hasMoved: boolean
worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }
bottomLeft: Point3
bottomRight: Point3
topLeft: Point3
topRight: Point3
worldPosition: Point3
label: string
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
CircleROIAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
optionalcachedStats?: (ROICachedStats & {}) | { pointsInVolume: Point3[]; projectionPoints: Point3[][] }
handles: { activeHandleIndex: number; points: [Point3, Point3]; textBox?: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 } }
activeHandleIndex: number
points: [Point3, Point3]
optionaltextBox?: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 }
hasMoved: boolean
worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }
bottomLeft: Point3
bottomRight: Point3
topLeft: Point3
topRight: Point3
worldPosition: Point3
label: string
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
CircleROIStartEndThresholdAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
optionalcachedStats?: { pointsInVolume: Point3[]; projectionPoints: Point3[][] }
pointsInVolume: Point3[]
projectionPoints: Point3[][]
endSlice: number
handles: { activeHandleIndex: number; points: [Point3, Point3] }
activeHandleIndex: number
points: [Point3, Point3]
label: string
startSlice: number
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Type declaration
FrameOfReferenceUID: string
optionalannotationUID?: string
optionalcameraFocalPoint?: Point3
optionalcameraPosition?: Point3
enabledElement: any
optionalreferencedImageId?: string
spacingInNormal: number
toolName: string
optionalviewPlaneNormal?: Point3
optionalviewUp?: Point3
volumeId: string
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
CobbAngleAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
cachedStats: {}
[targetId string]: { angle: number; arc1Angle: number; arc2Angle: number; points: { canvas: { arc1Angle: number; arc1End: Types.Point2; arc1Start: Types.Point2; arc2Angle: number; arc2End: Types.Point2; arc2Start: Types.Point2 }; world: { arc1Angle: number; arc1End: Types.Point3; arc1Start: Types.Point3; arc2Angle: number; arc2End: Types.Point3; arc2Start: Types.Point3 } } }
handles: { activeHandleIndex: number; points: Point3[]; textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 } }
activeHandleIndex: number
points: Point3[]
textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 }
hasMoved: boolean
worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }
bottomLeft: Point3
bottomRight: Point3
topLeft: Point3
topRight: Point3
worldPosition: Point3
label: string
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
EllipticalROIAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
optionalcachedStats?: ROICachedStats
handles: { activeHandleIndex: number; points: [Point3, Point3, Point3, Point3]; textBox?: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 } }
activeHandleIndex: number
points: [Point3, Point3, Point3, Point3]
optionaltextBox?: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 }
hasMoved: boolean
worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }
bottomLeft: Point3
bottomRight: Point3
topLeft: Point3
topRight: Point3
worldPosition: Point3
initialRotation: number
label: string
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
LengthAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
cachedStats: {}
[targetId string]: { length: number; unit: string }
handles: { activeHandleIndex: number; points: Point3[]; textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 } }
activeHandleIndex: number
points: Point3[]
textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 }
hasMoved: boolean
worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }
bottomLeft: Point3
bottomRight: Point3
topLeft: Point3
topRight: Point3
worldPosition: Point3
label: string
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
ProbeAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
cachedStats: {}
[targetId string]: { Modality: string; index: Types.Point3; value: number }
handles: { points: Point3[] }
points: Point3[]
label: string
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
RectangleROIAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
optionalcachedStats?: ROICachedStats | { pointsInVolume?: Point3[]; projectionPoints?: Point3[]; projectionPointsImageIds?: string[] }
handles: { activeHandleIndex: number; points: Point3[]; textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 } }
activeHandleIndex: number
points: Point3[]
textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 }
hasMoved: boolean
worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }
bottomLeft: Point3
bottomRight: Point3
topLeft: Point3
topRight: Point3
worldPosition: Point3
label: string
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
RectangleROIStartEndThresholdAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
cachedStats: { pointsInVolume: Point3[]; projectionPoints: Point3[][]; projectionPointsImageIds: string[] }
pointsInVolume: Point3[]
projectionPoints: Point3[][]
projectionPointsImageIds: string[]
endSlice: number
handles: { activeHandleIndex: number; points: Point3[] }
activeHandleIndex: number
points: Point3[]
label: string
startSlice: number
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Type declaration
FrameOfReferenceUID: string
optionalannotationUID?: string
optionalcameraFocalPoint?: Point3
optionalcameraPosition?: Point3
enabledElement: any
optionalreferencedImageId?: string
spacingInNormal: number
toolName: string
optionalviewPlaneNormal?: Point3
optionalviewUp?: Point3
volumeId: string
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
RectangleROIThresholdAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
handles: { activeHandleIndex: number; points: Point3[] }
activeHandleIndex: number
points: Point3[]
label: string
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Type declaration
FrameOfReferenceUID: string
optionalannotationUID?: string
optionalcameraFocalPoint?: Point3
optionalcameraPosition?: Point3
enabledElement: IEnabledElement
optionalreferencedImageId?: string
toolName: string
optionalviewPlaneNormal?: Point3
optionalviewUp?: Point3
volumeId: string
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
ReferenceCursor
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
handles: { points: [Point3] }
points: [Point3]
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
ReferenceLineAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
handles: { points: Point3[] }
points: Point3[]
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
ScaleOverlayAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
handles: { points: Point3[] }
points: Point3[]
viewportId: string
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
UltrasoundDirectionalAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
cachedStats: {}
[targetId string]: { isHorizontal: boolean; isUnitless: boolean; units: string[]; xValues: number[]; yValues: number[] }
handles: { activeHandleIndex: number; points: Point3[]; textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 } }
activeHandleIndex: number
points: Point3[]
textBox: { hasMoved: boolean; worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }; worldPosition: Point3 }
hasMoved: boolean
worldBoundingBox: { bottomLeft: Point3; bottomRight: Point3; topLeft: Point3; topRight: Point3 }
bottomLeft: Point3
bottomRight: Point3
topLeft: Point3
topRight: Point3
worldPosition: Point3
label: string
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Metadata for annotation
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
VideoRedactionAnnotation
optionalannotationUID
A unique identifier for this annotation
optionalautoGenerated
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data
Type declaration
active: boolean
cachedStats: {}
[key string]: any
handles: { activeHandleIndex: number; points: Point3[] }
activeHandleIndex: number
points: Point3[]
invalidated: boolean
optionalhighlighted
If the annotation is being hovered over and is highlighted
optionalinvalidated
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked
If the annotation is locked for manipulation
optionalisVisible
If the annotation is visible for manipulation
metadata
Type declaration
FrameOfReferenceUID: string
referencedImageId: string
toolName: string
viewPlaneNormal: Point3
viewUp: Point3
optionalparentAnnotationUID
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
InterpolationROIAnnotation
LivewireContourAnnotation
LivewireContourSegmentationAnnotation
PlanarFreehandContourSegmentationAnnotation
PlanarFreehandROIAnnotation
SplineContourSegmentationAnnotation
SplineROIAnnotation
Classes
IToolGroup
ToolGroup class which is a container for tools and their modes and states. In Cornerstone3DTools, you need to create a tool group in order to use the tools. ToolGroup is a way to share tool configuration, state (enabled, disabled, etc.) across a set of viewports. Tools can set to be activated, enabled or disabled in a toolGroup. You should not directly instantiate a ToolGroup. You need to use ToolGroupManager helpers to create a new toolGroup or get a reference to an existing toolGroup.
const toolGroup = csTools.ToolGroupManager.createToolGroup('toolGroupId')
constructor
Parameters
id: string
Returns default
_toolInstances
Type declaration
currentActivePrimaryToolName
id
prevActivePrimaryToolName
restoreToolOptions
Options used for restoring a tool
Type declaration
toolOptions
Type declaration
viewportsInfo
_setCursorForViewports
Parameters
cursor: default
Returns void
addTool
Add a tool to the tool group with the given tool name and tool configuration. Note that adding a tool to a tool group will not automatically set the tool to be active. You must call setToolActive or setToolPassive and other methods to set the tool to be active or passive or in other states.
Parameters
toolName: string
string
configuration: ToolConfiguration = {}
Tool configuration objects and a custom statistics calculator if needed
Returns void
publicaddToolInstance
Parameters
toolName: string
parentClassName: string
configuration: {} = {}
Returns void
publicaddViewport
Add a viewport to the ToolGroup. It accepts viewportId and optional renderingEngineId parameter. If renderingEngineId is not provided, it checks if cornerstone-core has more than one renderingEngine; If so, it will throw an error. If cornerstone-core has only one renderingEngine, it will use that renderingEngine.
Parameters
viewportId: string
The unique identifier for the viewport.
optionalrenderingEngineId: string
The rendering engine to use.
Returns void
publicclone
Parameters
newToolGroupId: any
Id of the new (clone) tool group
fnToolFilter: (toolName: string) => void = null
Function to filter which tools from this tool group should be added to the new (clone) one. Example: only annotations tools can be filtered and added to the new tool group.
Returns default
A new tool group that is a clone of this one
publicgetActivePrimaryMouseButtonTool
Find the name of the tool that is Active and has a primary button binding (Mouse primary click)
Returns string
The name of the tool
publicgetDefaultMousePrimary
Returns the default mouse primary button.
Returns MouseBindings
publicgetDefaultPrimaryBindings
Gets an array of bindings that is the full primary binding. Currently this is just the primary mouse button, but may be extended in the future to include touch or other binding types.
Returns IToolBinding[]
publicgetPrevActivePrimaryToolName
Gets the name of the previously active tool.
Returns string
The name of the previously active tool.
getToolConfiguration
Get the configuration of tool. It returns only the config for the given path (in case exists). ConfigurationPath is the the path of the property to get separated by ‘.’.
Parameters
toolName: string
optionalconfigurationPath: string
Returns any
publicgetToolInstance
Get the tool instance for a given tool name in the toolGroup
Parameters
toolInstanceName: string
Returns any
A tool instance.
publicgetToolInstances
Retrieves the tool instances associated with this tool group.
Returns Record<string, any>
A record containing the tool instances, where the keys are the tool names and the values are the tool instances.
publicgetToolOptions
Get the options for a given tool
Parameters
toolName: string
The name of the tool.
Returns ToolOptionsType
the tool options
getViewportIds
Get the viewport IDs of all the viewports in the current viewport
Returns string[]
An array of viewport IDs.
getViewportsInfo
Returns the toolGroup viewports info which is an array of {viewportId, renderingEngineId}
Returns default[]
hasTool
Check if a tool is already added to the tool group
Parameters
toolName: string
Tool name
Returns boolean
True if the tool is already added or false otherwise
publicremoveViewports
Removes viewport from the toolGroup. If only renderingEngineId is defined it removes all the viewports with the same renderingEngineId, if viewportId is also provided, it will remove that specific viewport from the ToolGroup.
Parameters
renderingEngineId: string
renderingEngine id
optionalviewportId: string
viewport id
Returns void
publicsetActiveStrategy
Parameters
toolName: string
strategyName: string
Returns void
publicsetToolActive
Set the tool mode on the toolGroup to be Active. This means the tool can be actively used by the defined bindings (e.g., Mouse primary click)
- Can be actively used by mouse/touch events mapped to its
ToolBinding
s. - Can add data if an annotation tool.
- Can be passively interacted by grabbing a tool or its handles.
- Renders data if the tool has a
renderAnnotation
method.
Parameters
toolName: string
tool name
toolBindingsOptions: SetToolBindingsType = ...
tool bindings
Returns void
- Can be actively used by mouse/touch events mapped to its
publicsetToolConfiguration
Set a configuration of a tool by the given toolName. Use overwrite as true in case you want to overwrite any existing configuration (be careful, depending on config change it might break the annotation flow).
Parameters
toolName: string
configuration: ToolConfiguration
optionaloverwrite: boolean
Returns boolean
publicsetToolDisabled
Set the tool mode on the toolGroup to be Disabled.
- Annotation does not render.
Parameters
toolName: string
tool name
Returns void
publicsetToolEnabled
Set the tool mode on the toolGroup to be Enabled.
- Renders data if the tool has a
renderAnnotation
method..
Parameters
toolName: string
tool name
Returns void
- Renders data if the tool has a
setToolMode
Parameters
toolName: string
mode: ToolModes
options: SetToolBindingsType = ...
Returns void
publicsetToolPassive
Set the tool mode on the toolGroup to be Passive.
- Can be passively interacted by grabbing a tool or its handles.
- Renders data if the tool has a
renderAnnotation
method.
Parameters
toolName: string
tool name
optionaloptions: { removeAllBindings?: boolean | IToolBinding[] }
Options used when setting the tool as passive
- removeAllBindings: only the primary button bindings are removed but if this parameter is set to true all bindings are removed.
Returns void
publicsetViewportsCursorByToolName
Parameters
toolName: string
optionalstrategyName: string
Returns void
Interfaces
IAnnotationManager
The interface for any annotation manager (custom or default)
addAnnotation
Type declaration
Adds an annotation to the specified group.
Parameters
annotation: Annotation
The annotation to add.
groupKey: string
The group key to add the annotation to.
Returns void
getAnnotation
Type declaration
Returns the annotation with the specified UID.
Parameters
annotationUID: string
The UID of the annotation to retrieve.
Returns Annotation
The annotation with the specified UID.
getAnnotations
Type declaration
Returns the annotations associated with the specified group, if the toolName is specified, it will return the annotations for the specified tool.
Parameters
groupKey: string
The group key to retrieve annotations for.
optionaltoolName: string
The name of the tool to retrieve annotations for.
Returns Annotations | GroupSpecificAnnotations
The annotations associated with the specified group and tool.
getGroupKey
Type declaration
Annotations are stored in Groups. Our default annotation manager groups the annotations based on FrameOfReferenceUID, but it is possible that you can group them based on different aspects or you only have one group totally.
This function returns the group key associated with the specified annotationGroupSelector. The annotationGroupSelector can be an HTML element or a string.
Parameters
annotationGroupSelector: AnnotationGroupSelector
The annotation group selector.
Returns string
The group key associated with the element.
getNumberOfAllAnnotations
Type declaration
Returns the total number of annotations across all groups.
Returns number
The total number of annotations across all groups.
getNumberOfAnnotations
Type declaration
Returns the number of annotations associated with the specified group. If the toolName is specified, it will return the number of annotations
Parameters
groupKey: string
The group key to count annotations for.
optionaltoolName: string
The name of the tool to count annotations for.
Returns number
The number of annotations associated with the specified group.
removeAllAnnotations
Type declaration
Removes all annotations.
Returns void
removeAnnotation
Type declaration
Removes the annotation with the specified UID.
Parameters
annotationUID: string
The UID of the annotation to remove.
Returns void
removeAnnotations
Type declaration
Removes all annotations associated with the specified group.
Parameters
groupKey: string
The group key to remove annotations for.
Returns void
ISculptToolShape
This interface defines a contract for implementing various shapes within the sculptor tool.
Classes such as CircleSculptCursor
adhere to this interface,
providing specific implementations for sculptor tools to utilize the shape
during sculpting operations.
configureToolSize
Function configures the tool size
Parameters
evt: InteractionEventType
Returns void
getInsertPosition
Function returns the the position to insert new handle
Parameters
previousIndex: number
Previous handle index
nextIndex: number
Next handle index
sculptData: SculptData
Sculpt data
Returns Point3
getMaxSpacing
Function returns max spacing between two handles
Parameters
minSpacing: number
Returns number
pushHandles
Pushes the points radially away from the mouse if they are contained within the shape defined by the freehandSculpter tool
Parameters
viewport: IViewport
sculptData: SculptData
Returns PushedHandles
renderShape
Used to render shapes supported for sculptor tool
Parameters
svgDrawingHelper: SVGDrawingHelper
The svgDrawingHelper providing the context for drawing.
canvasLocation: Point2
Current canvas location in canvas index coordinates
options: any
Options for drawing shapes
Returns void
updateToolSize
Updates the tool size
Parameters
canvasCoords: Point2
Current canvas points
viewport: IViewport
activeAnnotation: ContourAnnotation
Returns void
ISpline
Spline curve interface
aabb
Axis-aligned bounding box (minX, minY, maxX, maxY)
Returns AABB2
closed
Flag that is set to true when the curve is already closed
Returns boolean
Set the curve as closed which connects the last to the first point
Parameters
closed: boolean
Returns void
fixedResolution
Fixed resolution (eg: Linear Spline)
Returns boolean
invalidated
Flag that is set to true when the spline needs to be updated. The update runs automaticaly when needed (eg: getPolylinePoints).
Returns boolean
length
Length of the spline curve in pixels
Returns number
numControlPoints
Number of control points
Returns number
resolution
Resolution of the spline curve (greater than or equal to 0)
Returns number
Set the resolution of the spline curve
Parameters
resolution: number
Returns void
addControlPoint
Add a control point to the end of the array
Parameters
point: Point2
Control point (2D)
Returns void
addControlPointAtU
Add a control point specifying its
u
value in Parameter Space which is a number from 0 to N where N is the number of curve segments. The integer part is the curve segment index and the decimal part is thet
value on that curve segment.Parameters
u: number
u
value in Parameter Space
Returns ControlPointInfo
addControlPoints
Add a list of control poits to the end of the array
Parameters
points: Point2[]
Control points to be added
Returns void
clearControlPoints
Remove all control points
Returns void
containsPoint
Checks if a 2D point is inside the spline curve.
A point is inside a curve/polygon if the number of intersections between the horizontal ray emanating from the given point and to the right and the line segments is odd. https://www.eecs.umich.edu/courses/eecs380/HANDOUTS/PROJ2/InsidePoly.html
Parameters
point: Point2
2D Point
Returns boolean
True is the point is inside the spline curve or false otherwise
deleteControlPointByIndex
Delete a control point given its index
Parameters
index: number
Control point index to be removed
Returns boolean
True if the control point is removed or false otherwise
getClosestControlPoint
Finds the closest control point given a 2D point
Parameters
point: Point2
Reference point
Returns ClosestControlPoint
Closest control point
getClosestControlPointWithinDistance
Finds the closest control point given a 2D point and a maximum distance
Parameters
point: Point2
Reference 2D point
range: number
Returns ClosestControlPoint
Closest control point that is within the given range or undefined otherwise
getClosestPoint
Finds the closest point on the spline curve given 2D point
Parameters
point: Point2
Reference 2D point
Returns ClosestSplinePoint
Closest point on the spline curve
getClosestPointOnControlPointLines
Finds the closest point on the straight line that connects all control points given a 2D point
Parameters
point: Point2
Reference point
Returns ClosestPoint
Closest point on the straight line that connects all control points
getControlPoints
Get a list with all control points. The control points are cloned to prevent any caller from changing them resulting in unexpected behaviors
Returns Point2[]
- List of all control points
getPolylinePoints
Get all points necessary to draw a spline curve
Returns Point2[]
Array with all points necessary to draw a spline curve
getPreviewPolylinePoints
Get all points necessary to draw the preview curve for a new possible control point
Parameters
controlPointPreview: Point2
closeDistance: number
Returns Point2[]
Array with all points necessary to draw the preview curve
hasTangentPoints
Bézier curves have tangent points connected to control points
Returns boolean
True if the spline has tangent point or false otherwise
isPointNearCurve
Checks if a point is near to the spline curve
Parameters
point: Point2
Reference point
maxDist: number
Maximum allowed distance
Returns boolean
True if the point is close to the spline curve or false otherwise
setControlPoints
Replace all control points by some new ones
Parameters
points: Point2[]
Control points to be added to the array
Returns void
updateControlPoint
Update the coordinate of a control point given its index
Parameters
index: number
Control point index
newControlPoint: Point2
New control point
Returns void
ISynchronizerEventHandler
Parameters
synchronizer: Synchronizer
sourceViewport: default
targetViewport: default
sourceEvent: any
optionaloptions: any
Returns void | Promise<void>
Type Aliases
Annotation
Type declaration
optionalannotationUID?: string
A unique identifier for this annotation
optionalautoGenerated?: boolean
If the annotation is auto generated from other annotations
optionalchildAnnotationUIDs?: string[]
Array that contains all child annotation UID
An annotation may have one or more child annotations when it is contour and have some holes in it.
data: { cachedStats?: unknown; handles?: { activeHandleIndex?: number | null; points?: Types.Point3[]; textBox?: { hasMoved: boolean; worldBoundingBox?: { bottomLeft: Types.Point3; bottomRight: Types.Point3; topLeft: Types.Point3; topRight: Types.Point3 }; worldPosition: Types.Point3 } } }
Data for annotation, Derivatives need to define their own data types.
[key string]: any
optionalcachedStats?: unknown
Cached Annotation statistics which is specific to the tool
optionalhandles?: { activeHandleIndex?: number | null; points?: Types.Point3[]; textBox?: { hasMoved: boolean; worldBoundingBox?: { bottomLeft: Types.Point3; bottomRight: Types.Point3; topLeft: Types.Point3; topRight: Types.Point3 }; worldPosition: Types.Point3 } }
Annotation handles that are grabbable for manipulation
[key string]: any
optionalactiveHandleIndex?: number | null
index of the active handle being manipulated
optionalpoints?: Types.Point3[]
world location of the handles in the space
optionaltextBox?: { hasMoved: boolean; worldBoundingBox?: { bottomLeft: Types.Point3; bottomRight: Types.Point3; topLeft: Types.Point3; topRight: Types.Point3 }; worldPosition: Types.Point3 }
annotation text box information
hasMoved: boolean
whether the text box has moved
optionalworldBoundingBox?: { bottomLeft: Types.Point3; bottomRight: Types.Point3; topLeft: Types.Point3; topRight: Types.Point3 }
text box bounding box information
bottomLeft: Types.Point3
Bottom left location of the text box in the world space
bottomRight: Types.Point3
Bottom right location of the text box in the world space
topLeft: Types.Point3
Top left location of the text box in the world space
topRight: Types.Point3
Top right location of the text box in the world space
worldPosition: Types.Point3
the world location of the text box
optionalhighlighted?: boolean
If the annotation is being hovered over and is highlighted
optionalinvalidated?: boolean
Has annotation data been invalidated (e.g., as a result of mouse interactions)
optionalisLocked?: boolean
If the annotation is locked for manipulation
optionalisVisible?: boolean
If the annotation is visible for manipulation
metadata: Types.ViewReference & { cameraPosition?: Types.Point3; toolName: string; viewUp?: Types.Point3 }
Metadata for annotation
optionalparentAnnotationUID?: string
Parent annotation UID
An annotation may have a parent annotation when it is, for example, a hole inside a contour.
AnnotationGroupSelector
AnnotationGroupSelector is a type that can be used to specify the group of annotations to which an annotation should be added.
AnnotationHandle
Handle position in the world coordinates
AnnotationRenderContext
Type declaration
annotation: Annotation
annotationStyle: Record<string, any>
enabledElement: Types.IEnabledElement
svgDrawingHelper: SVGDrawingHelper
targetId: string
AnnotationState
All frame of reference specific annotations for all tools.
Type declaration
[key string]: GroupSpecificAnnotations
Annotations
Array of annotations
BidirectionalData
Type declaration
optionalcolor?: string | number[]
optionallabel?: string
majorAxis: [Types.Point3, Types.Point3]
maxMajor: number
maxMinor: number
minorAxis: [Types.Point3, Types.Point3]
referencedImageId: string
segmentIndex: number
sliceIndex: number
BoundsIJK
CanvasCoordinates
CardinalSplineProps
Cardinal spline properties
ClosestControlPoint
ClosestPoint
Type declaration
distance: number
Distance to the reference point
point: Types.Point2
2D coordinate
ClosestSplinePoint
ContourAnnotation
ContourAnnotationData
Type declaration
data: { contour: { closed: boolean; polyline: Types.Point3[]; windingDirection?: ContourWindingDirection } }
contour: { closed: boolean; polyline: Types.Point3[]; windingDirection?: ContourWindingDirection }
closed: boolean
polyline: Types.Point3[]
optionalwindingDirection?: ContourWindingDirection
optionalonInterpolationComplete?: () => void
Returns void
ContourSegmentationAnnotation
ContourSegmentationAnnotationData
Type declaration
optionalautoGenerated?: boolean
data: { contour: { originalPolyline?: Types.Point3[] }; segmentation: { segmentIndex: number; segmentationId: string } }
contour: { originalPolyline?: Types.Point3[] }
optionaloriginalPolyline?: Types.Point3[]
The original polyline before livewire, to show comparison with regenerated data (eg based on spline or livewire changes).
segmentation: { segmentIndex: number; segmentationId: string }
segmentIndex: number
segmentationId: string
optionalhandles?: { interpolationSources?: Types.PointsManager<Types.Point3>[] }
optionalinterpolationSources?: Types.PointsManager<Types.Point3>[]
Segmentation contours can be interpolated between slices to produce intermediate data. The interpolation sources are source data for the interpolation corresponding to the handle points. The object will have the kIndex assigned so that one can determine relative slice locations that the handles are in originally.
This does NOT necessarily correspond to the handles used on the original source data, but is the set of point uses to interpolate the current handles. That is, for linear interpolation:
handles.points[i] = linear(interpolationSources[0].getPoint(i),
interpolationSources[1].getPoint(i));These are sometimes required for things like livewire which need to update the handle position with a snap to nearest live point or can be used as an indicator that interpolation has taken place.
optionalinterpolationCompleted?: boolean
optionalinterpolationUID?: string
optionalmetadata?: { originalToolName?: string }
optionaloriginalToolName?: string
The original name of the tool before adding/removing holes and contours
optionalonInterpolationComplete?: (annotation: ContourSegmentationAnnotation) => unknown
This is called when interpolation is performed, and can be used to add data specific settings to the annotation instance.
Parameters
annotation: ContourSegmentationAnnotation
Returns unknown
ContourSegmentationData
Type declaration
optionalannotationUIDsMap?: Map<number, Set<string>>
optionalgeometryIds?: string[]
ControlPointInfo
Type declaration
index: number
Control point index
point: Types.Point2
2D coordinate
FloodFillGetter
FloodFillOptions
Type declaration
optionaldiagonals?: boolean
optionalequals?: (a: any, b: any) => boolean
Parameters
a: any
b: any
Returns boolean
optionalonBoundary?: (x: number, y: number, z?: number) => void
Parameters
x: number
y: number
optionalz: number
Returns void
optionalonFlood?: (x: number, y: number, z?: number) => void
Parameters
x: number
y: number
optionalz: number
Returns void
FloodFillResult
Type declaration
boundaries: Types.Point2[] | Types.Point3[]
flooded: Types.Point2[] | Types.Point3[]
GroupSpecificAnnotations
Type declaration
[toolName string]: Annotations
IDistance
Distance in page, client, canvas and world coordinates.
Type declaration
canvas: number
canvas distance
client: number
client distance
page: number
page distance
world: number
world distance
IPoints
Points in page, client, canvas and world coordinates.
Type declaration
canvas: Types.Point2
canvas coordinates of the point
client: Types.Point2
client coordinates of the point
page: Types.Point2
page coordinates of the point
world: Types.Point3
world coordinates of the point
IToolBinding
Type declaration
optionalmodifierKey?: ToolBindingKeyboardType
Keyboard bindings e.g., KeyboardBindings.Shift/Ctrl etc.
optionalmouseButton?: ToolBindingMouseType
Mouse button bindings e.g., MouseBindings.Primary/Secondary etc.
optionalnumTouchPoints?: number
Number of touch points
IToolClassReference
Type declaration
Type parameters
- T: BaseTool
Parameters
config: any
Returns T
ITouchPoints
ImageInterpolationData
Type declaration
optionalannotations?: Annotation[]
sliceIndex: number
InteractionTypes
Supported Interactions for tools
InterpolationViewportData
A base viewport and annotation information used to start interpolating between slices.
Type declaration
annotation: InterpolationROIAnnotation
The annotation that was just completed.
interpolationUID: string
The type of event, whether initializing the label or updating it.
optionalisInterpolationUpdate?: boolean
True if the interpolation data is being regenerated because of an update
sliceData: Types.ImageSliceData
viewport: Types.IViewport
The viewport that this interpolation is occurring within
JumpToSliceOptions
Type declaration
optionaldebounceLoading?: boolean
imageIndex: number
optionalvolumeId?: string
LabelmapToolOperationData
Type declaration
points: Types.Point3[]
preview: any
preview is used for sharing preview data between views/interactions with a tool, and needs to be maintained by the tool side in order to be able to accept/reject/update the preview information.
optionalpreviewColors?: Record<number, [number, number, number, number]>
The colours to use for previewing
segmentIndex: number
segmentationId: string
segmentationRepresentationUID: string
segmentsLocked: number[]
strategySpecificConfiguration: any
toolGroupId: string
viewPlaneNormal: number[]
viewUp: number[]
LabelmapToolOperationDataStack
LabelmapToolOperationDataVolume
NamedStatistics
Type declaration
optionalarea?: Statistics & { name: area }
array: Statistics[]
optionalcircumferance?: Statistics & { name: circumferance }
count: Statistics & { name: count }
max: Statistics & { name: max }
mean: Statistics & { name: mean }
stdDev: Statistics & { name: stdDev }
stdDevWithSumSquare: Statistics & { name: stdDevWithSumSquare }
optionalvolume?: Statistics & { name: volume }
PlanarBoundingBox
Type declaration
height: number
width: number
x: number
y: number
PolySegConversionOptions
Type declaration
optionalsegmentIndices?: number[]
optionalsegmentationRepresentationUID?: string
optionalviewport?: Types.IStackViewport | Types.IVolumeViewport
PublicToolProps
Tool specific tool properties which includes the supported interaction types and the configuration.
RepresentationConfig
Type declaration
optionalCONTOUR?: ContourConfig
contour configuration
optionalLABELMAP?: LabelmapConfig
labelmap configuration
optionalSURFACE?: any
surface configuration
RepresentationPublicInput
Type declaration
optionaloptions?: RepresentationPublicInputOptions
segmentationId: string
type: Enums.SegmentationRepresentations
SVGCursorDescriptor
SVGDrawingHelper
Type declaration
appendNode: (svgNode: SVGElement, cacheKey: string) => void
Parameters
svgNode: SVGElement
cacheKey: string
Returns void
clearUntouched: () => void
Returns void
getSvgNode: (cacheKey: string) => SVGGElement | undefined
Parameters
cacheKey: string
Returns SVGGElement | undefined
setNodeTouched: (cacheKey: string) => void
Parameters
cacheKey: string
Returns void
svgLayerElement: HTMLDivElement
svgNodeCacheForCanvas: Record<string, unknown>
SVGPoint
Type declaration
x: number
y: number
ScrollOptions
Type declaration
optionaldebounceLoading?: boolean
delta: number
optionalloop?: boolean
optionalscrollSlabs?: boolean
optionalvolumeId?: string
Segmentation
Global Segmentation Data which is used for the segmentation
Type declaration
activeSegmentIndex: number
Active segment index in the segmentation, this index will get used inside the segmentation tools
cachedStats: {}
If there is any derived statistics for the segmentation (e.g., mean, volume, etc)
[key string]: number
label: string
segmentation label
representationData: SegmentationRepresentationData
Representations of the segmentation. Each segmentation “can” be viewed in various representations. For instance, if a DICOM SEG is loaded, the main representation is the labelmap. However, for DICOM RT the main representation is contours, and other representations can be derived from the contour (currently only labelmap representation is supported)
segmentLabels: {}
[key string]: string
segmentationId: string
segmentation id
segmentsLocked: Set<number>
Locked segments in the segmentation, if a segment is locked no tool will be able to modify it
type: Enums.SegmentationRepresentations
segmentation main representation type
SegmentationRepresentationConfig
Type declaration
renderInactiveSegmentations: boolean
Whether to render Inactive segmentations
representations: RepresentationConfig
Representations configuration
SegmentationRepresentationData
Type declaration
optionalCONTOUR?: ContourSegmentationData
optionalLABELMAP?: LabelmapSegmentationData
optionalSURFACE?: SurfaceSegmentationData
SegmentationState
Segmentation State stored inside the cornerstone3DTools
{
colorLUT: [],
globalConfig: {
renderInactiveSegmentations: false,
representations: {
LABELMAP: {
renderFill: true,
renderOutline: true,
},
},
},
segmentations: [
{
segmentationId: 'segmentation1',
mainType: 'Labelmap',
activeSegmentIndex: 0,
segmentsLocked: new Set(),
label: 'segmentation1',
cachedStats: {},
representationData: {
LABELMAP: {
volumeId: 'segmentation1',
},
CONTOUR: {
geometryIds: ['contourSet1', 'contourSet2'],
},
},
},
{
segmentationId: 'segmentation2',
type: 'Labelmap',
activeSegmentIndex: 1,
segmentsLocked: new Set(),
label: 'segmentation2',
cachedStats: {},
representationData: {
CONTOUR: {
points: Float32Array,
},
},
},
],
toolGroups: {
toolGroupUID1: {
segmentationRepresentations: [
{
segmentationRepresentationUID: '12123123123132',
segmentationId: '123123',
type: 'Labelmap',
active: true,
colorLUTIndex: 0,
visibility: true,
segmentsHidden: Set(),
// rendering config
config: {
"cfun",
"ofun",
},
// segmentation representation specific config, has priority over the one in the outer scope
segmentationRepresentationSpecificConfig: {
LABELMAP: {
renderFill: true,
}
}
// segment specific config
segmentSpecificConfig: {
1: {
renderFill: false,
}
},
},
],
config: {
renderInactiveSegmentations: false,
representations: {
LABELMAP: {
renderFill: true,
renderOutline: true,
},
},
},
},
},
}
Type declaration
colorLUT: Types.ColorLUT[]
Array of colorLUT for segmentation to render
globalConfig: SegmentationRepresentationConfig
global segmentation state with config
segmentations: Segmentation[]
segmentations
toolGroups: {}
ToolGroup specific segmentation state with config
[key string]: { config: SegmentationRepresentationConfig; segmentationRepresentations: ToolGroupSpecificRepresentations }
SetToolBindingsType
Type declaration
bindings: IToolBinding[]
bindings for the toolGroup’s tool when it is set to be active
SplineCurveSegment
Spline curve segment the is part of a spline path
Type declaration
aabb: Types.AABB2
Axis-aligned bounding (minX, minY, maxX, maxY)
controlPoints: { p0: Types.Point2; p1: Types.Point2; p2: Types.Point2; p3: Types.Point2 }
Control Points that influences the spline curve segment.
For cubic splines the curve goes from P1 and P2 but it is also influenced by the previous point (P0) and the next point (P3)
p0: Types.Point2
p1: Types.Point2
p2: Types.Point2
p3: Types.Point2
length: number
Length of the curve segment
lineSegments: SplineLineSegment[]
Line segments that makes the curve segment
previousCurveSegmentsLength: number
Total length of all previous curve segments
SplineLineSegment
Line segment the is part of a curve segment based on its resolution. Each curve segment shall have 20 line segments when spline resolution is set to 20.
Type declaration
aabb: Types.AABB2
Axis-aligned bounding (minX, minY, maxX, maxY)
length: number
Length of the line segment
points: { end: Types.Point2; start: Types.Point2 }
Start and end points for the line segment
end: Types.Point2
start: Types.Point2
previousLineSegmentsLength: number
Total length of all previous line segments for a given curve segment
SplineProps
Type declaration
optionalclosed?: boolean
Flag that is set to true when the curve is closed
optionalfixedResolution?: boolean
Fixed resolution (Linear spline)
Splines with
fixedResolution
set to true shall attempt to change the resolution (eg: spline.resolution = 10). That is useful, for example, for linear splines because having more line segments between two control points would not change its resolution and that is why it is fixed to 0.optionalresolution?: number
Resolution of the spline curve
The number assigned to the resolution is the number of intermediate points on each curve segment that makes the spline path. For example, if the resolution is set to 0 that means that each curve segment will have no intermediate points but only a straight line similar to Linear Spline. For a resolution equal to 20 that means the curve shall have 20 intermediate points or 21 line segments total making it look more like a curve.
Statistics
Type declaration
optionallabel?: string
name: string
unit: null | string
value: number | number[]
TextBoxHandle
TextBox handle type specifying its location in the world including bottomLeft and topRight and bottomRight and topLeft points, and its center world coordinates.
Type declaration
hasMoved: boolean
worldBoundingBox: { bottomLeft: Types.Point3; bottomRight: Types.Point3; topLeft: Types.Point3; topRight: Types.Point3 }
bottomLeft: Types.Point3
bottomRight: Types.Point3
topLeft: Types.Point3
topRight: Types.Point3
worldPosition: Types.Point3
ToolAction
An action that may be defined at the tool configuration level
Annotations can have actions that run a specific task (ex: showing a dropdown containing a list of all predefined zoom levels - advanced magnifier glass). Each action must have at least one binding option (mouse button + [modifier(s)]) and a action runs if and only if no other tool is using that same binding options to draw an annotation because action has lower priority.
Actions are defined in the following way in a annotation tool constructor:
class MyAnnotationTool extends AnnotationTool { constructor( toolProps: PublicToolProps = {}, defaultToolProps: ToolProps = { configuration: { actions: [ { method: ‘myAction’, bindings: [ { mouseButton: MouseBindings.Secondary, modifierKey: KeyboardBindings.Shift, } ] } ] } } ) { super(toolProps, defaultToolProps); }
public myAction(evt: EventTypes.InteractionEventType, annotation: MyAnnotation) { // action code } }
The “method” property may be a string or a javascript function. In case it is
a string a function with same name must exists in the tool class. In both ways
(string or function) the function is called in the tool’s context (this
)
Type declaration
bindings: SetToolBindingsType[]
method: string | (evt: InteractionEventType, annotation: Annotation) => void
ToolConfiguration
ToolGroupSpecificContourRepresentation
ToolGroupSpecificLabelmapRepresentation
ToolGroup Specific Segmentation Data for segmentations. As one segmentation can be represented in various ways (currently only labelmap is supported) we store ToolGroup specific segmentation data in this object
ToolGroupSpecificRepresentation
ToolGroupSpecificRepresentationState
Representation state of the segmentation which is common between all representations (we don’t need to separate these states for each representation)
Type declaration
active: boolean
Whether the segmentation is the active (manipulatable) segmentation or not which means it is inactive
colorLUTIndex: number
The index of the colorLUT from the state that this segmentationData is using to render
optionalpolySeg?: { enabled: boolean; options?: any }
Poly Seg generated
enabled: boolean
optionaloptions?: any
segmentationId: string
The segmentationId that this representation is derived from
segmentationRepresentationUID: string
Segmentation Representation UID
segmentsHidden: Set<number>
Hidden segment indices in the segmentation
type: Enums.SegmentationRepresentations
The representation type
ToolHandle
Tool Handle type can be either AnnotationHandle or TextBoxHandle
ToolOptionsType
Type declaration
bindings: IToolBinding[]
bindings for the toolGroup’s tool when it is set to be active
mode: ToolModes
mode of the tool
The data that is passed to the event handler when a new annotation is added to the annotations.