Skip to content

copper3d / Modules / Utils/segmentation/NrrdTools / NrrdTools

Class: NrrdTools

Utils/segmentation/NrrdTools.NrrdTools

Core NRRD annotation tool for medical image segmentation.

Acts as a Facade that delegates to composed modules:

  • CanvasState — pure state container
  • DrawToolCore — tool orchestration, event routing
  • LayerChannelManager — layer/channel/sphere-type management
  • SliceRenderPipeline — slice rendering, canvas flip, mask reload
  • DataLoader — NRRD slice loading, legacy mask loading, NIfTI loading

No longer extends DrawToolCore — uses composition instead.

Example

ts
// Default 3 layers: layer1, layer2, layer3
const tools = new NrrdTools(container);

// Custom layers
const tools = new NrrdTools(container, { layers: ["layer1", "layer2"] });
// Default 3 layers: layer1, layer2, layer3
const tools = new NrrdTools(container);

// Custom layers
const tools = new NrrdTools(container, { layers: ["layer1", "layer2"] });

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new NrrdTools(container, options?)

Parameters

NameType
containerHTMLDivElement
options?Object
options.layers?string[]

Defined in

src/Utils/segmentation/NrrdTools.ts:113

Properties

_aiAssistActive

Private _aiAssistActive: boolean = false

Whether AI-assist mode is currently active.

Defined in

src/Utils/segmentation/NrrdTools.ts:1266


_aiPrevVisibility

Private _aiPrevVisibility: null | Record<string, boolean> = null

Layer visibility snapshot taken on enter, restored on exit.

Defined in

src/Utils/segmentation/NrrdTools.ts:1268


_calculatorActive

Private _calculatorActive: boolean = false

Whether calculator mode is active (not part of gui_states interface)

Defined in

src/Utils/segmentation/NrrdTools.ts:73


_pendingSliceStep

Private _pendingSliceStep: number = 0

Defined in

src/Utils/segmentation/NrrdTools.ts:70


_sliceRAFId

Private _sliceRAFId: null | number = null

Defined in

src/Utils/segmentation/NrrdTools.ts:69


container

container: HTMLDivElement

Defined in

src/Utils/segmentation/NrrdTools.ts:58


dataLoader

Private dataLoader: DataLoader

Data loading (extracted module)

Defined in

src/Utils/segmentation/NrrdTools.ts:82


dragOperator

dragOperator: DragOperator

Drag operator for slice navigation.

Defined in

src/Utils/segmentation/NrrdTools.ts:65


drawCore

Private drawCore: DrawToolCore

Core drawing tool orchestrator.

Defined in

src/Utils/segmentation/NrrdTools.ts:63


guiCallbacks

Private guiCallbacks: null | { finishContrastAdjustment: () => void ; updateCalDistance: (val: "tumour" | "skin" | "nipple" | "ribcage") => void ; updateEraserState: () => void ; updatePencilState: () => void ; updateSphereState: () => void ; updateWindowHigh: (value: number) => void ; updateWindowLow: (value: number) => void } = null

Stored closure callbacks from gui.ts setupGui()

Defined in

src/Utils/segmentation/NrrdTools.ts:99


guiParameterSettings

Private guiParameterSettings: undefined | IGuiParameterSettings

Defined in

src/Utils/segmentation/NrrdTools.ts:68


layerChannelManager

Private layerChannelManager: LayerChannelManager

Layer/channel management (extracted module)

Defined in

src/Utils/segmentation/NrrdTools.ts:76


notifyUser

notifyUser: (message: string, level: "error" | "warning" | "info") => void

Type declaration

▸ (message, level): void

How a message reaches the reader. Defaults to the console: this package ships without a UI and must not import the host application's, or it cannot be built on its own. A host that has a toast or a banner assigns this after construction.

Parameters
NameType
messagestring
level"error" | "warning" | "info"
Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:89


preTimer

Private preTimer: any

Defined in

src/Utils/segmentation/NrrdTools.ts:67


sliceRenderPipeline

Private sliceRenderPipeline: SliceRenderPipeline

Slice rendering pipeline (extracted module)

Defined in

src/Utils/segmentation/NrrdTools.ts:79


