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:112

Properties

_aiAssistActive

Private _aiAssistActive: boolean = false

Whether AI-assist mode is currently active.

Defined in

src/Utils/segmentation/NrrdTools.ts:1177


_aiPrevVisibility

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

Layer visibility snapshot taken on enter, restored on exit.

Defined in

src/Utils/segmentation/NrrdTools.ts:1179


_calculatorActive

Private _calculatorActive: boolean = false

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

Defined in

src/Utils/segmentation/NrrdTools.ts:72


_pendingSliceStep

Private _pendingSliceStep: number = 0

Defined in

src/Utils/segmentation/NrrdTools.ts:69


_sliceRAFId

Private _sliceRAFId: null | number = null

Defined in

src/Utils/segmentation/NrrdTools.ts:68


container

container: HTMLDivElement

Defined in

src/Utils/segmentation/NrrdTools.ts:57


dataLoader

Private dataLoader: DataLoader

Data loading (extracted module)

Defined in

src/Utils/segmentation/NrrdTools.ts:81


dragOperator

dragOperator: DragOperator

Drag operator for slice navigation.

Defined in

src/Utils/segmentation/NrrdTools.ts:64


drawCore

Private drawCore: DrawToolCore

Core drawing tool orchestrator.

Defined in

src/Utils/segmentation/NrrdTools.ts:62


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:98


guiParameterSettings

Private guiParameterSettings: undefined | IGuiParameterSettings

Defined in

src/Utils/segmentation/NrrdTools.ts:67


layerChannelManager

Private layerChannelManager: LayerChannelManager

Layer/channel management (extracted module)

Defined in

src/Utils/segmentation/NrrdTools.ts:75


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:88


preTimer

Private preTimer: any

Defined in

src/Utils/segmentation/NrrdTools.ts:66


sliceRenderPipeline

Private sliceRenderPipeline: SliceRenderPipeline

Slice rendering pipeline (extracted module)

Defined in

src/Utils/segmentation/NrrdTools.ts:78


state

Private state: CanvasState

Shared state container.

Defined in

src/Utils/segmentation/NrrdTools.ts:60

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:1495

Methods

addSkip

addSkip(index): void

Parameters

NameType
indexnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:818


adjustContrast

adjustContrast(type, delta): void

Parameters

NameType
type"windowLow" | "windowHigh"
deltanumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:446


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:1263


aiCancelLasso

aiCancelLasso(): void

Abandon the in-progress lasso (Esc).

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1274


aiClearPrompts

aiClearPrompts(): void

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1265


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:1255


aiCommitRegion

aiCommitRegion(): void

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1280


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:1354


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:1309


aiDiscard

aiDiscard(): void

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1282


aiFinishLasso

aiFinishLasso(): void

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1268


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:1291


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:1286


aiHasData

aiHasData(): boolean

True if the scratch volume holds any predicted voxels.

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1284


aiIsLassoEditing

aiIsLassoEditing(): boolean

True while the user is placing lasso vertices.

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1276


aiLassoRedo

aiLassoRedo(): void

Redo the last undone lasso vertex change.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1272


aiLassoUndo

aiLassoUndo(): void

Undo the last lasso vertex add/delete.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1270


aiLassoVertCount

aiLassoVertCount(): number

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

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:1278


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:1253


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:1261


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:1259


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:1247


aiSetPolarity

aiSetPolarity(label): void

Parameters

NameType
labelnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1245


aiSetPromptTool

aiSetPromptTool(tool): void

Parameters

NameType
toolAiPromptTool

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1244


aiSetScribbleSize

aiSetScribbleSize(size): void

Set the scribble brush radius (px).

Parameters

NameType
sizenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1257


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:1249


appendLoadingbar

appendLoadingbar(loadingbar): void

Parameters

NameType
loadingbarHTMLDivElement

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:977


clearActiveLayer

