utilities
Index
References
Namespaces
Classes
Variables
Functions
- actorIsA
- applyPreset
- calculateViewportsSpatialRegistration
- clamp
- convertStackToVolumeViewport
- convertToGrayscale
- convertVolumeToStackViewport
- createFloat32SharedArray
- createInt16SharedArray
- createLinearRGBTransferFunction
- createSigmoidRGBTransferFunction
- createUint16SharedArray
- createUint8SharedArray
- decimate
- deepMerge
- generateVolumePropsFromImageIds
- getBufferConfiguration
- getClosestImageId
- getClosestStackImageIndexForPoint
- getCurrentVolumeViewportSlice
- getImageLegacy
- getImageSliceDataForVolumeViewport
- getMinMax
- getRandomSampleFromArray
- getRuntimeId
- getScalarDataType
- getScalingParameters
- getSliceRange
- getSpacingInNormalDirection
- getTargetVolumeAndSpacingInNormalDir
- getViewportImageCornersInWorld
- getViewportImageIds
- getViewportModality
- getViewportsWithImageURI
- getViewportsWithVolumeId
- getVoiFromSigmoidRGBTransferFunction
- getVolumeActorCorners
- getVolumeId
- getVolumeSliceRangeInfo
- getVolumeViewportScrollInfo
- getVolumeViewportsContainingSameVolumes
- hasFloatScalingParameters
- hasNaNValues
- imageIdToURI
- imageToWorldCoords
- indexWithinDimensions
- invertRgbTransferFunction
- isEqual
- isEqualAbs
- isEqualNegative
- isImageActor
- isOpposite
- isPTPrescaledWithSUV
- isValidVolume
- isVideoTransferSyntax
- loadImageToCanvas
- makeVolumeMetadata
- renderToCanvasCPU
- renderToCanvasGPU
- roundNumber
- roundToPrecision
- scaleRgbTransferFunction
- snapFocalPointToSlice
- sortImageIdsAndGetSpacing
- transformIndexToWorld
- transformWorldToIndex
- updateVTKImageDataWithCornerstoneImage
- uuidv4
- worldToImageCoords
References
PointsManager
triggerEvent
Namespaces
cacheUtils
performCacheOptimizationForVolume
Parameters
volume: any
Returns void
setupCacheOptimizationEventListener
This function will check if the cache optimization is enabled and if it is it will check if the created volume was derived from an already cached stack of images, if so it will go back to the image cache and create a view at the correct offset of the bigger volume array buffer, this will save memory.
Parameters
volumeId: any
The volumeId that will be checked for cache optimization
Returns void
color
hexToRgb
Converts a hexadecimal color code to an RGB object.
Parameters
hex: any
The hexadecimal color code to convert.
Returns { b: number; g: number; r: number }
An object representing the RGB values of the color, or null if the input is invalid.
b: number
g: number
r: number
rgbToHex
Converts RGB color values to a hexadecimal color string.
Parameters
r: any
The red component value (0-255).
g: any
The green component value (0-255).
b: any
The blue component value (0-255).
Returns string
The hexadecimal color string representation.
colormap
findMatchingColormap
Finds a colormap that matches the given RGB points.
Parameters
rgbPoints: any
The RGB points to match against the colormaps.
actor: any
Returns ColormapPublic | null
The matched colormap object or null if no match is found.
getColormap
Get a colormap by name
Parameters
name: any
name of the colormap
Returns any
colormap object
getColormapNames
Get all registered colormap names
Returns any[]
array of colormap names
registerColormap
Register a colormap
Parameters
colormap: ColormapRegistration
colormap object
Returns void
eventListener
MultiTargetEventListenerManager
MultiTargetEventListenerManager allows you to add event listeners to multiple HTML elements (targets) with support for event types with namespace, allow removing events without having to pass a callback and makes it possible to remove all event lsiteners from all HTML elements in a much simpler avoiding leaving listeners behind which would result in memory leaks.
constructor
Returns MultiTargetEventListenerManager
publicaddEventListener
Parameters
target: EventTarget
type: string
callback: EventListener
optionaloptions: AddEventListenerOptions
Returns void
publicremoveEventListener
Parameters
target: EventTarget
type: string
optionalcallback: EventListener
optionaloptions: EventListenerOptions
Returns void
publicreset
Returns void
TargetEventListeners
TargetEventListeners adds support for event types with namespace, allow removing events without having to pass a callback and makes it possible to remove all event listeners in a much simpler way avoiding leaving listeners behind which would result in memory leaks.
constructor
Parameters
target: EventTarget
Returns TargetEventListeners
publicisEmpty
Returns boolean
publicaddEventListener
Parameters
type: string
callback: EventListener
optionaloptions: AddEventListenerOptions
Returns void
publicremoveEventListener
Remove an event listener with support for namespaces and optional callback which makes it remove all listeners of a given type
Parameters
type: string
Event type
optionalcallback: EventListener
Event listener
optionaloptions: EventListenerOptions
Event options
Returns void
publicreset
Loop through all types, listeners and phases and removing all of them
Returns void
planar
linePlaneIntersection
planeDistanceToPoint
planeEquation
threePlaneIntersection
transferFunctionUtils
getTransferFunctionNodes
Parameters
transferFunction: any
Returns any[]
setTransferFunctionNodes
Parameters
transferFunction: any
nodes: any
Returns void
windowLevel
toLowHighRange
Given a window width and center, return the lower and upper bounds of the window The formulas for the calculation are specified in https://dicom.nema.org/medical/dicom/current/output/html/part03.html#sect_C.11.2.1.2.1 if (x <= c - 0.5 - (w-1) /2), then y = ymin else if (x > c - 0.5 + (w-1) /2), then y = ymax else y = ((x - (c - 0.5)) / (w-1) + 0.5) * (ymax- ymin) + ymin
Parameters
windowWidth: number
the width of the window in HU
windowCenter: number
The center of the window.
Returns { lower: number; upper: number }
a JavaScript object with two properties: lower and upper.
lower: number
upper: number
toWindowLevel
Given a low and high window level, return the window width and window center Formulas from note 4 in https://dicom.nema.org/medical/dicom/current/output/html/part03.html#sect_C.11.2.1.2.1 extended to allow for low/high swapping
Parameters
low: number
The low window level.
high: number
The high window level.
Returns { windowCenter: number; windowWidth: number }
a JavaScript object with two properties: windowWidth and windowCenter.
windowCenter: number
windowWidth: number
Classes
ProgressiveIterator
A progressive iterator is an async iterator that can have data delivered to it, with newer ones replacing older iterations which have not yet been consume. That allows iterating over sets of values and delivering updates, but always getting the most recent instance.
Type parameters
- T
constructor
Type parameters
- T
Parameters
optionalname: any
Returns default<T>
publicdone
publicoptionalname
public[asyncIterator]
Async iteration where the delivered values are the most recently available ones, so not necessarily all values are ever seen.
Returns AsyncGenerator<any, void, unknown>
publicadd
Add a most recent result, indicating if the result is the final one
Parameters
x: T
done: boolean = false
Returns void
donePromise
Returns Promise<T>
publicforEach
Runs the forEach method on this filter
Parameters
callback: any
errorCallback: any
Returns Promise<void>
publicgenerate
Calls an async function to generate the results on the iterator
Parameters
processFunction: any
optionalerrorCallback: ErrorCallback
Returns Promise<any>
publicgetDonePromise
Returns PromiseIterator<T>
publicgetNextPromise
Returns PromiseIterator<T>
publicgetRecent
Gets the most recent value, without waiting
Returns T
nextPromise
Returns Promise<T>
publicreject
Reject the fetch. This will prevent further iteration.
Parameters
reason: Error
Returns void
publicresolve
Returns void
publicstaticas
Casts a promise, progressive iterator or promise iterator to a progressive iterator, creating one if needed to resolve it.
Parameters
promise: any
Returns any
RLEVoxelMap
RLE based implementation of a voxel map. This can be used as single or multi-plane, as the underlying indexes are mapped to rows and hte rows are indexed started at 0 and continuing incrementing for all rows in the multi-plane voxel.
Type parameters
- T
constructor
Type parameters
- T
Parameters
width: number
height: number
depth: number = 1
Returns default<T>
publicdefaultValue
The default value returned for get. This allows treting the voxel map more like scalar data, returning the right default value for unset values. Set to 0 by default, but any maps where 0 not in T should update this value.
publicpixelDataConstructor
The constructor for creating pixel data.
publicclear
Clears all entries.
Returns void
publicget
Gets the value encoded in the map at the given index, which is an integer
[i,j,k]
voxel index, equal toindex=i+(j+k*height)*width
value (eg a standard ScalarData index for stack/volume single component indices.)Returns defaultValue if the RLE value is not found.
Parameters
index: number
Returns T
publicgetPixelData
Gets the pixel data into the provided pixel data array, or creates one according to the assigned type.
Parameters
k: number = 0
optionalpixelData: PixelDataTypedArray
Returns PixelDataTypedArray
publicgetRun
Gets the run for the given j,k indices. This is used to allow fast access to runs for data for things like rendering entire rows of data.
Parameters
j: number
k: number
Returns RLERun<T>[]
publickeys
Gets the set of key entries - that is j values. This may include
j>=height
, wherej = key % height
, andk = Math.floor(j / height)
Returns number[]
publicset
Adds to the RLE at the given position. This is unfortunately fairly complex since it is desirable to minimize the number of runs, but to still allow it to be efficient.
Parameters
index: number
value: T
Returns void
VoxelManager
This is a simple, standard interface to values associated with a voxel.
Type parameters
- T
constructor
Creates a generic voxel value accessor, with access to the values provided by the _get and optionally _set values.
Type parameters
- T
Parameters
dimensions: any
for the voxel volume
_get: (index: number) => T
called to get a value by index
optional_set: (index: number, v: T) => boolean | void
called when setting a value
Returns default<T>
_get
Type declaration
Parameters
index: number
Returns T
_set
Type declaration
Parameters
index: number
v: T
Returns boolean | void
publicboundsIJK
publicreadonlydimensions
frameSize
publicgetPixelData
Type declaration
Gets the pixel data for the given array.
Parameters
optionalsliceIndex: number
optionalpixelData: PixelDataTypedArray
Returns PixelDataTypedArray
publicisInObject
Type declaration
Parameters
pointIPS: any
pointIJK: any
Returns boolean
publicmap
publicmodifiedSlices
publicnumComps
points
publicscalarData
publicsourceVoxelManager
width
publicaddPoint
Adds a point as an array or an index value to the set of points associated with this voxel value. Can be used for tracking clicked points or other modified values.
Parameters
point: number | Point3
Returns void
publicclear
Clears any map specific data, as wellas the modified slices, points and bounds.
Returns void
publicforEach
Iterate over the points within the bounds, or the modified points if recorded.
Parameters
callback: any
optionaloptions: any
Returns void
publicgetArrayOfSlices
Returns number[]
The array of modified k indices
publicgetAtIJK
Gets the voxel value at position i,j,k.
Parameters
i: any
j: any
k: any
Returns T
publicgetAtIJKPoint
Gets the voxel value at the given Point3 location.
Parameters
__namedParameters: [any, any, any]
Returns T
publicgetAtIndex
Gets the value at the given index.
Parameters
index: any
Returns T
publicgetBoundsIJK
Gets the bounds for the modified set of values.
Returns BoundsIJK
publicgetPointIndices
Gets the points added using addPoint as an array of indices.
Returns number[]
publicgetPoints
Gets the list of added points as an array of Point3 values
Returns Point3[]
publicsetAtIJK
Sets the voxel value at position i,j,k and records the slice that was modified.
Parameters
i: number
j: number
k: number
v: any
Returns void
publicsetAtIJKPoint
Sets the voxel value at the given point3 location to the specified value. Records the z index modified. Will record the index value if the VoxelManager is backed by a map.
Parameters
__namedParameters: Point3
v: any
Returns void
publicsetAtIndex
Sets the value at the given index
Parameters
index: any
v: any
Returns void
publictoIJK
Converts an index value to a Point3 IJK value
Parameters
index: number
Returns Point3
publictoIndex
Converts an IJK Point3 value to an index value
Parameters
ijk: Point3
Returns number
publicstaticaddBounds
publicstaticaddInstanceToImage
This method adds a voxelManager instance to the image object where the object added is of type:
- RLE map if the scalar data is missing or too small (dummy data)
- Volume VoxelManager scalar data representations
Parameters
image: IImage
Returns void
publicstaticcreateHistoryVoxelManager
publicstaticcreateLazyVoxelManager
publicstaticcreateMapVoxelManager
publicstaticcreateNumberVolumeVoxelManager
publicstaticcreateRGBVolumeVoxelManager
Creates a voxel manager backed by an array of scalar data having the given number of components. Note that the number of components can be larger than three, in case data is stored in additional pixels. However, the return type is still RGB.
Parameters
dimensions: Point3
scalarData: any
numComponents: any
Returns default<RGB>
publicstaticcreateRLEVoxelManager
publicstaticcreateVolumeVoxelManager
Variables
constcalibratedPixelSpacingMetadataProvider
Simple metadataProvider object to store metadata for calibrated spacings. This can be added via cornerstone.metaData.addProvider(…) in order to store and return calibrated pixel spacings when metaData type is “calibratedPixelSpacing”.
Type declaration
add: (imageId: string, payload: IImageCalibration) => void
Adds metadata for an imageId.
Parameters
imageId: string
the imageId for the metadata to store
payload: IImageCalibration
the payload composed of new calibrated pixel spacings
Returns void
get: (type: string, imageId: string) => IImageCalibration
Returns the metadata for an imageId if it exists.
Parameters
type: string
the type of metadata to enquire about
imageId: string
the imageId to enquire about
Returns IImageCalibration
the calibrated pixel spacings for the imageId if it exists, otherwise undefined
constgenericMetadataProvider
Simple metadata provider that stores some sort of meta data for each imageId.
Type declaration
add: (imageId: string, payload: any) => void
Adds metadata for an imageId.
Parameters
imageId: string
the imageId for the metadata to store
payload: any
the payload
Returns void
clear: () => void
Clears all metadata.
Returns void
get: (type: string, imageId: string) => any
Returns the metadata for an imageId if it exists.
Parameters
type: string
the type of metadata to enquire about
imageId: string
the imageId to enquire about
Returns any
constimageRetrieveMetadataProvider
Simple metadataProvider object to store metadata for the image retrieval.
Type declaration
IMAGE_RETRIEVE_CONFIGURATION: string
add: (key: string, payload: any) => void
Parameters
key: string
payload: any
Returns void
clear: () => void
Empty the metadata state
Returns void
get: (type: string, ...queries: string[]) => any
Parameters
type: string
rest...queries: string[]
Returns any
constspatialRegistrationMetadataProvider
Simple metadataProvider object to store metadata for spatial registration module.
Type declaration
add: (query: string[], payload: mat4) => void
Parameters
query: string[]
payload: mat4
Returns void
get: (type: string, viewportId1: string, viewportId2: string) => mat4
Parameters
type: string
viewportId1: string
viewportId2: string
Returns mat4
Functions
actorIsA
Parameters
actorEntry: ActorEntry | vtkActor
actorType: actorTypes
Returns boolean
applyPreset
Applies a preset to a volume actor.
Parameters
actor: vtkVolume
The volume actor to apply the preset to.
preset: ViewportPreset
The preset to apply.
Returns void
calculateViewportsSpatialRegistration
It calculates the registration matrix between two viewports (currently only translation is supported) If the viewports are in the same frame of reference, it will return early, but otherwise it will use the current image’s metadata to calculate the translation between the two viewports and adds it to the spatialRegistrationModule metadata provider
Parameters
viewport1: default | default
The first stack viewport
viewport2: default | default
The second stack viewport
Returns void
clamp
Parameters
value: number
min: number
max: number
Returns number
convertStackToVolumeViewport
Converts a stack viewport to a volume viewport.
Parameters
params: { options: { background?: Point3; orientation?: OrientationAxis; viewportId?: string; volumeId: string }; viewport: default }
The parameters for the conversion.
Returns Promise<IVolumeViewport>
The converted volume viewport.
convertToGrayscale
Parameters
scalarData: any
width: number
height: number
Returns any
convertVolumeToStackViewport
Converts a volume viewport to a stack viewport.
Parameters
params: { options: { background?: Point3; viewportId?: string }; viewport: default }
The parameters for the conversion.
Returns Promise<Types.IStackViewport>
The converted stack viewport.
publiccreateFloat32SharedArray
A helper function that creates a new Float32Array that utilized a shared array buffer. This allows the array to be updated simultaneously in workers or the main thread. Depending on the system (the CPU, the OS, the Browser) it can take a while until the change is propagated to all contexts.
Parameters
length: number
frame size * number of frames
Returns Float32Array
a Float32Array with an underlying SharedArrayBuffer
publiccreateInt16SharedArray
A helper function that creates a new Int16 that utilized a shared array buffer. This allows the array to be updated simultaneously in workers or the main thread. Depending on the system (the CPU, the OS, the Browser) it can take a while until the change is propagated to all contexts.
Parameters
length: number
frame size * number of frames
Returns Int16Array
a Int8Array with an underlying SharedArrayBuffer
createLinearRGBTransferFunction
Parameters
voiRange: VOIRange
Returns vtkColorTransferFunction
createSigmoidRGBTransferFunction
A utility that can be used to generate an Sigmoid RgbTransferFunction. Sigmoid transfer functions are used in the dicom specification: https://dicom.nema.org/medical/dicom/2018b/output/chtml/part03/sect_C.11.2.html
Parameters
voiRange: VOIRange
approximationNodes: number = 1024
Returns vtkColorTransferFunction
publiccreateUint16SharedArray
A helper function that creates a new Uint16 that utilized a shared array buffer. This allows the array to be updated simultaneously in workers or the main thread. Depending on the system (the CPU, the OS, the Browser) it can take a while until the change is propagated to all contexts.
Parameters
length: number
frame size * number of frames
Returns Uint16Array
a Uint8Array with an underlying SharedArrayBuffer
publiccreateUint8SharedArray
A helper function that creates a new Float32Array that utilized a shared array buffer. This allows the array to be updated simultaneously in workers or the main thread. Depending on the system (the CPU, the OS, the Browser) it can take a while until the change is propagated to all contexts.
Parameters
length: number
frame size * number of frames
Returns Uint8Array
a Uint8Array with an underlying SharedArrayBuffer
decimate
Return the decimated indices for the given list.
Parameters
list: unknown[]
to decimate the indices for
interleave: number
the interleave interval for decimation
offset: number = 0
where to start the interleave from
Returns number[]
deepMerge
Merge two objects, recursively merging any objects that are arrays
Parameters
target: {} = {}
The target object.
source: {} = {}
The source object to merge into the target object.
optionsArgument: any = undefined
The options object.
Returns any
The merged object.
generateVolumePropsFromImageIds
Parameters
imageIds: string[]
volumeId: string
Returns ImageVolumeProps
getBufferConfiguration
Creates a target buffer based on the provided options.
Parameters
targetBufferType: PixelDataTypedArrayString
The type of the target buffer.
length: number
The length of the target buffer.
options: { isVolumeBuffer?: boolean; use16BitTexture?: boolean } = {}
Options for the target buffer. Currently supports
use16BitTexture
andisVolumeBuffer
.
Returns { TypedArrayConstructor: new (length: number | SharedArrayBuffer) => PixelDataTypedArray; numBytes: number }
Returns an object containing the number of bytes and the type array constructor of the target buffer, which you then use to create the target buffer with new TypedArrayConstructor(length).
TypedArrayConstructor: new (length: number | SharedArrayBuffer) => PixelDataTypedArray
Parameters
length: number | SharedArrayBuffer
Returns PixelDataTypedArray
numBytes: number
getClosestImageId
Given an image, a point in space and the viewPlaneNormal it returns the closest imageId of the image volume that is within half voxel spacing of the point in space.
Parameters
imageVolume: IImageVolume
The image volume
worldPos: Point3
The position in the world coordinate system (from mouse click)
viewPlaneNormal: Point3
The normal vector of the viewport
Returns string
The imageId for the tool.
getClosestStackImageIndexForPoint
Given a point in 3D space and a viewport it returns the index of the closest imageId, it assumes that stack images are sorted according to their sliceLocation
Parameters
point: Point3
[A, B, C] coordinates of the point in 3D space
viewport: default
The StackViewport to search for the closest imageId
Returns number | null
The imageId index of the closest imageId or null if no imageId is found
getCurrentVolumeViewportSlice
Get the image data for the current slice rendered on the viewport. The image data returned is the full slice and not only the region that is visible on the viewport. It does not work for oblique views.
Parameters
viewport: default
Volume viewport
Returns { height: number; indexToSliceMatrix: mat4; scalarData: any; sliceToIndexMatrix: mat4; width: number }
Slice image dataand matrices to convert from volume to slice and vice-versa
height: number
indexToSliceMatrix: mat4
scalarData: any
sliceToIndexMatrix: mat4
width: number
getImageLegacy
Gets the IImage rendered by the given element. This is provided as a convenience for the legacy cornerstone getImage function. However it is encouraged for IStackViewport.getImage to be used instead.
Parameters
element: HTMLDivElement
the element rendering/containing the image
Returns Types.IImage | undefined
the image
getImageSliceDataForVolumeViewport
It calculates the number of slices and the current slice index for a given Volume viewport
Parameters
viewport: default
volume viewport
Returns ImageSliceData
An object with two properties: numberOfSlices and imageIndex.
getMinMax
Calculate the minimum and maximum values in an Array
Parameters
storedPixelData: number[]
The pixel data to calculate the min and max values for
Returns { max: number; min: number }
an object with two properties: min and max
max: number
min: number
getRandomSampleFromArray
Gets a random sample of specified size from the array. If the requested size is greater than the array length, returns a shuffled clone of the original array.
Type parameters
- T
Parameters
array: T[]
The source array from which to sample.
size: number
The number of elements to sample from the array.
Returns T[]
A new array containing the random sample.
getRuntimeId
Generate a unique numeric ID string valid during a single runtime session;
Parameters
optionalcontext: unknown
An optional object to be used as context. Defaults to a global context;
optionalseparator: string
The component separator. Defaults to “-“;
optionalmax: number
The maximum component value. Defaults to 4294967295;
Returns string
The string representation of the the unique ID;
getScalarDataType
If the scalar data is a Uint8Array, return ‘Uint8Array’. If the scalar data is a Float32Array, return ‘Float32Array’. If the scalar data is a Int16Array, return ‘Int16Array’. If the scalar data is a Uint16Array, return ‘Uint16Array’. If the scalar data is none of the above, throw an error.
Parameters
scalingParameters: ScalingParameters
{
optionalscalarData: any
The data to be converted.
Returns string
The data type of the scalar data.
getScalingParameters
It returns the scaling parameters for the image with the given imageId. This can be used to get passed (as an option) to the imageLoader in order to apply scaling to the image inside the imageLoader.
Parameters
imageId: string
The imageId of the image
Returns ScalingParameters
ScalingParameters
getSliceRange
Given a
vtkVolumeActor
, and a normal direction, calculate the range of slices in the focal normal direction that encapsulate the volume. Also project thefocalPoint
onto this range.Parameters
volumeActor: vtkVolume
The
vtkVolumeActor
.viewPlaneNormal: Point3
The normal to the camera view.
focalPoint: Point3
The focal point of the camera.
Returns ActorSliceRange
an object containing the
min
,max
andcurrent
positions in the normal direction.
getSpacingInNormalDirection
Given an
imageVolume
and a normal direction (viewPlaneNormal
), calculates the spacing between voxels in the normal direction. If (viewPlaneNormal
) is parallel to one of the directions you will obtain the spacing in that direction. Otherwise each of theimageVolume
‘s directions are projected onto the volume, so that you obtain a spacing of the order of “seeing a new set of voxels if the camera where to dolly”.Parameters
imageVolume: IImageVolume | { direction: mat3; spacing: Point3 }
The image volume to calculate the spacing in the normal direction.
viewPlaneNormal: Point3
The normal direction of the view plane.
Returns number
getTargetVolumeAndSpacingInNormalDir
Given a volume viewport and camera, find the target volume. The imageVolume is retrieved from cache for the specified targetId or in case it is not provided, it chooses the volumeId on the viewport (there might be more than one in case of fusion) that has the finest resolution in the direction of view (normal).
Parameters
viewport: default
volume viewport
camera: ICamera
current camera
optionaltargetId: string
If a targetId is forced to be used.
useSlabThickness: boolean = false
If true, the number of steps will be calculated based on the slab thickness instead of the spacing in the normal direction
Returns { actorUID: string; imageVolume: IImageVolume; spacingInNormalDirection: number }
An object containing the imageVolume and spacingInNormalDirection.
actorUID: string
imageVolume: IImageVolume
spacingInNormalDirection: number
getViewportImageCornersInWorld
Given a viewport, return the corners of the image in the viewport in world coordinates. Note that this is different than the corners of the canvas in world coordinates since an image can be zoomed out and the canvas can be larger than the image; hence, the corners of the canvas in world coordinates will be outside the image.
Parameters
Returns Point3[]
The corners of the image in the viewport in world coordinates.
getViewportImageIds
Retrieves the image IDs from the given viewport.
Parameters
viewport: IViewport
The viewport to retrieve the image IDs from.
Returns string[]
An array of image IDs.
getViewportModality
Parameters
viewport: IViewport
optionalvolumeId: string
Returns string
getViewportsWithImageURI
Get the viewport that is rendering the image with the given imageURI (imageId without the loader schema), this can be a stackViewport or a volumeViewport.
Parameters
imageURI: string
The imageURI of the image that is requested
optionalrenderingEngineId: string
Returns Viewport[]
A Viewport
getViewportsWithVolumeId
Similar to getVolumeViewportsContainingSameVolumes, but uses the volumeId to filter viewports that contain the same volume.
Parameters
volumeId: string
optionalrenderingEngineId: string
Returns IVolumeViewport[]
VolumeViewport viewports array
getVoiFromSigmoidRGBTransferFunction
Parameters
cfun: vtkColorTransferFunction
Returns [number, number]
getVolumeActorCorners
Converts
vtkVolumeActor
bounds to corners in world space.Parameters
volumeActor: any
The
vtkVolumeActor
.
Returns Point3[]
An array of the corners of the
volumeActor
in world space.
getVolumeId
Retrieves the volume ID from a target ID. Target Id is not only volumeId but might include other information, but it starts with volumeId.
Parameters
targetId: string
The target ID from which to extract the volume ID.
Returns string
The volume ID extracted from the target ID.
getVolumeSliceRangeInfo
Calculates the slice range for the given volume based on its orientation
Parameters
viewport: default
Volume viewport
volumeId: string
Id of one of the volumes loaded on the given viewport
useSlabThickness: boolean = false
If true, the slice range will be calculated based on the slab thickness instead of the spacing in the normal direction
Returns { camera: ICamera; sliceRange: ActorSliceRange; spacingInNormalDirection: number }
slice range information
camera: ICamera
sliceRange: ActorSliceRange
spacingInNormalDirection: number
getVolumeViewportScrollInfo
Calculates the number os steps the volume can scroll based on its orientation
Parameters
viewport: default
Volume viewport
volumeId: string
Id of one of the volumes loaded on the given viewport
useSlabThickness: boolean = false
If true, the number of steps will be calculated based on the slab thickness instead of the spacing in the normal direction
Returns { currentStepIndex: number; numScrollSteps: number; sliceRangeInfo: { camera: ICamera; sliceRange: ActorSliceRange; spacingInNormalDirection: number } }
number of steps the volume can scroll and its current position
currentStepIndex: number
numScrollSteps: number
sliceRangeInfo: { camera: ICamera; sliceRange: ActorSliceRange; spacingInNormalDirection: number }
camera: ICamera
sliceRange: ActorSliceRange
spacingInNormalDirection: number
getVolumeViewportsContainingSameVolumes
Returns the viewports containing the same volume actors (all actors) the same as the target viewport. If renderingEngineId is provided, it will only return viewports that are associated with the renderingEngineId; otherwise, it will return search in all rendering engines.
This method is useful for finding viewports that are associated with the same volume (e.g., for tools that share state between viewports).
Parameters
targetViewport: default
optionalrenderingEngineId: string
Returns IVolumeViewport[]
array of viewports that have the same volume actor as the target viewport
hasFloatScalingParameters
Checks if the scaling parameters contain a float rescale value.
Parameters
scalingParameters: ScalingParameters
The scaling parameters to check.
Returns boolean
True if the scaling parameters contain a float rescale value, false otherwise.
hasNaNValues
A function that checks if there is a value in the array that is NaN. or if the input is a number it just checks if it is NaN.
Parameters
input: number | number[]
The input to check if it is NaN.
Returns boolean
- True if the input is NaN, false otherwise.
imageIdToURI
Removes the data loader scheme from the imageId
Parameters
imageId: string
Image ID
Returns string
imageId without the data loader scheme
imageToWorldCoords
Given the imageId and a 2d coordinates on the image space with [0,0] being the top left corner of the top left pixel, and options which includes the imageId, it returns the 3d coordinates on the world space.
Parameters
imageId: string
The image id
imageCoords: Point2
The 2d coordinates on the image
Returns Point3 | undefined
The 3d coordinates on the world.
indexWithinDimensions
invertRgbTransferFunction
A utility that can be used to invert (in place) an RgbTransferFunction.
Parameters
rgbTransferFunction: any
Returns void
isEqual
Returns whether two values are equal or not, based on epsilon comparison. For array comparison, it does NOT strictly compare them but only compare its values. It can compare array of numbers and also typed array. Otherwise it will just return false.
Type parameters
- ValueType
Parameters
v1: ValueType
The first value to compare
v2: ValueType
The second value to compare
tolerance: number = 1e-5
The acceptable tolerance, the default is 0.00001
Returns boolean
True if the two values are within the tolerance levels.
isEqualAbs
Compare absolute values for single numbers and vectors. Not recommended for large vectors as this creates a copy
Type parameters
- ValueType
Parameters
v1: ValueType
v2: ValueType
tolerance: any = undefined
Returns boolean
isEqualNegative
Compare negative values of both single numbers and vectors
Type parameters
- ValueType
Parameters
v1: ValueType
v2: ValueType
tolerance: any = undefined
Returns boolean
isImageActor
Checks if a vtk Actor is an image actor (vtkVolume or vtkImageSlice) otherwise returns false.
Parameters
actorEntry: ActorEntry
Returns boolean
A boolean value.
isOpposite
isPTPrescaledWithSUV
Parameters
image: IImage
Returns number
isValidVolume
Checks if the given imageIds form a valid volume. A volume is considered valid if all imageIds have the same series instance UID, modality, columns, rows, image orientation patient, and pixel spacing.
Parameters
imageIds: string[]
The imageIds to check.
Returns boolean
true if the imageIds form a valid volume, false otherwise.
isVideoTransferSyntax
Parameters
uidOrUids: string | string[]
Returns string | false
loadImageToCanvas
Loads and renders an imageId to a Canvas. It will use the GPU rendering pipeline for image by default but you can force the CPU rendering pipeline by setting the useCPURendering parameter to true.
Parameters
options: LoadImageOptions
Returns Promise<string>
- A promise that resolves when the image has been rendered with the imageId
makeVolumeMetadata
It creates a metadata object for a volume given the imageIds that compose it. It uses the first imageId to get the metadata.
Parameters
imageIds: string[]
array of imageIds
Returns Metadata
The volume metadata
renderToCanvasCPU
Renders a cornerstone image object to a canvas. Note: this does not load the image but only takes care of the rendering pipeline
Parameters
canvas: HTMLCanvasElement
Canvas element to render to
image: IImage
Cornerstone image object
optionalmodality: string
optional_renderingEngineId: string
optional_viewportOptions: ViewportInputOptions
Returns Promise<string>
renderToCanvasGPU
Renders an cornerstone image to a Canvas. This method will handle creation of a temporary enabledElement, setting the imageId, and rendering the image via a StackViewport, copying the canvas drawing to the given canvas Element, and disabling the created temporary element. SuppressEvents argument is used to prevent events from firing during the render process (e.g. during a series of renders to a thumbnail image).
Parameters
canvas: HTMLCanvasElement
Canvas element to render to
image: IImage
The image to render
modality: any = undefined
[Default = undefined] The modality of the image
renderingEngineId: string = '_thumbnails'
viewportOptions: ViewportInputOptions = ...
Returns Promise<string>
- A promise that resolves when the image has been rendered with the imageId
roundNumber
Truncates decimal points to that there is at least 1+precision significant digits.
For example, with the default precision 2 (3 significant digits)
- Values larger than 100 show no information after the decimal point
- Values between 10 and 99 show 1 decimal point
- Values between 1 and 9 show 2 decimal points
Parameters
value: string | number | (string | number)[]
to return a fixed measurement value from
precision: number = 2
defining how many digits after 1..9 are desired
Returns string
roundToPrecision
Rounds a number to the nearest multiple of EPSILON.
Parameters
value: any
The number to round.
Returns number
The rounded number.
scaleRgbTransferFunction
A utility that can be used to scale (in place) an RgbTransferFunction. We often use this to scale the transfer function based on a PET calculation.
Parameters
rgbTransferFunction: any
scalingFactor: number
Returns void
snapFocalPointToSlice
Given a number of frames,
deltaFrames
, move thefocalPoint
and cameraposition
so that it moves forward/backwardsdeltaFrames
in the camera’s normal direction, and snaps to the nearest frame.Parameters
focalPoint: Point3
The focal point to move.
position: Point3
The camera position to move.
sliceRange: ActorSliceRange
The scroll range used to find the current position in the stack, as well as prevent scrolling past the extent of the volume.
viewPlaneNormal: Point3
The normal direction of the camera.
spacingInNormalDirection: number
The spacing of frames the normal direction of the camera.
deltaFrames: number
The number of frames to jump.
Returns { newFocalPoint: Point3; newPosition: Point3 }
The
newFocalPoint
andnewPosition
of the camera.
sortImageIdsAndGetSpacing
Given an array of imageIds, sort them based on their imagePositionPatient, and also returns the spacing between images and the origin of the reference image
Parameters
imageIds: string[]
array of imageIds
optionalscanAxisNormal: vec3
[x, y, z] array or gl-matrix vec3
Returns SortedImageIdsItem
The sortedImageIds, zSpacing, and origin of the first image in the series.
transformIndexToWorld
Given an imageData object and a position in voxel space, return a point in world space.
Parameters
imageData: any
The image data object.
voxelPos: Point3
Point in voxel space index space.
Returns any
A point in world space.
transformWorldToIndex
Given an imageData object and a point in physical space, return the index of the voxel that contains the point. TODO: this should be pushed to vtk upstream.
Parameters
imageData: any
The image data object.
worldPos: Point3
Returns any
An array of integers.
updateVTKImageDataWithCornerstoneImage
Parameters
sourceImageData: vtkImageData
image: IImage
Returns void
uuidv4
Generates a unique id that has limited chance of collision
Returns string
a v4 compliant GUID
worldToImageCoords
Given the imageId, and 3d coordinates on the world space, it returns the continuos image coordinates (IJ) on the image space. The image space is defined with [0,0] being on the top left corner of the top left pixel, the [1,1] being on the bottom right corner of the top left pixel.
Parameters
imageId: string
The image id
worldCoords: Point3
The 3d coordinates on the world.
Returns Point2 | undefined
The 2d coordinates on the image.
Performs cache optimization for a volume by replacing the pixel data of each image in the image cache (if found) with a view of the volume’s scalar data.