state

Private state: CanvasState

Shared state container.

Defined in

src/Utils/segmentation/NrrdTools.ts:61

Accessors

start

get start(): () => void

Get the DrawToolCore's start() render loop callback. This is called by DragSliceTool's requestAnimationFrame loop.

Returns

fn

▸ (): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1584

Methods

addSkip

addSkip(index): void

Parameters

NameType
indexnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:890


adjustContrast

adjustContrast(type, delta): void

Parameters

NameType
type"windowLow" | "windowHigh"
deltanumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:447


aiApplyMask

aiApplyMask(result): void

Apply a backend mask result into the scratch volume (overlay repaints next frame).

Parameters

NameType
resultAiMaskResult

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1352


aiCancelLasso

aiCancelLasso(): void

Abandon the in-progress lasso (Esc).

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1363


aiClearPrompts

aiClearPrompts(): void

Clear the in-progress prompt set (e.g. slice change).

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1354


aiClearSegment

aiClearSegment(label): void

Delete a Segmentation: erase all its label's voxels from scratch + committed.

Parameters

NameType
labelnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1344


aiCommitRegion

aiCommitRegion(): void

"New region": freeze current regions (they persist) + start a fresh prompt set.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1369


aiCommitToLayer

aiCommitToLayer(targetLayer?): void

Back-compat shim: merge with an IDENTITY mapping (each AI label → the same channel number) via the mapped path above. Newer callers should use aiCommitToLayerMapped with an explicit per-segmentation mapping.

Parameters

NameTypeDefault value
targetLayerstring"layer1"

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1443


aiCommitToLayerMapped

aiCommitToLayerMapped(targetLayer, mapping): void

Merge the AI scratch into a target layer with an explicit per-segmentation mapping, as a single undoable group (sandbox merge — non-destructive + one Ctrl+Z). mapping is { AI scratch label -> target channel(1-8) }; any label absent from the mapping (or mapped to 0) is DISCARDED (not merged). Several AI labels MAY map to the SAME channel — after merge the channel is the identity (CLAUDE.md decision M2), so the merged voxels take that channel's fixed colour.

UNION semantics (M4): an AI voxel only fills a target voxel that is currently EMPTY (0) — existing manual annotation is NEVER erased. Where two AI labels map to different channels and overlap the same voxel, the first one written wins (iteration order), an accepted edge case for a single-value-per-voxel mask. Scans all z-slices, so voxels painted from any view are caught.

Parameters

NameType
targetLayerstring
mappingRecord<number, number>

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1398


aiDiscard

aiDiscard(): void

Discard all AI scratch painting since enter (sandbox discard).

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1371


aiFinishLasso

aiFinishLasso(): void

Close + send the in-progress lasso to the backend (needs ≥3 vertices).

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1357


aiGetScratchSegments

aiGetScratchSegments(): null | { axis: "z" ; height: number ; segments: { label: number ; slices: { rle: number[] ; sliceIndex: number }[] }[] ; width: number }

Per-segmentation serialization (one binary RLE per label per z-slice) for the multi-label / per-colour 3D build.

Returns

null | { axis: "z" ; height: number ; segments: { label: number ; slices: { rle: number[] ; sliceIndex: number }[] }[] ; width: number }

Defined in

src/Utils/segmentation/NrrdTools.ts:1380


aiGetScratchSlices

aiGetScratchSlices(): null | { axis: "z" ; height: number ; slices: { rle: number[] ; sliceIndex: number }[] ; width: number }

Serialize the AI scratch as per-slice RLE for persisting to ai_generated_nii_LPS.

Returns

null | { axis: "z" ; height: number ; slices: { rle: number[] ; sliceIndex: number }[] ; width: number }

Defined in

src/Utils/segmentation/NrrdTools.ts:1375


aiHasData

aiHasData(): boolean

True if the scratch volume holds any predicted voxels.

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1373


aiIsLassoEditing

aiIsLassoEditing(): boolean

True while the user is placing lasso vertices.

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1365


aiLassoRedo

aiLassoRedo(): void

Redo the last undone lasso vertex change.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1361


aiLassoUndo

aiLassoUndo(): void

Undo the last lasso vertex add/delete.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1359


