Skip to main content

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

Constructors

new ECGGenericViewport()

new ECGGenericViewport(args): ECGGenericViewport

Parameters

args: ECGViewportInput

Returns

ECGGenericViewport

Overrides

GenericViewport.constructor

Defined in

packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:53

Properties

_debug

readonly _debug: object

renderModes

renderModes: Record<string, string>

Inherited from

GenericViewport._debug

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:85


bindings

protected bindings: Map<string, ViewportDataBinding<ECGDataPresentation>>

Inherited from

GenericViewport.bindings

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:75


canvas

readonly canvas: HTMLCanvasElement

Defined in

packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:40


canvasContext

readonly canvasContext: CanvasRenderingContext2D

Defined in

packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:41


dataPresentation

protected dataPresentation: Map<string, ECGDataPresentation>

Inherited from

GenericViewport.dataPresentation

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:79


dataProvider

protected dataProvider: DataProvider<object, unknown>

Inherited from

GenericViewport.dataProvider

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:71


element

readonly element: HTMLDivElement

Inherited from

GenericViewport.element

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:64


id

readonly id: string

Inherited from

GenericViewport.id

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:63


isDestroyed

protected isDestroyed: boolean = false

Inherited from

GenericViewport.isDestroyed

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:81


renderContext

protected renderContext: ECGCanvasRenderContext

Overrides

GenericViewport.renderContext

Defined in

packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:43


renderingEngineId

readonly renderingEngineId: string

Overrides

GenericViewport.renderingEngineId

Defined in

packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:39


renderPathResolver

protected renderPathResolver: RenderPathResolver

Inherited from

GenericViewport.renderPathResolver

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:72


type

readonly type: ECG_NEXT = ViewportType.ECG_NEXT

Overrides

GenericViewport.type

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

protected viewState: ECGViewState

Inherited from

GenericViewport.viewState

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:80

Accessors

useCustomRenderingPipeline

get static useCustomRenderingPipeline(): 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

GenericViewport.addDisplaySet

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:128


addLoadedData()

protected addLoadedData(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

GenericViewport.addLoadedData

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

Point3

Inherited from

GenericViewport.canvasToWorld

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

GenericViewport.destroy

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:367


destroyBindings()

protected destroyBindings(): 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

GenericViewport.dispose

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:390


forEachBinding()

protected forEachBinding(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

Point2

Inherited from

GenericViewport.getAspectRatio

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:299


getBinding()

protected getBinding(displaySetId): ViewportDataBinding<ECGDataPresentation>

Looks up a binding by dataset identifier.

Parameters

displaySetId: string

Returns

ViewportDataBinding<ECGDataPresentation>

Inherited from

GenericViewport.getBinding

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:717


getCameraForEvent()

protected getCameraForEvent(): 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()

protected getCurrentBinding(): 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()

protected getDataPresentationState(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()

protected getDisplaySetRenderMode(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()

protected getDisplaySetRole(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()

protected getFirstBinding(): 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

CPUIImageData

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

Point2

Defined in

packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:188


getReferenceViewContexts()

protected getReferenceViewContexts(): 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

ViewReference

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

ECGViewState

Inherited from

GenericViewport.getViewState

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()

protected mergeDataPresentation(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()

protected modified(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

GenericViewport.modified

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:655


normalizeViewState()

protected normalizeViewState(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

ECGViewState

Overrides

GenericViewport.normalizeViewState

Defined in

packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:150


onDestroy()

protected onDestroy(): 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

GenericViewport.onDestroy

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:855


removeAllData()

protected removeAllData(): void

Returns

void

Inherited from

GenericViewport.removeAllData

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

GenericViewport.removeData

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

GenericViewport.removeWidgets

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:360


render()

render(): void

Renders all active ECG bindings.

Returns

void

Overrides

GenericViewport.render

Defined in

packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:265


renderBindings()

protected renderBindings(): 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

GenericViewport.resize

Defined in

packages/core/src/RenderingEngine/GenericViewport/ECG/ECGViewport.ts:247


resizeBindings()

protected resizeBindings(): 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()

protected setDataPresentationState(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()

protected setDefaultDataPresentation(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

GenericViewport.setRendered

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

GenericViewport.setViewState

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()

protected triggerCameraModifiedEvent(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()

protected triggerCameraResetEvent(): 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

Point2

Inherited from

GenericViewport.worldToCanvas

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:281