Class: ECGGenericViewport
Generic GenericViewport controller.
The base class owns only shared viewport state and binding orchestration: loaded logical data, mounted renderings, view state, and per-dataset render-state forwarding. It does not know how CPU, VTK, DOM, image, volume, or media runtimes work internally.
Concrete viewport families are expected to stay thin and provide:
- a render context for their render paths
- a data provider
- a render path resolver when the default is not enough
- viewport-family-specific public APIs
Concrete render paths are expected to own:
- runtime add/remove lifecycle
- view-state interpretation for that render path
- per-dataset render-state application
- render-path-specific coordinate transforms
This split keeps migration from legacy viewports incremental without centralizing render-mode-specific behavior in the controller.
Extends
GenericViewport<ECGViewState,ECGDataPresentation,ECGCanvasRenderContext>
Constructors
new ECGGenericViewport()
new ECGGenericViewport(
args):ECGGenericViewport
Parameters
• args: ECGViewportInput
Returns
Overrides
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:53
Properties
_debug
readonly_debug:object
renderModes
renderModes:
Record<string,string>
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:85
bindings
protectedbindings:Map<string,ViewportDataBinding<ECGDataPresentation>>
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:75
canvas
readonlycanvas:HTMLCanvasElement
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:40
canvasContext
readonlycanvasContext:CanvasRenderingContext2D
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:41
dataPresentation
protecteddataPresentation:Map<string,ECGDataPresentation>
Inherited from
GenericViewport.dataPresentation
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:79
dataProvider
protecteddataProvider:DataProvider<object,unknown>
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:71
element
readonlyelement:HTMLDivElement
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:64
id
readonlyid:string
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:63
isDestroyed
protectedisDestroyed:boolean=false
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:81
renderContext
protectedrenderContext:ECGCanvasRenderContext
Overrides
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:43
renderingEngineId
readonlyrenderingEngineId:string
Overrides
GenericViewport.renderingEngineId
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:39
renderPathResolver
protectedrenderPathResolver:RenderPathResolver
Inherited from
GenericViewport.renderPathResolver
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:72
type
readonlytype:ECG_NEXT=ViewportType.ECG_NEXT
Overrides
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:38
viewportStatus
viewportStatus:
ViewportStatus=ViewportStatus.NO_DATA
Inherited from
GenericViewport.viewportStatus
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:67
viewState
protectedviewState:ECGViewState
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:80
Accessors
useCustomRenderingPipeline
getstaticuseCustomRenderingPipeline():boolean
Returns
boolean
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:45
Methods
addDisplaySet()
addDisplaySet(
displaySetId,options):Promise<void>
Loads a logical display set through the viewport data provider and adds it through the render-path resolver.
Parameters
• displaySetId: string
• options: DataAddOptions
Returns
Promise<void>
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:128
addLoadedData()
protectedaddLoadedData(displaySetId,data,options,shouldIgnore?):Promise<boolean>
Converts loaded logical data into a mounted rendering binding.
The binding stores render-path callbacks so future per-dataset render state, camera, transform, resize, and render requests can be routed back to the correct render-path runtime.
Parameters
• displaySetId: string
• data: LoadedData
• options: DataAddOptions
• shouldIgnore?
Returns
Promise<boolean>
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:477
canvasToWorld()
canvasToWorld(
canvasPos):Point3
Converts a canvas-space point to world-space coordinates using the computed camera.
Parameters
• canvasPos: Point2
Returns
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:265
customRenderViewportToCanvas()
customRenderViewportToCanvas():
void
Called by the rendering engine render loop for custom pipeline viewports.
Returns
void
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:272
destroy()
destroy():
void
Releases mounted bindings and viewport-local resources.
Returns
void
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:367
destroyBindings()
protecteddestroyBindings():void
Tears down all mounted dataset bindings by removing each one individually.
Returns
void
Inherited from
GenericViewport.destroyBindings
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:845
dispose()
dispose():
void
Alias for destroy. Provided for compatibility with disposable resource conventions.
Returns
void
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:390
forEachBinding()
protectedforEachBinding(visitor):void
Iterates mounted bindings without exposing the underlying map to subclasses.
Parameters
• visitor
Returns
void
Inherited from
GenericViewport.forEachBinding
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:763
getAspectRatio()
getAspectRatio():
Point2
Returns the current axis-based stretch as [scaleX, scaleY]. The new
generic viewport pipeline does not apply axis-based stretching for now, so this
defaults to [1, 1]. Subclasses that support aspect-ratio stretching
should override.
Returns
Inherited from
GenericViewport.getAspectRatio
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:299
getBinding()
protectedgetBinding(displaySetId):ViewportDataBinding<ECGDataPresentation>
Looks up a binding by dataset identifier.
Parameters
• displaySetId: string
Returns
ViewportDataBinding<ECGDataPresentation>
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:717
getCameraForEvent()
protectedgetCameraForEvent():ICamera<number>
Returns the camera representation used for event payloads. Delegates to the computed camera's ICamera projection when available, falling back to the raw view state.
Returns
ICamera<number>
Inherited from
GenericViewport.getCameraForEvent
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:676
getContentDimensions()
getContentDimensions():
object
Returns the rendered ECG content dimensions in device pixels.
Returns
object
The ECG content width and height in device pixels.
height
height:
number
width
width:
number
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:231
getCurrentBinding()
protectedgetCurrentBinding():ViewportDataBinding<ECGDataPresentation>
Returns the binding used for generic transform and frame-of-reference queries when a viewport family does not override the selection logic.
Returns
ViewportDataBinding<ECGDataPresentation>
Inherited from
GenericViewport.getCurrentBinding
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:753
getCurrentImageId()
getCurrentImageId():
string
Returns the current ECG image id, if one has been loaded.
Returns
string
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:308
getCurrentImageIdIndex()
getCurrentImageIdIndex():
number
ECG viewports always display index 0.
Returns
number
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:317
getDataPresentationState()
protectedgetDataPresentationState(displaySetId):ECGDataPresentation
Returns the last render state stored for a display set, even if that display set is not currently mounted.
Parameters
• displaySetId: string
Returns
ECGDataPresentation
Inherited from
GenericViewport.getDataPresentationState
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:590
getDisplaySetPresentation()
getDisplaySetPresentation(
displaySetId):ECGDataPresentation
Returns the stored presentation state for a specific dataset.
Parameters
• displaySetId: string
Returns
ECGDataPresentation
Inherited from
GenericViewport.getDisplaySetPresentation
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:192
getDisplaySetRenderMode()
protectedgetDisplaySetRenderMode(displaySetId):string
Internal helper: returns the mounted render mode for a specific dataset when present.
Parameters
• displaySetId: string
Returns
string
Inherited from
GenericViewport.getDisplaySetRenderMode
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:727
getDisplaySetRole()
protectedgetDisplaySetRole(displaySetId):BindingRole
Internal helper: returns the binding role for a mounted dataset when present.
Parameters
• displaySetId: string
Returns
BindingRole
Inherited from
GenericViewport.getDisplaySetRole
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:735
getFirstBinding()
protectedgetFirstBinding():ViewportDataBinding<ECGDataPresentation>
Returns the first mounted binding when a viewport family does not have a stronger notion of "current" selection.
Returns
ViewportDataBinding<ECGDataPresentation>
Inherited from
GenericViewport.getFirstBinding
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:743
getFrameOfReferenceUID()
getFrameOfReferenceUID():
string
Returns the frame of reference UID from the computed camera when available, falling back to the current binding or a viewport-local identifier.
Returns
string
Inherited from
GenericViewport.getFrameOfReferenceUID
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:241
getImageData()
getImageData():
CPUIImageData
Returns image data compatible with the Cornerstone tools annotation system. Amplitude is mapped to [0, ECG_AMPLITUDE_INDEX_SIZE) so annotation index bounds checks work correctly across channels.
Returns
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:335
getImageIds()
getImageIds():
string[]
Returns the image ids for the active ECG dataset.
Returns
string[]
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:324
getPan()
getPan():
Point2
Returns
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:188
getReferenceViewContexts()
protectedgetReferenceViewContexts():GenericViewportReferenceContext[]
Returns generic reference-compatibility contexts for mounted datasets. Subclasses can add image, volume, slice, plane, and dimension facts.
Returns
GenericViewportReferenceContext[]
Overrides
GenericViewport.getReferenceViewContexts
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:154
getResolvedView()
getResolvedView():
ECGResolvedView
Returns the viewport's computed camera snapshot for coordinate transforms and legacy ICamera interop. Subclasses must implement this to produce the viewport-family-specific computed camera.
Returns
ECGResolvedView
Overrides
GenericViewport.getResolvedView
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:424
getRotation()
getRotation():
number
ECG viewports have no rotation.
Returns
number
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:294
getSliceIndex()
getSliceIndex():
number
Returns
number
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:140
getUseCustomRenderingPipeline()
getUseCustomRenderingPipeline():
boolean
Returns
boolean
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:49
getViewReference()
getViewReference(
_specifier):ViewReference
Returns a spatial reference for the current viewport state.
Parameters
• _specifier: ViewReferenceSpecifier = {}
Returns
Overrides
GenericViewport.getViewReference
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:121
getViewReferenceId()
getViewReferenceId(
_specifier):string
Returns a stable string identifier for the current view reference.
Parameters
• _specifier: ViewReferenceSpecifier = {}
Returns
string
Overrides
GenericViewport.getViewReferenceId
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:132
getViewState()
getViewState():
ECGViewState
Returns the controller's current shared view state.
Returns
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:329
getVisibleChannels()
getVisibleChannels():
object[]
Returns channel visibility state for the active ECG dataset.
Returns
object[]
Channel names paired with their current visibility state.
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:207
getWaveformData()
getWaveformData():
ECGWaveformPayload
Returns
ECGWaveformPayload
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:117
getZoom()
getZoom():
number
Returns
number
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:144
isReferenceViewable()
isReferenceViewable(
viewReference,options):boolean
Returns whether a spatial reference is compatible with this viewport.
Parameters
• viewReference: ViewReference
• options: ReferenceCompatibleOptions = {}
Returns
boolean
Inherited from
GenericViewport.isReferenceViewable
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:225
mergeDataPresentation()
protectedmergeDataPresentation(displaySetId,props):ECGDataPresentation
Merges object-like updates into the stored per-display-set render state and forwards the result immediately when mounted.
Parameters
• displaySetId: string
• props: Partial<ECGDataPresentation>
Returns
ECGDataPresentation
Inherited from
GenericViewport.mergeDataPresentation
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:621
modified()
protectedmodified(previousCamera?):void
Pushes the current shared view state to every binding and schedules a render. Optionally fires a camera-modified event when a previous camera snapshot is provided.
Parameters
• previousCamera?: ICamera<number>
Returns
void
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:655
normalizeViewState()
protectednormalizeViewState(viewState):ECGViewState
Hook for subclasses to clamp or adjust view-state values before they are stored. The default implementation returns the view state unchanged.
Parameters
• viewState: ECGViewState
Returns
Overrides
GenericViewport.normalizeViewState
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:150
onDestroy()
protectedonDestroy():void
Hook for subclasses to release viewport-local resources during destroy. Called after bindings have been torn down but before the maps are cleared.
Returns
void
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:855
removeAllData()
protectedremoveAllData():void
Returns
void
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:557
removeData()
removeData(
displaySetId):void
Removes a dataset binding and its stored presentation state, then triggers a re-render so the viewport reflects the removal.
Parameters
• displaySetId: string
Returns
void
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:144
removeWidgets()
removeWidgets():
void
Returns
void
Deprecated
Compatibility no-op retained during the V2 migration.
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:360
render()
render():
void
Renders all active ECG bindings.
Returns
void
Overrides
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:265
renderBindings()
protectedrenderBindings():boolean
Invokes render on each binding and reports whether any binding handled the render request directly.
Returns
boolean
Inherited from
GenericViewport.renderBindings
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:814
resetViewState()
resetViewState():
boolean
Resets pan and zoom to defaults and re-renders.
Returns
boolean
Overrides
GenericViewport.resetViewState
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:279
resize()
resize():
void
Resizes the backing canvas to match the displayed viewport size.
Returns
void
Overrides
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:247
resizeBindings()
protectedresizeBindings():void
Invokes resize on each mounted binding.
Returns
void
Inherited from
GenericViewport.resizeBindings
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:832
resizeForRenderingEngine()
resizeForRenderingEngine(
__namedParameters):void
RenderingEngine-owned resize hook for custom-pipeline viewports.
Generic viewports own semantic view state, so the rendering engine delegates resize behavior here instead of preserving legacy getCamera/setCamera snapshots around a reset.
Parameters
• __namedParameters: RenderingEngineResizeOptions = {}
Returns
void
Inherited from
GenericViewport.resizeForRenderingEngine
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:452
scroll()
scroll():
void
No-op: ECG viewports are not slice stacks.
Returns
void
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:301
setDataPresentationState()
protectedsetDataPresentationState(displaySetId,props):void
Stores per-dataset render state and forwards it immediately when that dataset is already added.
Parameters
• displaySetId: string
• props: ECGDataPresentation
Returns
void
Inherited from
GenericViewport.setDataPresentationState
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:567
setDefaultDataPresentation()
protectedsetDefaultDataPresentation(displaySetId,defaults):ECGDataPresentation
Stores object-like defaults for a display set without clobbering any values already tracked for that display set.
Parameters
• displaySetId: string
• defaults: ECGDataPresentation
Returns
ECGDataPresentation
Inherited from
GenericViewport.setDefaultDataPresentation
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:600
setDisplaySetPresentation()
setDisplaySetPresentation(props)
setDisplaySetPresentation(
props):void
Updates the stored per-display-set presentation state. When called with
just props, the update is applied to the current (source) binding. When
called with an explicit displaySetId, the update targets that binding.
Parameters
• props: Partial<ECGDataPresentation>
Returns
void
Inherited from
GenericViewport.setDisplaySetPresentation
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:166
setDisplaySetPresentation(displaySetId, props)
setDisplaySetPresentation(
displaySetId,props):void
Parameters
• displaySetId: string
• props: Partial<ECGDataPresentation>
Returns
void
Inherited from
GenericViewport.setDisplaySetPresentation
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:167
setDisplaySets()
setDisplaySets(...
entries):Promise<void>
Replaces all mounted waveform display sets with the provided ones using the canvas ECG render path.
Parameters
• ...entries: object[]
Waveform display sets to mount.
Returns
Promise<void>
Overrides
GenericViewport.setDisplaySets
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:88
setNeedsRender()
setNeedsRender():
void
Marks the viewport as waiting for a render pass without scheduling one.
Returns
void
Inherited from
GenericViewport.setNeedsRender
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:414
setPan()
setPan(
pan):void
Parameters
• pan: Point2
Returns
void
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:192
setRendered()
setRendered():
void
Called by rendering engines after a frame is rendered.
Most GenericViewport families do not need to track this separately because their render paths own concrete runtime state.
Returns
void
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:400
setViewReference()
setViewReference(
_viewRef):void
Applies a spatial reference to the current viewport state.
Parameters
• _viewRef: ViewReference
Returns
void
Overrides
GenericViewport.setViewReference
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:136
setViewState()
setViewState(
viewStatePatch):void
Merges partial view-state updates into the viewport source of truth and propagates the result to every active binding.
Parameters
• viewStatePatch: Partial<ECGViewState>
Returns
void
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:311
setZoom()
setZoom(
zoom,canvasPoint?):void
Parameters
• zoom: number
• canvasPoint?: Point2
Returns
void
Defined in
packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:172
triggerCameraModifiedEvent()
protectedtriggerCameraModifiedEvent(previousCamera):void
Fires a Events.CAMERA_MODIFIED event on the viewport element.
Parameters
• previousCamera: ICamera<number>
Returns
void
Inherited from
GenericViewport.triggerCameraModifiedEvent
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:684
triggerCameraResetEvent()
protectedtriggerCameraResetEvent():void
Fires a Events.CAMERA_RESET event on the viewport element.
Returns
void
Inherited from
GenericViewport.triggerCameraResetEvent
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:699
updateViewState()
updateViewState(
updater):void
Computes a view-state patch from the current state, then applies it through
setViewState so normalization, events, and render invalidation stay in
the canonical mutation path.
Parameters
• updater: Partial<ECGViewState> | (viewState) => void | Partial<ECGViewState>
Returns
void
Inherited from
GenericViewport.updateViewState
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:338
worldToCanvas()
worldToCanvas(
worldPos):Point2
Converts a world-space point to canvas-space coordinates using the computed camera.
Parameters
• worldPos: Point3
Returns
Inherited from
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:281