aiLassoVertCount

aiLassoVertCount(): number

Number of placed lasso vertices (drives the Finish button).

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:1367


aiNewSegment

aiNewSegment(label): void

"New segmentation": freeze current regions + switch to a new label.

Parameters

NameType
labelnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1342


aiOnLassoChange

aiOnLassoChange(cb): void

Register the callback fired when the lasso vertex set changes (drives the Finish button).

Parameters

NameType
cb(count: number, editing: boolean) => void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1350


aiOnPrompt

aiOnPrompt(cb): void

Register the callback invoked when a prompt gesture completes (app → backend).

Parameters

NameType
cb(payload: AiPromptPayload) => void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1348


aiSetActiveSegment

aiSetActiveSegment(label): void

Select the active Segmentation by its label value (the AI paints into it).

Parameters

NameType
labelnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1336


aiSetPolarity

aiSetPolarity(label): void

Parameters

NameType
labelnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1334


aiSetPromptTool

aiSetPromptTool(tool): void

Parameters

NameType
toolAiPromptTool

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1333


aiSetScribbleSize

aiSetScribbleSize(size): void

Set the scribble brush radius (px).

Parameters

NameType
sizenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1346


aiSetSegmentColor

aiSetSegmentColor(label, color): void

Set a Segmentation's colour (its label's colorMap entry; 2D overlay repaints).

Parameters

NameType
labelnumber
colorObject
color.anumber
color.bnumber
color.gnumber
color.rnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1338


appendLoadingbar

appendLoadingbar(loadingbar): void

Parameters

NameType
loadingbarHTMLDivElement

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1049


clearActiveLayer