clearActiveLayer(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1365


clearDictionary

Private clearDictionary(dic): void

Parameters

NameType
dicISkipSlicesDictType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1485


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:957


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:933


configMouseSliceWheel

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

Returns

fn

▸ (e): void

Parameters
NameType
eWheelEvent
Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1425


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:1524


drag

drag(opts?): void

Parameters

NameType
opts?IDragOpts

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:644


draw

draw(opts?): void

Core drawing entry point.

Parameters

NameType
opts?any

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:651


drawCalculatorSphereOnEachViews

drawCalculatorSphereOnEachViews(axis): void

Expose drawCalculatorSphereOnEachViews for external use.

Parameters

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1502


enableContrastDragEvents

enableContrastDragEvents(callback): void

Parameters

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:672


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:1207


enterKeyboardConfig

enterKeyboardConfig(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:608


enterSphereMode

enterSphereMode(): void

Enter sphere mode.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1140


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:505


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:1227


exitKeyboardConfig

exitKeyboardConfig(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:612


exitSphereMode

exitSphereMode(): void

Exit sphere mode.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1159


finishWindowAdjustment

finishWindowAdjustment(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:442


flipDisplayImageByAxis

flipDisplayImageByAxis(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1086


getActiveChannel

getActiveChannel(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:1051


getActiveLayer

getActiveLayer(): string

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:1049


getActiveSphereType

getActiveSphereType(): SphereType

Returns

SphereType

Defined in

src/Utils/segmentation/NrrdTools.ts:1053


getBrushSize

getBrushSize(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:420


getChannelColor

getChannelColor(layerId, channel): RGBAColor

Parameters

NameType
layerIdstring
channelnumber

Returns

RGBAColor

Defined in

src/Utils/segmentation/NrrdTools.ts:1064


getChannelCssColor

getChannelCssColor(layerId, channel): string

Parameters

NameType
layerIdstring
channelnumber

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:1066


getChannelHexColor

getChannelHexColor(layerId, channel): string

Parameters

NameType
layerIdstring
channelnumber

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:1065


getChannelVisibility

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

Returns

Record<string, Record<number, boolean>>

Defined in

src/Utils/segmentation/NrrdTools.ts:1060


getContainer

getContainer(): HTMLElement

Returns

HTMLElement

Defined in

src/Utils/segmentation/NrrdTools.ts:1001


getCurrentImageDimension

getCurrentImageDimension(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:985


getCurrentSliceIndex

getCurrentSliceIndex(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:1031


getCurrentSlicesNumAndContrastNum

getCurrentSlicesNumAndContrastNum(): Object

Returns

Object

NameType
contrastIndexnumber
currentSliceIndexnumber

Defined in

src/Utils/segmentation/NrrdTools.ts:1024


getDrawingCanvas

getDrawingCanvas(): HTMLCanvasElement

Returns

HTMLCanvasElement

Defined in

src/Utils/segmentation/NrrdTools.ts:1005


getIsShowContrastState

getIsShowContrastState(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1037


getKeyboardSettings

getKeyboardSettings(): IKeyBoardSettings

Returns

IKeyBoardSettings

Defined in

src/Utils/segmentation/NrrdTools.ts:636


getLayerOpacity

getLayerOpacity(layerId): number

Parameters

NameType
layerIdstring

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:1073


getLayerOpacityMap

getLayerOpacityMap(): Record<string, number>

Returns

Record<string, number>

Defined in

src/Utils/segmentation/NrrdTools.ts:1074


getLayerVisibility

getLayerVisibility(): Record<string, boolean>

Returns

Record<string, boolean>

Defined in

src/Utils/segmentation/NrrdTools.ts:1059


getMaskData

getMaskData(): IMaskData

Returns

IMaskData

Defined in

src/Utils/segmentation/NrrdTools.ts:997


getMaxSliceNum

getMaxSliceNum(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:1013


getMode

getMode(): ToolMode

Returns

ToolMode

Defined in

src/Utils/segmentation/NrrdTools.ts:392


getNrrdToolsSettings

getNrrdToolsSettings(): NrrdState

Returns

NrrdState

Defined in

src/Utils/segmentation/NrrdTools.ts:1009


getOpacity

getOpacity(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:410


getPencilColor

getPencilColor(): string

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:501


getSliderMeta

getSliderMeta(key): null | IGuiMeta

Parameters

NameType
keystring

Returns

null | IGuiMeta

Defined in

src/Utils/segmentation/NrrdTools.ts:463


getSpaceOrigin

getSpaceOrigin(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:993


getSphereBrushRadius

getSphereBrushRadius(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:428


getVoxelSpacing

getVoxelSpacing(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:989


hasLayerData

hasLayerData(layerId): boolean

Parameters

NameType
layerIdstring

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1061


init

Private init(): void

A initialise function for nrrd_tools

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:180


initNrrdToolsModules

Private initNrrdToolsModules(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:190


isAiAssistActive

isAiAssistActive(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1181


isAnnotationSuspended

isAnnotationSuspended(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1197


isCalculatorActive

isCalculatorActive(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:402


isChannelVisible

isChannelVisible(layerId, channel): boolean

Parameters

NameType
layerIdstring
channelChannelValue

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1058


isContrastShortcutEnabled

isContrastShortcutEnabled(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:620


isLayerVisible

isLayerVisible(layerId): boolean

Parameters

NameType
layerIdstring

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:1056


redo

redo(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:604


redrawDisplayCanvas

redrawDisplayCanvas(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1088


redrawMianPreOnDisplayCanvas

redrawMianPreOnDisplayCanvas(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1084


refreshSphereOverlay

Private refreshSphereOverlay(): void

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1133


reloadMasksFromVolume

Private reloadMasksFromVolume(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1089


removeSkip

removeSkip(index): void

Parameters

NameType
indexnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:830


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:1564


reset

reset(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1379


resetChannelColors

resetChannelColors(layerId?, channel?): void

Parameters

NameType
layerId?string
channel?number

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1069


resetLayerCanvas

resetLayerCanvas(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1083


resetPaintAreaUIPosition

resetPaintAreaUIPosition(l?, t?): void

Parameters

NameType
l?number
t?number

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1082


resizePaintArea

resizePaintArea(factor): void

Parameters

NameType
factornumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1085


setActiveChannel

setActiveChannel(channel): void

Parameters

NameType
channelChannelValue

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1050


setActiveLayer

setActiveLayer(layerId): void

Parameters

NameType
layerIdstring

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1045


setActiveSphereType

setActiveSphereType(type): void

Parameters

NameType
typeSphereType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1052


setAllLayersChannelColor

setAllLayersChannelColor(channel, color): void

Parameters

NameType
channelnumber
colorRGBAColor

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1068


setAllSlices

setAllSlices(allSlices): void

Parameters

NameType
allSlicesnrrdSliceType[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1095


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:1193


setBaseDrawDisplayCanvasesSize

setBaseDrawDisplayCanvasesSize(size): void

Set the Draw Display Canvas base size

Parameters

NameType
sizenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:658


setBrushSize

setBrushSize(size): void

Parameters

NameType
sizenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:414


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:1103


setChannelColor

setChannelColor(layerId, channel, color): void

Parameters

NameType
layerIdstring
channelnumber
colorRGBAColor

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1063


setChannelColors

setChannelColors(layerId, colorMap): void

Parameters

NameType
layerIdstring
colorMapPartial<ChannelColorMap>

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1067


setChannelVisible

setChannelVisible(layerId, channel, visible): void

Parameters

NameType
layerIdstring
channelChannelValue
visibleboolean

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1057


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:873


setContrastShortcutEnabled

setContrastShortcutEnabled(enabled): void

Parameters

NameType
enabledboolean

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:616


setDisplaySliceIndexPanel

setDisplaySliceIndexPanel(panel): void

Parameters

NameType
panelHTMLDivElement

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:668


setEmptyCanvasSize

setEmptyCanvasSize(axis?): void

Parameters

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1087


setIsDrawFalse

setIsDrawFalse(target): void

Parameters

NameType
targetnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1471


setKeyboardSettings

setKeyboardSettings(settings): void

Parameters

NameType
settingsPartial<IKeyBoardSettings>

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:624


setLayerOpacity

setLayerOpacity(layerId, opacity): void

Parameters

NameType
layerIdstring
opacitynumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1072


setLayerVisible

setLayerVisible(layerId, visible): void

Parameters

NameType
layerIdstring
visibleboolean

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1055


setMainAreaSize

setMainAreaSize(factor): void

Parameters

NameType
factornumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:899


setMasksData

setMasksData(masksData, loadingBar?): void

Parameters

NameType
masksDatastoreExportPaintImageType
loadingBar?loadingBarType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1096


setMasksFromNIfTI

setMasksFromNIfTI(layerVoxels, loadingBar?): void

Parameters

NameType
layerVoxelsMap<string, Uint8Array>
loadingBar?loadingBarType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1097


setMode

setMode(mode): void

Set the current tool mode.

Parameters

NameType
modeToolMode

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:313


setOpacity

setOpacity(value): void

Parameters

NameType
valuenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:406


setPencilColor

setPencilColor(hex): void

Parameters

NameType
hexstring

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:497


setPencilIconUrls

setPencilIconUrls(urls): void

Parameters

NameType
urlsstring[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:676


setShowInMainArea

Private setShowInMainArea(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1481


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:849


setSliceMoving

setSliceMoving(step): void

Parameters

NameType
stepnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:880


setSliceOrientation

setSliceOrientation(axisTo): void

Switch all contrast slices' orientation

Parameters

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:683


setSphereBrushRadius

setSphereBrushRadius(radius): void

Parameters

NameType
radiusnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:424


setSyncsliceNum

setSyncsliceNum(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1081


setWindowHigh

setWindowHigh(value): void

Parameters

NameType
valuenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:432


setWindowLow

setWindowLow(value): void

Parameters

NameType
valuenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:437


setupGUI

setupGUI(gui): void

Set up GUI for drawing panel

Parameters

NameTypeDescription
guiGUIGUI

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:237


switchAllSlicesArrayData

switchAllSlicesArrayData(allSlices): void

Parameters

NameType
allSlicesnrrdSliceType[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:911


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:971


syncGuiParameterSettings

Private syncGuiParameterSettings(): void

Sync guiParameterSettings with current volume metadata.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:298


undo

undo(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:600


updateMouseWheelEvent

updateMouseWheelEvent(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1445


updateOriginAndChangedWH

updateOriginAndChangedWH(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1080


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:160