Skip to main content

StreamingImageVolume

Streaming Image Volume Class that extends ImageVolume base class. It implements load method to load the imageIds and insert them into the volume.

Hierarchy

Index

Constructors

constructor

Properties

dimensions

dimensions: Point3

Dimensions of the volume

direction

direction: Mat3

volume direction in world space

hasPixelSpacing

hasPixelSpacing: boolean

whether the metadata for the pixel spacing is not undefined

optionalimageData

imageData?: any

volume image data

optionalimageIds

imageIds?: string[]

optional image ids for the volume if it is made of separated images

isPrescaled

isPrescaled: boolean = false

Whether preScaling has been performed on the volume

loadStatus

loadStatus: { cachedFrames: boolean[]; callbacks: (...args: unknown[]) => void[]; loaded: boolean; loading: boolean }

load status object for the volume


Type declaration

  • cachedFrames: boolean[]
  • callbacks: (...args: unknown[]) => void[]
  • loaded: boolean
  • loading: boolean

metadata

metadata: Metadata

volume metadata

numVoxels

numVoxels: number

volume number of voxels

origin

origin: Point3

volume origin, Note this is an opinionated origin for the volume

optionalreferencedVolumeId

referencedVolumeId?: string

optional reference volume id if the volume is derived from another volume

scalarData

scalarData: Float32Array | Uint8Array

volume scalar data

optionalscaling

scaling?: { PET?: { SUVbsaFactor?: number; SUVlbmFactor?: number; suvbwToSuvbsa?: number; suvbwToSuvlbm?: number } }

volume scaling parameters if it contains scaled data


Type declaration

  • optionalPET?: { SUVbsaFactor?: number; SUVlbmFactor?: number; suvbwToSuvbsa?: number; suvbwToSuvlbm?: number }
    • optionalSUVbsaFactor?: number
    • optionalSUVlbmFactor?: number
    • optionalsuvbwToSuvbsa?: number
    • optionalsuvbwToSuvlbm?: number

optionalsizeInBytes

sizeInBytes?: number

volume size in bytes

spacing

spacing: Point3

volume spacing in 3d world space

readonlyvolumeId

volumeId: string

Read-only unique identifier for the volume

vtkOpenGLTexture

vtkOpenGLTexture: any

open gl texture for the volume

Methods

publiccancelLoading

  • cancelLoading(): void
  • It cancels loading the images of the volume. It sets the loading status to false and filters any imageLoad request in the requestPoolManager that has the same volumeId


    Returns void

publicclearLoadCallbacks

  • clearLoadCallbacks(): void
  • Clear the load callbacks


    Returns void

publicconvertToCornerstoneImage

  • convertToCornerstoneImage(imageId: string, imageIdIndex: number): IImageLoadObject
  • Converts the requested imageId inside the volume to a cornerstoneImage object. It uses the typedArray set method to copy the pixelData from the correct offset in the scalarData to a new array for the image


    Parameters

    • imageId: string

      the imageId of the image to be converted

    • imageIdIndex: number

      the index of the imageId in the imageIds array

    Returns IImageLoadObject

    imageLoadObject containing the promise that resolves to the cornerstone image

publicdecache

  • decache(completelyRemove?: boolean): void
  • If completelyRemove is true, remove the volume completely from the cache. Otherwise, convert the volume to cornerstone images (stack images) and store it in the cache


    Parameters

    • completelyRemove: boolean = false

      If true, the image will be removed from the cache completely.

    Returns void

publicgetImageLoadRequests

  • getImageLoadRequests(priority: number): { additionalDetails: { volumeId: string }; callLoadImage: (imageId: any, imageIdIndex: any, options: any) => Promise<void>; imageId: string; imageIdIndex: number; options: { preScale: { enabled: boolean; scalingParameters: ScalingParameters }; skipCreateImage: boolean; targetBuffer: { arrayBuffer: SharedArrayBuffer; length: number; offset: number; type: any } }; priority: number; requestType: RequestType }[]
  • It returns the imageLoad requests for the streaming image volume instance. It involves getting all the imageIds of the volume and creating a success callback which would update the texture (when the image has loaded) and the failure callback. Note that this method does not run executes the requests but only returns the requests. It can be used for sorting requests outside of the volume loader itself e.g. loading a single slice of CT, followed by a single slice of PET (interleaved), before moving to the next slice.


    Parameters

    • priority: number

    Returns { additionalDetails: { volumeId: string }; callLoadImage: (imageId: any, imageIdIndex: any, options: any) => Promise<void>; imageId: string; imageIdIndex: number; options: { preScale: { enabled: boolean; scalingParameters: ScalingParameters }; skipCreateImage: boolean; targetBuffer: { arrayBuffer: SharedArrayBuffer; length: number; offset: number; type: any } }; priority: number; requestType: RequestType }[]

    Array of requests including imageId of the request, its imageIdIndex, options (targetBuffer and scaling parameters), and additionalDetails (volumeId)

publicload

  • load(callback: (...args: unknown[]) => void, priority?: number): void
  • It triggers a prefetch for images in the volume.


    Parameters

    • callback: (...args: unknown[]) => void

      A callback function to be called when the volume is fully loaded

    • priority: number = 5

      The priority for loading the volume images, lower number is higher priority

    Returns void