clearActiveLayer(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1454


clearChannel

clearChannel(layerId, channel): void

Erase one channel's mask on one layer, undoably.

The missing third of the clear family that executeAction exposes: clearActiveSliceMask takes one slice, clearActiveLayerMask takes a whole layer, and neither can take a single label. Deleting one annotation needs exactly that — its mask is one label inside a volume shared with every other annotation on the layer.

Not folded into executeAction: that signature is an action name plus an options bag, and this needs two required arguments.

Deltas go onto the engine's own undo stack, so a mistaken clear is recoverable for as long as the case stays open. That is the whole reason this lives here rather than in the app: writing zeros from outside and forcing a repaint by stepping the slice would bypass the stack, and an accidental clear would be permanent.

Only slices that actually carry the label are touched, so a small annotation in a deep volume costs a scan and a handful of callbacks rather than one per slice.

Parameters

NameTypeDescription
layerIdstringLayer whose mask to edit.
channelnumberLabel to erase, 1-255.

Returns

void

Throws

If layerId names no layer. Deliberately NOT routed through getVolumeForLayer, which warns and falls back to the first layer — for a destructive call that would quietly erase a different layer's annotation.

Throws

If channel is outside [1, 255] (from MaskVolume).

Defined in

src/Utils/segmentation/NrrdTools.ts:624


clearDictionary

Private clearDictionary(dic): void

Parameters

NameType
dicISkipSlicesDictType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1574


commitSeriesLoad

commitSeriesLoad(allSlices, skipEntries, contrastIndex): void

Case-load completion, fully batched: swap in the acquisition-ordered slice array, reconcile skip state, and land on the target contrast -- one resetDisplaySlicesStatus() instead of three (switchAllSlicesArrayData + setSkips + setContrastIndex used to each pay their own full refresh here; see commitSkipsAndContrast above for why only the batched form's single refresh is needed).

Parameters

NameType
allSlicesnrrdSliceType[]
skipEntries{ index: number ; skip: boolean }[]
contrastIndexnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1029


commitSkipsAndContrast

commitSkipsAndContrast(skipEntries, contrastIndex): void

Batched form of setSkips + setContrastIndex for a load that ends by reconciling skip state and landing on a phase in the same turn (see useCaseManagement.handleAllImagesLoaded). Calling them separately is correct but wasteful: each pays resetDisplaySlicesStatus()'s full display/canvas/mask refresh, and with nothing reading the display in between, only the second call's paint was ever visible -- measured at two ~300ms refreshes back-to-back once setSkips had already absorbed the earlier per-phase addSkip/removeSkip loop cost.

contrastIndex is set before the single resetDisplaySlicesStatus() call, not after: the resulting displaySlices length/order depends only on skipSlicesDic, which is already written by the time it runs, so the callbacks inside that one refresh (repraintCurrentContrastSlice etc.) paint the target contrast directly. The clamp below still runs after, against the freshly rebuilt displaySlices, for parity with setContrastIndex's own bounds check.

Parameters

NameType
skipEntries{ index: number ; skip: boolean }[]
contrastIndexnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1005


configMouseSliceWheel

configMouseSliceWheel(): (e: WheelEvent) => void

Returns

fn

▸ (e): void

Parameters
NameType
eWheelEvent
Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1514


copyLayerData

copyLayerData(sourceLayerId, targetLayerId): void

Copy all voxel data from one layer's MaskVolume to another.

After the copy the target layer's display is refreshed so the UI shows the updated data immediately. The target layer's color map is preserved — only the raw voxel buffer is overwritten.

Use case: when editing layer2 cascades to layer3 on the backend, call this to keep the frontend in sync without a network round-trip.

Parameters

NameTypeDescription
sourceLayerIdstringLayer to copy from (e.g. "layer2").
targetLayerIdstringLayer to copy into (e.g. "layer3").

Returns

void

Example

ts
nrrdTools.copyLayerData("layer2", "layer3");
nrrdTools.copyLayerData("layer2", "layer3");

Defined in

src/Utils/segmentation/NrrdTools.ts:1613


drag

drag(opts?): void

Parameters

NameType
opts?IDragOpts

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:716


draw

draw(opts?): void

Core drawing entry point.

Parameters

NameType
opts?any

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:723


drawCalculatorSphereOnEachViews

drawCalculatorSphereOnEachViews(axis): void

Expose drawCalculatorSphereOnEachViews for external use.

Parameters

NameType
axis"x" | "y" | "z"

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1591


enableContrastDragEvents

enableContrastDragEvents(callback): void

Parameters

NameType
callback(step: number, towards: "horizental" | "vertical") => void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:744


enterAiAssistMode

enterAiAssistMode(): void

Enter AI-assist mode (sandbox): hides the existing layer masks so ONLY the AI overlay is shown, takes canvas ownership (left-click = prompt), and creates the scratch volume. Right-drag still pans; wheel/slider still scrub slices. The hidden masks are restored on exit (merge writes into them first if asked).

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1296


enterKeyboardConfig

enterKeyboardConfig(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:680


enterSphereMode

enterSphereMode(): void

Enter sphere mode.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1229


executeAction

executeAction(action, opts?): void

Parameters

NameType
action"undo" | "redo" | "resetZoom" | "downloadCurrentMask" | "clearActiveSliceMask" | "clearActiveLayerMask" | "gaussianSmooth"
opts?Object
opts.sigma?number

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:506


exitAiAssistMode

exitAiAssistMode(): void

Exit AI-assist mode: drop the scratch volume, restore normal tooling AND the layer-mask visibility hidden on enter. If the caller merged first, the merged result is now part of the layer volume and reappears with the restored masks.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1316


exitKeyboardConfig

exitKeyboardConfig(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:684


exitSphereMode

exitSphereMode(): void

Exit sphere mode.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1248


finishWindowAdjustment

finishWindowAdjustment(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:443


flipDisplayImageByAxis

flipDisplayImageByAxis(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1175


getActiveChannel

getActiveChannel(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:1123


getActiveLayer

getActiveLayer(): string

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:1121


getActiveSphereType

getActiveSphereType(): SphereType

Returns

SphereType

Defined in

src/Utils/segmentation/NrrdTools.ts:1125


getBrushSize

getBrushSize(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:421


getChannelColor

getChannelColor(layerId, channel): RGBAColor

Parameters

NameType
layerIdstring
channelnumber

Returns

RGBAColor

Defined in

src/Utils/segmentation/NrrdTools.ts:1136


getChannelCssColor

getChannelCssColor(layerId, channel): string

Parameters

NameType
layerIdstring
channelnumber

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:1138


getChannelHexColor

getChannelHexColor(layerId, channel): string

Parameters

NameType
layerIdstring
channelnumber

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:1137


getChannelVisibility

getChannelVisibility(): Record<string, Record<number, boolean>>

Returns

Record<string, Record<number, boolean>>

Defined in

src/Utils/segmentation/NrrdTools.ts:1132


getContainer

getContainer(): HTMLElement

Returns

HTMLElement

Defined in

src/Utils/segmentation/NrrdTools.ts:1073


getCurrentImageDimension

getCurrentImageDimension(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:1057


getCurrentSliceIndex

getCurrentSliceIndex(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:1103


getCurrentSlicesNumAndContrastNum

getCurrentSlicesNumAndContrastNum(): Object

Returns

Object

NameType
contrastIndexnumber
currentSliceIndexnumber

Defined in

src/Utils/segmentation/NrrdTools.ts:1096


getDrawingCanvas

getDrawingCanvas(): HTMLCanvasElement

Returns

HTMLCanvasElement

Defined in

src/Utils/segmentation/NrrdTools.ts:1077


getIsShowContrastState

getIsShowContrastState(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1109


getKeyboardSettings

getKeyboardSettings(): IKeyBoardSettings

Returns

IKeyBoardSettings

Defined in

src/Utils/segmentation/NrrdTools.ts:708


getLayerOpacity

getLayerOpacity(layerId): number

Parameters

NameType
layerIdstring

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:1145


getLayerOpacityMap

getLayerOpacityMap(): Record<string, number>

Returns

Record<string, number>

Defined in

src/Utils/segmentation/NrrdTools.ts:1146


getLayerVisibility

getLayerVisibility(): Record<string, boolean>

Returns

Record<string, boolean>

Defined in

src/Utils/segmentation/NrrdTools.ts:1131


getMaskData

getMaskData(): IMaskData

Returns

IMaskData

Defined in

src/Utils/segmentation/NrrdTools.ts:1069


getMaskRenderMode

getMaskRenderMode(): MaskRenderMode

Returns

MaskRenderMode

Defined in

src/Utils/segmentation/NrrdTools.ts:1163


getMaxSliceNum

getMaxSliceNum(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:1085


getMode

getMode(): ToolMode

Returns

ToolMode

Defined in

src/Utils/segmentation/NrrdTools.ts:393


getNrrdToolsSettings

getNrrdToolsSettings(): NrrdState

Returns

NrrdState

Defined in

src/Utils/segmentation/NrrdTools.ts:1081


getOpacity

getOpacity(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:411


getPencilColor

getPencilColor(): string

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:502


getSliderMeta

getSliderMeta(key): null | IGuiMeta

Parameters

NameType
keystring

Returns

null | IGuiMeta

Defined in

src/Utils/segmentation/NrrdTools.ts:464


getSpaceOrigin

getSpaceOrigin(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:1065


getSphereBrushRadius

getSphereBrushRadius(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:429


getVoxelSpacing

getVoxelSpacing(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:1061


hasLayerData

hasLayerData(layerId): boolean

Parameters

NameType
layerIdstring

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1133


init

Private init(): void

A initialise function for nrrd_tools

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:181


initNrrdToolsModules

Private initNrrdToolsModules(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:191


isAiAssistActive

isAiAssistActive(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1270


isAnnotationSuspended

isAnnotationSuspended(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1286


isCalculatorActive

isCalculatorActive(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:403


isChannelVisible

isChannelVisible(layerId, channel): boolean

Parameters

NameType
layerIdstring
channelnumber

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1130


isContrastShortcutEnabled

isContrastShortcutEnabled(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:692


isLayerVisible

isLayerVisible(layerId): boolean

Parameters

NameType
layerIdstring

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1128


redo

redo(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:676


redrawDisplayCanvas

redrawDisplayCanvas(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1177


redrawMianPreOnDisplayCanvas

redrawMianPreOnDisplayCanvas(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1173


refreshSphereOverlay

Private refreshSphereOverlay(): void

Refresh sphere canvas from sphereMaskVolume for the current slice/axis.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1222


reloadMasksFromVolume

Private reloadMasksFromVolume(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1178


removeSkip

removeSkip(index): void

Parameters

NameType
indexnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:902


replaceLayerVolume

replaceLayerVolume(layerId, data, opts?): void

Replace a layer's entire voxel buffer.

This call itself does NOT fire onLayerVolumeReplaced - callers (e.g. the mask upload flow) must persist the new volume themselves. The callback fires only later, if the clinician undoes or redoes this replacement, because at that point the backend still holds the newer volume and needs to be told to fall back to the old one.

Parameters

NameTypeDescription
layerIdstringLayer to overwrite.
dataUint8ArrayVoxels, exactly the layer volume's length.
optsObjectundoable: true records one Ctrl+Z step for the whole volume.
opts.undoable?boolean-

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1653


reset

reset(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1468


resetChannelColors

resetChannelColors(layerId?, channel?): void

Parameters

NameType
layerId?string
channel?number

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1141


resetLayerCanvas

resetLayerCanvas(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1172


resetPaintAreaUIPosition

resetPaintAreaUIPosition(l?, t?): void

Parameters

NameType
l?number
t?number

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1171


resizePaintArea

resizePaintArea(factor): void

Parameters

NameType
factornumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1174


setActiveChannel

setActiveChannel(channel): void

Parameters

NameType
channelnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1122


setActiveLayer

setActiveLayer(layerId): void

Parameters

NameType
layerIdstring

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1117


setActiveSphereType

setActiveSphereType(type): void

Parameters

NameType
typeSphereType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1124


setAllLayersChannelColor

setAllLayersChannelColor(channel, color): void

Parameters

NameType
channelnumber
colorRGBAColor

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1140


setAllSlices

setAllSlices(allSlices): void

Parameters

NameType
allSlicesnrrdSliceType[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1184


setAnnotationSuspended

setAnnotationSuspended(suspended): void

Suspend or resume annotation input.

While suspended the reader may still scrub slices, zoom, pan and place the crosshair, but no input can write into a mask. This is the enforcement behind "during loading you may preview, not annotate": greying the Operation panel's buttons does not achieve it, because a tool selected before the load began stays armed on the canvas -- and a stroke made then cannot even be undone, since afterLoadSlice clears the undo stack each time a slice arrives.

Parameters

NameType
suspendedboolean

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1282


setBaseDrawDisplayCanvasesSize

setBaseDrawDisplayCanvasesSize(size): void

Set the Draw Display Canvas base size

Parameters

NameType
sizenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:730


setBrushSize

setBrushSize(size): void

Parameters

NameType
sizenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:415


setCalculateDistanceSphere

setCalculateDistanceSphere(x, y, sliceIndex, cal_position): void

Parameters

NameType
xnumber
ynumber
sliceIndexnumber
cal_position"tumour" | "skin" | "nipple" | "ribcage"

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1192


setChannelColor

setChannelColor(layerId, channel, color): void

Parameters

NameType
layerIdstring
channelnumber
colorRGBAColor

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1135


setChannelColors

setChannelColors(layerId, colorMap): void

Parameters

NameType
layerIdstring
colorMapPartial<ChannelColorMap>

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1139


setChannelVisible

setChannelVisible(layerId, channel, visible): void

Parameters

NameType
layerIdstring
channelnumber
visibleboolean

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1129


setContrastIndex

setContrastIndex(index): void

Move to a specific contrast without moving the slice.

index addresses displaySlices — the SELECTED subset — not the full contrast list. With three of five phases selected, valid values are 0..2. Callers that think in phase names must convert first.

Parameters

NameType
indexnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:945


setContrastShortcutEnabled

setContrastShortcutEnabled(enabled): void

Parameters

NameType
enabledboolean

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:688


setDisplaySliceIndexPanel

setDisplaySliceIndexPanel(panel): void

Parameters

NameType
panelHTMLDivElement

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:740


setEmptyCanvasSize

setEmptyCanvasSize(axis?): void

Parameters

NameType
axis?"x" | "y" | "z"

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1176


setIsDrawFalse

setIsDrawFalse(target): void

Parameters

NameType
targetnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1560


setKeyboardSettings

setKeyboardSettings(settings): void

Parameters

NameType
settingsPartial<IKeyBoardSettings>

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:696


setLayerOpacity

setLayerOpacity(layerId, opacity): void

Parameters

NameType
layerIdstring
opacitynumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1144


setLayerVisible

setLayerVisible(layerId, visible): void

Parameters

NameType
layerIdstring
visibleboolean

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1127


setMainAreaSize

setMainAreaSize(factor): void

Parameters

NameType
factornumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:971


setMaskRenderMode

setMaskRenderMode(mode): void

Fill every mask, or stroke only its boundary — for every layer and channel at once.

A display decision, and nothing but: MaskVolume is not read differently and not written at all, so what is stored, uploaded, exported and undone is the complete mask either way.

Repaints immediately, the same way setChannelVisible does, because there is no other event that would bring the change to the screen — a clinician who switched the mode and then had to scrub a slice to see it would reasonably call that broken.

Parameters

NameType
modeMaskRenderMode

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1158


setMasksData

setMasksData(masksData, loadingBar?): void

Parameters

NameType
masksDatastoreExportPaintImageType
loadingBar?loadingBarType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1185


setMasksFromNIfTI

setMasksFromNIfTI(layerVoxels, loadingBar?): void

Parameters

NameType
layerVoxelsMap<string, Uint8Array>
loadingBar?loadingBarType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1186


setMode

setMode(mode): void

Set the current tool mode.

Parameters

NameType
modeToolMode

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:314


setOpacity

setOpacity(value): void

Parameters

NameType
valuenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:407


setPencilColor

setPencilColor(hex): void

Parameters

NameType
hexstring

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:498


setPencilIconUrls

setPencilIconUrls(urls): void

Parameters

NameType
urlsstring[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:748


setShowInMainArea

Private setShowInMainArea(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1570


setSkips

setSkips(entries): void

Batched form of addSkip/removeSkip for reconciling many positions at once (e.g. a case load's initial phase selection, see useCaseManagement.reconcileSkips) without paying resetDisplaySlicesStatus()'s full display/canvas/mask refresh once per position.

Calling addSkip/removeSkip in a loop is correct but wasteful here: every entry but the last is immediately superseded (this always runs synchronously, with nothing reading the display in between, and the caller's own follow-up -- landOn's setContrastIndex -- overwrites contrastNum again right after). Measured at over 1 second of main-thread time for a 5-phase series once per-volume extraction stopped dominating the case-load block (narrower axes, see copperNrrdLoader) -- this was always there, just smaller than the cost it used to sit next to.

Parameters

NameType
entries{ index: number ; skip: boolean }[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:921


setSliceMoving

setSliceMoving(step): void

Parameters

NameType
stepnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:952


setSliceOrientation

setSliceOrientation(axisTo): void

Switch all contrast slices' orientation

Parameters

NameType
axisTo"x" | "y" | "z"

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:755


setSphereBrushRadius

setSphereBrushRadius(radius): void

Parameters

NameType
radiusnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:425


setSyncsliceNum

setSyncsliceNum(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1170


setWindowHigh

setWindowHigh(value): void

Parameters

NameType
valuenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:433


setWindowLow

setWindowLow(value): void

Parameters

NameType
valuenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:438


setupGUI

setupGUI(gui): void

Set up GUI for drawing panel

Parameters

NameTypeDescription
guiGUIGUI

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:238


switchAllSlicesArrayData

switchAllSlicesArrayData(allSlices): void

Parameters

NameType
allSlicesnrrdSliceType[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:983


switchSlicesPreservingView

switchSlicesPreservingView(allSlices): void

Swap slice data while preserving current slice index, zoom, and pan position. Used for register/origin image switching where the view state should persist.

Parameters

NameType
allSlicesnrrdSliceType[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1043


syncGuiParameterSettings

Private syncGuiParameterSettings(): void

Sync guiParameterSettings with current volume metadata.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:299


undo

undo(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:672


updateMouseWheelEvent

updateMouseWheelEvent(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1534


updateOriginAndChangedWH

updateOriginAndChangedWH(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1169


wireDrawCoreMethods

Private wireDrawCoreMethods(): void

Wire DrawToolCore's overridable methods to NrrdTools implementations. This replaces the old inheritance approach.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:161