@cornerstonejs/core
Version:
Cornerstone3D Core
84 lines (83 loc) • 3.12 kB
TypeScript
export declare const ECG_SECONDS_WIDTH = 150;
export declare const ECG_CHANNEL_SPACING = 5;
export declare const ECG_RENDERING_COLORS: {
readonly gridMajor: "#7f0000";
readonly gridMinor: "#3f0000";
readonly baseline: "#7f4c00";
readonly trace: "#ffffff";
readonly label: "#ffff00";
readonly background: "#000000";
};
export interface ECGChannelLike {
name: string;
data: Int16Array;
min: number;
max: number;
visible?: boolean;
}
export interface ECGWaveformLike<TChannel extends ECGChannelLike = ECGChannelLike> {
channels: TChannel[];
numberOfChannels: number;
numberOfSamples: number;
samplingFrequency: number;
bitsAllocated: number;
sampleInterpretation: string;
multiplexGroupLabel?: string;
calibration?: unknown;
}
export interface ECGChannelLayout<TChannel extends ECGChannelLike = ECGChannelLike> {
channel: TChannel;
itemHeight: number;
yOffset: number;
baseline: number;
}
export interface ECGRenderMetrics {
ecgWidth: number;
ecgHeight: number;
channelScale: number;
worldToCanvasRatio: number;
xOffsetCanvas: number;
yOffsetCanvas: number;
}
export interface ECGGridMetrics {
ecgWidth: number;
ecgHeight: number;
channelScale: number;
}
export declare function loadECGWaveform(dataId: string): Promise<{
waveform: ECGWaveformLike;
calibration: unknown;
}>;
export declare function computeECGMinMax(data: Int16Array): {
min: number;
max: number;
};
export declare function getDefaultECGValueRange(waveform: ECGWaveformLike): [number, number];
export declare function getVisibleECGChannels<TChannel extends ECGChannelLike>(channels: TChannel[], visibleChannels?: number[]): TChannel[];
export declare function getVisibleECGChannelsByFlag<TChannel extends ECGChannelLike>(channels: TChannel[]): TChannel[];
export declare function computeECGHeight<TChannel extends ECGChannelLike>(visibleChannels: TChannel[], channelScale: number): number;
export declare function computeECGChannelLayouts<TChannel extends ECGChannelLike>(args: {
visibleChannels: TChannel[];
channelScale: number;
}): ECGChannelLayout<TChannel>[];
export declare function computeECGRenderMetrics<TChannel extends ECGChannelLike>(args: {
canvas: HTMLCanvasElement;
visibleChannels: TChannel[];
windowMs: number;
valueRange: [number, number];
}): ECGRenderMetrics;
export declare function drawECGGrid(ctx: CanvasRenderingContext2D, metrics: ECGGridMetrics, options?: {
showGrid?: boolean;
}): void;
export declare function drawECGTraces<TChannel extends ECGChannelLike>(args: {
ctx: CanvasRenderingContext2D;
layouts: ECGChannelLayout<TChannel>[];
ecgWidth: number;
channelScale: number;
startIndex?: number;
endIndex?: number;
lineWidth?: number;
amplitudeScale?: number;
}): void;
export declare function drawECGLabels<TChannel extends ECGChannelLike>(ctx: CanvasRenderingContext2D, layouts: ECGChannelLayout<TChannel>[], worldToCanvasRatio: number): void;
export declare function ensureECGCanvasSize(canvas: HTMLCanvasElement): void;