@cornerstonejs/core 2.0.0-beta.20 → 2.0.0-beta.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +23 -13
- package/dist/esm/RenderingEngine/BaseVolumeViewport.js +52 -50
- package/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.d.ts +1 -1
- package/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.d.ts +1 -1
- package/dist/esm/RenderingEngine/CanvasActor/index.js +2 -1
- package/dist/esm/RenderingEngine/RenderingEngine.d.ts +8 -10
- package/dist/esm/RenderingEngine/RenderingEngine.js +20 -18
- package/dist/esm/RenderingEngine/StackViewport.d.ts +28 -19
- package/dist/esm/RenderingEngine/StackViewport.js +81 -58
- package/dist/esm/RenderingEngine/VideoViewport.d.ts +19 -28
- package/dist/esm/RenderingEngine/VideoViewport.js +61 -24
- package/dist/esm/RenderingEngine/Viewport.d.ts +25 -14
- package/dist/esm/RenderingEngine/Viewport.js +24 -15
- package/dist/esm/RenderingEngine/VolumeViewport.d.ts +21 -9
- package/dist/esm/RenderingEngine/VolumeViewport.js +95 -10
- package/dist/esm/RenderingEngine/VolumeViewport3D.d.ts +3 -3
- package/dist/esm/RenderingEngine/VolumeViewport3D.js +10 -3
- package/dist/esm/RenderingEngine/WSIViewport.d.ts +58 -0
- package/dist/esm/RenderingEngine/WSIViewport.js +414 -0
- package/dist/esm/RenderingEngine/helpers/addImageSlicesToViewports.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/addImageSlicesToViewports.js +3 -3
- package/dist/esm/RenderingEngine/helpers/addVolumesToViewports.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/lookupTable.d.ts +2 -2
- package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/lookupTable.js +15 -5
- package/dist/esm/RenderingEngine/helpers/cpuFallback/drawImageSync.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/calculateTransform.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/canvasToPixel.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/correctShift.d.ts +3 -3
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/createViewport.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/doesImageNeedToBeRendered.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/fitToWindow.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateColorLUT.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateColorLUT.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateLut.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateLut.js +2 -2
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getDefaultViewport.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getImageFitScale.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getImageSize.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getLut.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getLut.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getTransform.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/initializeRenderCanvas.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/lutMatches.d.ts +2 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/lutMatches.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/pixelToCanvas.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js +3 -4
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderGrayscaleImage.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderGrayscaleImage.js +2 -3
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js +3 -3
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/resetCamera.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/resize.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/saveLastRendered.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/setDefaultViewport.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/setToPixelCoordinateSystem.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedColorPixelDataToCanvasImageData.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedColorPixelDataToCanvasImageData.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageData.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageData.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataColorLUT.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPET.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPET.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPseudocolorLUT.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPseudocolorLUTPET.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataRGBA.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataRGBA.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedRGBAPixelDataToCanvasImageData.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedRGBAPixelDataToCanvasImageData.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/transform.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/validator.d.ts +2 -2
- package/dist/esm/RenderingEngine/helpers/createVolumeActor.d.ts +3 -3
- package/dist/esm/RenderingEngine/helpers/createVolumeActor.js +4 -7
- package/dist/esm/RenderingEngine/helpers/createVolumeMapper.d.ts +4 -1
- package/dist/esm/RenderingEngine/helpers/getOrCreateCanvas.js +5 -4
- package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.d.ts +2 -2
- package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js +13 -37
- package/dist/esm/RenderingEngine/helpers/setVolumesForViewports.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.d.ts +2 -0
- package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.js +2 -0
- package/dist/esm/RenderingEngine/helpers/volumeNewImageEventDispatcher.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/volumeNewImageEventDispatcher.js +4 -4
- package/dist/esm/RenderingEngine/renderingEngineCache.d.ts +1 -1
- package/dist/esm/RenderingEngine/vtkClasses/vtkSlabCamera.d.ts +4 -2
- package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLTexture.js +87 -78
- package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLViewNodeFactory.js +1 -1
- package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js +83 -42
- package/dist/esm/Settings.d.ts +1 -1
- package/dist/esm/cache/cache.d.ts +15 -19
- package/dist/esm/cache/cache.js +112 -57
- package/dist/esm/cache/classes/Contour.d.ts +4 -4
- package/dist/esm/cache/classes/ContourSet.d.ts +3 -3
- package/dist/esm/cache/classes/ImageVolume.d.ts +19 -19
- package/dist/esm/cache/classes/ImageVolume.js +49 -254
- package/dist/esm/cache/classes/Surface.d.ts +3 -3
- package/dist/esm/cache/index.d.ts +1 -2
- package/dist/esm/cache/index.js +1 -2
- package/dist/esm/constants/cpuColormaps.d.ts +1 -1
- package/dist/esm/constants/viewportPresets.d.ts +1 -1
- package/dist/esm/enums/GenerateImageType.d.ts +5 -0
- package/dist/esm/enums/GenerateImageType.js +6 -0
- package/dist/esm/enums/MetadataModules.d.ts +2 -1
- package/dist/esm/enums/MetadataModules.js +1 -0
- package/dist/esm/enums/ViewportType.d.ts +2 -1
- package/dist/esm/enums/ViewportType.js +1 -0
- package/dist/esm/enums/index.d.ts +2 -2
- package/dist/esm/enums/index.js +2 -2
- package/dist/esm/eventTarget.js +2 -3
- package/dist/esm/getEnabledElement.d.ts +1 -1
- package/dist/esm/global.d.ts +0 -1
- package/dist/esm/index.d.ts +9 -5
- package/dist/esm/index.js +8 -4
- package/dist/esm/init.d.ts +5 -8
- package/dist/esm/init.js +22 -83
- package/dist/esm/loaders/ProgressiveRetrieveImages.d.ts +5 -5
- package/dist/esm/loaders/ProgressiveRetrieveImages.js +7 -3
- package/dist/esm/loaders/configuration/interleavedRetrieve.d.ts +1 -1
- package/dist/esm/loaders/fillNearbyFrames.d.ts +2 -2
- package/dist/esm/loaders/geometryLoader.d.ts +3 -3
- package/dist/esm/loaders/geometryLoader.js +1 -1
- package/dist/esm/loaders/imageLoader.d.ts +12 -17
- package/dist/esm/loaders/imageLoader.js +179 -96
- package/dist/esm/loaders/utils/contourSet/createContourSet.d.ts +1 -1
- package/dist/esm/loaders/utils/contourSet/validateContourSet.d.ts +1 -1
- package/dist/esm/loaders/utils/surface/createSurface.d.ts +1 -1
- package/dist/esm/loaders/utils/surface/validateSurface.d.ts +1 -1
- package/dist/esm/loaders/volumeLoader.d.ts +15 -22
- package/dist/esm/loaders/volumeLoader.js +88 -207
- package/dist/esm/metaData.d.ts +2 -4
- package/dist/esm/requestPool/requestPoolManager.d.ts +7 -9
- package/dist/esm/requestPool/requestPoolManager.js +1 -1
- package/dist/esm/types/AABB2.d.ts +2 -2
- package/dist/esm/types/AABB3.d.ts +2 -2
- package/dist/esm/types/ActorSliceRange.d.ts +5 -5
- package/dist/esm/types/BoundsIJK.d.ts +1 -1
- package/dist/esm/types/BoundsLPS.d.ts +1 -1
- package/dist/esm/types/CPUFallbackColormap.d.ts +3 -3
- package/dist/esm/types/CPUFallbackColormapData.d.ts +4 -4
- package/dist/esm/types/CPUFallbackColormapsData.d.ts +3 -5
- package/dist/esm/types/CPUFallbackEnabledElement.d.ts +2 -37
- package/dist/esm/types/CPUFallbackLUT.d.ts +4 -3
- package/dist/esm/types/CPUFallbackLookupTable.d.ts +2 -2
- package/dist/esm/types/CPUFallbackRenderingTools.d.ts +5 -5
- package/dist/esm/types/CPUFallbackTransform.d.ts +3 -3
- package/dist/esm/types/CPUFallbackViewport.d.ts +6 -6
- package/dist/esm/types/CPUFallbackViewportDisplayedArea.d.ts +3 -3
- package/dist/esm/types/CPUIImageData.d.ts +17 -9
- package/dist/esm/types/Color.d.ts +1 -1
- package/dist/esm/types/Colormap.d.ts +7 -7
- package/dist/esm/types/ContourData.d.ts +6 -6
- package/dist/esm/types/Cornerstone3DConfig.d.ts +7 -7
- package/dist/esm/types/CustomEventType.d.ts +2 -2
- package/dist/esm/types/EventTypes.d.ts +55 -55
- package/dist/esm/types/FlipDirection.d.ts +3 -3
- package/dist/esm/types/IActor.d.ts +3 -3
- package/dist/esm/types/ICache.d.ts +4 -4
- package/dist/esm/types/ICachedGeometry.d.ts +3 -3
- package/dist/esm/types/ICachedImage.d.ts +3 -2
- package/dist/esm/types/ICachedVolume.d.ts +3 -2
- package/dist/esm/types/ICamera.d.ts +3 -3
- package/dist/esm/types/IContour.d.ts +4 -3
- package/dist/esm/types/IContourSet.d.ts +5 -2
- package/dist/esm/types/IDynamicImageVolume.d.ts +3 -3
- package/dist/esm/types/IEnabledElement.d.ts +2 -2
- package/dist/esm/types/IGeometry.d.ts +4 -4
- package/dist/esm/types/IImage.d.ts +48 -11
- package/dist/esm/types/IImageCalibration.d.ts +2 -2
- package/dist/esm/types/IImageData.d.ts +11 -4
- package/dist/esm/types/IImageFrame.d.ts +42 -0
- package/dist/esm/types/IImageFrame.js +1 -0
- package/dist/esm/types/IImageVolume.d.ts +17 -14
- package/dist/esm/types/ILoadObject.d.ts +3 -3
- package/dist/esm/types/IPointsManager.d.ts +23 -0
- package/dist/esm/types/IPointsManager.js +1 -0
- package/dist/esm/types/IRLEVoxelMap.d.ts +16 -0
- package/dist/esm/types/IRLEVoxelMap.js +1 -0
- package/dist/esm/types/IRegisterImageLoader.d.ts +2 -2
- package/dist/esm/types/IRenderingEngine.d.ts +11 -12
- package/dist/esm/types/IRetrieveConfiguration.d.ts +6 -6
- package/dist/esm/types/IStackInput.d.ts +1 -1
- package/dist/esm/types/IStackViewport.d.ts +69 -2
- package/dist/esm/types/IStreamingImageVolume.d.ts +3 -4
- package/dist/esm/types/IStreamingVolumeProperties.d.ts +5 -5
- package/dist/esm/types/ISurface.d.ts +1 -1
- package/dist/esm/types/ITransferFunctionNode.d.ts +9 -0
- package/dist/esm/types/ITransferFunctionNode.js +1 -0
- package/dist/esm/types/IVideoViewport.d.ts +40 -2
- package/dist/esm/types/IViewport.d.ts +62 -41
- package/dist/esm/types/IVolume.d.ts +2 -2
- package/dist/esm/types/IVolumeInput.d.ts +2 -2
- package/dist/esm/types/IVolumeViewport.d.ts +17 -16
- package/dist/esm/types/IVoxelManager.d.ts +54 -0
- package/dist/esm/types/IVoxelManager.js +1 -0
- package/dist/esm/types/IWSIViewport.d.ts +16 -0
- package/dist/esm/types/IWSIViewport.js +1 -0
- package/dist/esm/types/ImageLoadListener.d.ts +2 -2
- package/dist/esm/types/ImageLoaderFn.d.ts +3 -3
- package/dist/esm/types/ImagePixelModule.d.ts +1 -1
- package/dist/esm/types/ImagePlaneModule.d.ts +2 -2
- package/dist/esm/types/ImageSliceData.d.ts +3 -3
- package/dist/esm/types/ImageVolumeProps.d.ts +4 -4
- package/dist/esm/types/Mat3.d.ts +1 -1
- package/dist/esm/types/Metadata.d.ts +6 -6
- package/dist/esm/types/MetadataModuleTypes.d.ts +65 -0
- package/dist/esm/types/MetadataModuleTypes.js +1 -0
- package/dist/esm/types/OrientationVectors.d.ts +4 -4
- package/dist/esm/types/Plane.d.ts +1 -1
- package/dist/esm/types/Point2.d.ts +1 -1
- package/dist/esm/types/Point3.d.ts +3 -3
- package/dist/esm/types/Point4.d.ts +1 -1
- package/dist/esm/types/RGB.d.ts +1 -1
- package/dist/esm/types/ScalingParameters.d.ts +7 -7
- package/dist/esm/types/StackViewportProperties.d.ts +3 -3
- package/dist/esm/types/SurfaceData.d.ts +5 -5
- package/dist/esm/types/TransformMatrix2D.d.ts +1 -1
- package/dist/esm/types/VideoViewportProperties.d.ts +3 -3
- package/dist/esm/types/VideoViewportTypes.d.ts +7 -7
- package/dist/esm/types/ViewportInputOptions.d.ts +7 -7
- package/dist/esm/types/ViewportPreset.d.ts +1 -1
- package/dist/esm/types/ViewportProperties.d.ts +5 -5
- package/dist/esm/types/VolumeLoaderFn.d.ts +4 -3
- package/dist/esm/types/VolumeProps.d.ts +10 -5
- package/dist/esm/types/VolumeViewportProperties.d.ts +3 -3
- package/dist/esm/types/WSIViewportProperties.d.ts +3 -0
- package/dist/esm/types/WSIViewportProperties.js +1 -0
- package/dist/esm/types/WSIViewportTypes.d.ts +13 -0
- package/dist/esm/types/WSIViewportTypes.js +1 -0
- package/dist/esm/types/displayArea.d.ts +4 -4
- package/dist/esm/types/index.d.ts +16 -8
- package/dist/esm/types/voi.d.ts +4 -4
- package/dist/esm/utilities/PointsManager.d.ts +8 -10
- package/dist/esm/utilities/ProgressiveIterator.d.ts +1 -1
- package/dist/esm/utilities/ProgressiveIterator.js +3 -1
- package/dist/esm/utilities/RLEVoxelMap.d.ts +3 -8
- package/dist/esm/utilities/RLEVoxelMap.js +19 -19
- package/dist/esm/utilities/VoxelManager.d.ts +82 -20
- package/dist/esm/utilities/VoxelManager.js +466 -60
- package/dist/esm/utilities/actorCheck.d.ts +1 -1
- package/dist/esm/utilities/applyPreset.d.ts +2 -2
- package/dist/esm/utilities/calculateViewportsSpatialRegistration.d.ts +1 -1
- package/dist/esm/utilities/calculateViewportsSpatialRegistration.js +5 -5
- package/dist/esm/utilities/calibratedPixelSpacingMetadataProvider.d.ts +1 -1
- package/dist/esm/utilities/colormap.d.ts +1 -1
- package/dist/esm/utilities/convertStackToVolumeViewport.d.ts +2 -2
- package/dist/esm/utilities/convertStackToVolumeViewport.js +4 -4
- package/dist/esm/utilities/convertVolumeToStackViewport.d.ts +1 -1
- package/dist/esm/utilities/convertVolumeToStackViewport.js +3 -2
- package/dist/esm/utilities/createLinearRGBTransferFunction.d.ts +1 -1
- package/dist/esm/utilities/createLinearRGBTransferFunction.js +1 -3
- package/dist/esm/utilities/createSigmoidRGBTransferFunction.d.ts +2 -3
- package/dist/esm/utilities/createSigmoidRGBTransferFunction.js +8 -7
- package/dist/esm/utilities/decimate.d.ts +1 -1
- package/dist/esm/utilities/eventListener/TargetEventListeners.js +5 -3
- package/dist/esm/utilities/generateVolumePropsFromImageIds.d.ts +1 -1
- package/dist/esm/utilities/generateVolumePropsFromImageIds.js +33 -80
- package/dist/esm/utilities/genericMetadataProvider.d.ts +9 -2
- package/dist/esm/utilities/genericMetadataProvider.js +7 -1
- package/dist/esm/utilities/getBufferConfiguration.d.ts +2 -3
- package/dist/esm/utilities/getBufferConfiguration.js +5 -15
- package/dist/esm/utilities/getClosestImageId.js +1 -1
- package/dist/esm/utilities/getClosestStackImageIndexForPoint.d.ts +1 -1
- package/dist/esm/utilities/getClosestStackImageIndexForPoint.js +2 -2
- package/dist/esm/utilities/getCurrentVolumeViewportSlice.d.ts +4 -5
- package/dist/esm/utilities/getCurrentVolumeViewportSlice.js +8 -58
- package/dist/esm/utilities/getImageLegacy.d.ts +1 -1
- package/dist/esm/utilities/getImageLegacy.js +1 -1
- package/dist/esm/utilities/getImageSliceDataForVolumeViewport.d.ts +1 -1
- package/dist/esm/utilities/getMinMax.d.ts +2 -1
- package/dist/esm/utilities/getScalingParameters.d.ts +1 -1
- package/dist/esm/utilities/getScalingParameters.js +4 -4
- package/dist/esm/utilities/getSpacingInNormalDirection.d.ts +2 -2
- package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.d.ts +1 -1
- package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.js +2 -2
- package/dist/esm/utilities/getViewportImageCornersInWorld.d.ts +1 -1
- package/dist/esm/utilities/getViewportImageIds.d.ts +1 -1
- package/dist/esm/utilities/getViewportImageIds.js +1 -1
- package/dist/esm/utilities/getViewportModality.d.ts +7 -3
- package/dist/esm/utilities/getViewportModality.js +9 -6
- package/dist/esm/utilities/getViewportsWithImageURI.d.ts +2 -2
- package/dist/esm/utilities/getViewportsWithVolumeId.d.ts +2 -2
- package/dist/esm/utilities/getViewportsWithVolumeId.js +3 -7
- package/dist/esm/utilities/getVoiFromSigmoidRGBTransferFunction.d.ts +1 -1
- package/dist/esm/utilities/getVolumeActorCorners.d.ts +2 -2
- package/dist/esm/utilities/getVolumeId.js +2 -2
- package/dist/esm/utilities/getVolumeSliceRangeInfo.d.ts +1 -1
- package/dist/esm/utilities/getVolumeViewportScrollInfo.d.ts +1 -1
- package/dist/esm/utilities/getVolumeViewportsContainingSameVolumes.d.ts +2 -2
- package/dist/esm/utilities/hasFloatScalingParameters.d.ts +1 -1
- package/dist/esm/utilities/imageRetrieveMetadataProvider.d.ts +1 -1
- package/dist/esm/utilities/imageToWorldCoords.d.ts +1 -1
- package/dist/esm/utilities/imageToWorldCoords.js +2 -2
- package/dist/esm/utilities/index.d.ts +3 -8
- package/dist/esm/utilities/index.js +4 -8
- package/dist/esm/utilities/indexWithinDimensions.d.ts +1 -1
- package/dist/esm/utilities/invertRgbTransferFunction.d.ts +2 -1
- package/dist/esm/utilities/isEqual.js +6 -1
- package/dist/esm/utilities/isPTPrescaledWithSUV.d.ts +1 -1
- package/dist/esm/utilities/isPTPrescaledWithSUV.js +1 -1
- package/dist/esm/utilities/isValidVolume.js +1 -1
- package/dist/esm/utilities/loadImageToCanvas.d.ts +6 -6
- package/dist/esm/utilities/loadImageToCanvas.js +1 -1
- package/dist/esm/utilities/makeVolumeMetadata.d.ts +2 -2
- package/dist/esm/utilities/makeVolumeMetadata.js +5 -5
- package/dist/esm/utilities/planar.d.ts +2 -2
- package/dist/esm/utilities/renderToCanvasCPU.d.ts +1 -1
- package/dist/esm/utilities/renderToCanvasGPU.d.ts +2 -2
- package/dist/esm/utilities/renderToCanvasGPU.js +1 -1
- package/dist/esm/utilities/scaleRgbTransferFunction.d.ts +2 -1
- package/dist/esm/utilities/snapFocalPointToSlice.d.ts +1 -1
- package/dist/esm/utilities/sortImageIdsAndGetSpacing.d.ts +5 -5
- package/dist/esm/utilities/sortImageIdsAndGetSpacing.js +2 -1
- package/dist/esm/utilities/transformCanvasToIJK.d.ts +2 -2
- package/dist/esm/utilities/transformIJKToCanvas.d.ts +1 -1
- package/dist/esm/utilities/triggerEvent.js +1 -1
- package/dist/esm/utilities/updateVTKImageDataWithCornerstoneImage.d.ts +2 -2
- package/dist/esm/utilities/updateVTKImageDataWithCornerstoneImage.js +1 -1
- package/dist/esm/utilities/uuidv4.js +3 -1
- package/dist/esm/utilities/worldToImageCoords.d.ts +1 -1
- package/dist/esm/utilities/worldToImageCoords.js +2 -2
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +6 -6
- package/dist/esm/cache/utils/restoreImagesFromBuffer.d.ts +0 -2
- package/dist/esm/cache/utils/restoreImagesFromBuffer.js +0 -28
- package/dist/esm/enums/SharedArrayBufferModes.d.ts +0 -6
- package/dist/esm/enums/SharedArrayBufferModes.js +0 -7
- package/dist/esm/utilities/cacheUtils.d.ts +0 -2
- package/dist/esm/utilities/cacheUtils.js +0 -86
- package/dist/esm/utilities/createFloat32SharedArray.d.ts +0 -2
- package/dist/esm/utilities/createFloat32SharedArray.js +0 -27
- package/dist/esm/utilities/createInt16SharedArray.d.ts +0 -2
- package/dist/esm/utilities/createInt16SharedArray.js +0 -11
- package/dist/esm/utilities/createUInt16SharedArray.d.ts +0 -2
- package/dist/esm/utilities/createUInt16SharedArray.js +0 -11
- package/dist/esm/utilities/createUint8SharedArray.d.ts +0 -2
- package/dist/esm/utilities/createUint8SharedArray.js +0 -12
- package/dist/esm/utilities/getScalarDataType.d.ts +0 -2
- package/dist/esm/utilities/getScalarDataType.js +0 -19
- package/dist/esm/utilities/isTypedArray.d.ts +0 -1
- package/dist/esm/utilities/isTypedArray.js +0 -11
|
@@ -1,48 +1,44 @@
|
|
|
1
|
-
import { ICache, IImage, IGeometry, IImageLoadObject, IVolumeLoadObject, IGeometryLoadObject, ICachedImage, IImageVolume } from '../types';
|
|
1
|
+
import type { ICache, IImage, IGeometry, IImageLoadObject, IVolumeLoadObject, IGeometryLoadObject, ICachedImage, IImageVolume } from '../types';
|
|
2
2
|
declare class Cache implements ICache {
|
|
3
3
|
private readonly _imageCache;
|
|
4
4
|
private readonly _volumeCache;
|
|
5
5
|
private readonly _geometryCache;
|
|
6
6
|
private _imageCacheSize;
|
|
7
|
-
private _volumeCacheSize;
|
|
8
7
|
private _maxCacheSize;
|
|
9
|
-
private _maxInstanceSize;
|
|
10
|
-
constructor();
|
|
11
8
|
setMaxCacheSize: (newMaxCacheSize: number) => void;
|
|
12
|
-
isCacheable: (byteLength:
|
|
9
|
+
isCacheable: (byteLength: any) => boolean;
|
|
13
10
|
getMaxCacheSize: () => number;
|
|
14
|
-
getMaxInstanceSize: () => number;
|
|
15
11
|
getCacheSize: () => number;
|
|
16
12
|
getBytesAvailable(): number;
|
|
17
13
|
private _decacheImage;
|
|
18
14
|
private _decacheVolume;
|
|
19
15
|
purgeCache: () => void;
|
|
20
16
|
purgeVolumeCache: () => void;
|
|
21
|
-
decacheIfNecessaryUntilBytesAvailable(numBytes: number, volumeImageIds?:
|
|
17
|
+
decacheIfNecessaryUntilBytesAvailable(numBytes: number, volumeImageIds?: string[]): number | undefined;
|
|
22
18
|
private _putImageCommon;
|
|
23
|
-
putImageLoadObject(imageId: string, imageLoadObject: IImageLoadObject): Promise<
|
|
19
|
+
putImageLoadObject(imageId: string, imageLoadObject: IImageLoadObject): Promise<void>;
|
|
24
20
|
putImageSync(imageId: string, image: IImage): void;
|
|
25
|
-
getImageLoadObject(imageId: string): IImageLoadObject;
|
|
21
|
+
getImageLoadObject(imageId: string): IImageLoadObject | undefined;
|
|
26
22
|
isLoaded(imageId: string): boolean;
|
|
27
23
|
getVolumeContainingImageId(imageId: string): {
|
|
28
24
|
volume: IImageVolume;
|
|
29
25
|
imageIdIndex: number;
|
|
30
|
-
};
|
|
26
|
+
} | undefined;
|
|
31
27
|
getCachedImageBasedOnImageURI(imageId: string): ICachedImage | undefined;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
28
|
+
private _putVolumeCommon;
|
|
29
|
+
putVolumeSync(volumeId: string, volume: IImageVolume): void;
|
|
30
|
+
putVolumeLoadObject(volumeId: string, volumeLoadObject: IVolumeLoadObject): Promise<void>;
|
|
31
|
+
getVolumeLoadObject: (volumeId: string) => IVolumeLoadObject | undefined;
|
|
32
|
+
getGeometry: (geometryId: string) => IGeometry | undefined;
|
|
33
|
+
getImage: (imageId: string) => IImage | undefined;
|
|
34
|
+
getVolume: (volumeId: string) => IImageVolume | undefined;
|
|
35
|
+
getVolumes: () => IImageVolume[];
|
|
36
|
+
filterVolumesByReferenceId: (volumeId: string) => IImageVolume[];
|
|
39
37
|
removeImageLoadObject: (imageId: string) => void;
|
|
40
38
|
removeVolumeLoadObject: (volumeId: string) => void;
|
|
41
39
|
putGeometryLoadObject: (geometryId: string, geometryLoadObject: IGeometryLoadObject) => Promise<void>;
|
|
42
40
|
incrementImageCacheSize: (increment: number) => void;
|
|
43
|
-
incrementVolumeCacheSize: (increment: number) => void;
|
|
44
41
|
decrementImageCacheSize: (decrement: number) => void;
|
|
45
|
-
decrementVolumeCacheSize: (decrement: number) => void;
|
|
46
42
|
}
|
|
47
43
|
declare const cache: Cache;
|
|
48
44
|
export default cache;
|
package/dist/esm/cache/cache.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import triggerEvent from '../utilities/triggerEvent';
|
|
2
|
+
import imageIdToURI from '../utilities/imageIdToURI';
|
|
2
3
|
import eventTarget from '../eventTarget';
|
|
3
4
|
import Events from '../enums/Events';
|
|
4
|
-
import { restoreImagesFromBuffer } from './utils/restoreImagesFromBuffer';
|
|
5
5
|
const ONE_GB = 1073741824;
|
|
6
6
|
class Cache {
|
|
7
7
|
constructor() {
|
|
8
8
|
this._imageCache = new Map();
|
|
9
9
|
this._volumeCache = new Map();
|
|
10
|
+
this._geometryCache = new Map();
|
|
10
11
|
this._imageCacheSize = 0;
|
|
11
|
-
this._volumeCacheSize = 0;
|
|
12
12
|
this._maxCacheSize = 3 * ONE_GB;
|
|
13
|
-
this._maxInstanceSize = 4 * ONE_GB - 8;
|
|
14
13
|
this.setMaxCacheSize = (newMaxCacheSize) => {
|
|
15
14
|
if (!newMaxCacheSize || typeof newMaxCacheSize !== 'number') {
|
|
16
15
|
const errorMessage = `New max cacheSize ${this._maxCacheSize} should be defined and should be a number.`;
|
|
@@ -19,19 +18,27 @@ class Cache {
|
|
|
19
18
|
this._maxCacheSize = newMaxCacheSize;
|
|
20
19
|
};
|
|
21
20
|
this.isCacheable = (byteLength) => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
const bytesAvailable = this.getBytesAvailable();
|
|
22
|
+
const purgableImageBytes = Array.from(this._imageCache.values()).reduce((total, image) => {
|
|
23
|
+
if (!image.sharedCacheKey) {
|
|
24
|
+
return total + image.sizeInBytes;
|
|
25
|
+
}
|
|
26
|
+
return total;
|
|
27
|
+
}, 0);
|
|
28
|
+
const availableSpaceWithoutSharedCacheKey = bytesAvailable + purgableImageBytes;
|
|
29
|
+
return availableSpaceWithoutSharedCacheKey >= byteLength;
|
|
29
30
|
};
|
|
30
31
|
this.getMaxCacheSize = () => this._maxCacheSize;
|
|
31
|
-
this.
|
|
32
|
-
this.getCacheSize = () => this._imageCacheSize + this._volumeCacheSize;
|
|
32
|
+
this.getCacheSize = () => this._imageCacheSize;
|
|
33
33
|
this._decacheImage = (imageId) => {
|
|
34
|
-
const
|
|
34
|
+
const cachedImage = this._imageCache.get(imageId);
|
|
35
|
+
if (!cachedImage) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (cachedImage.sharedCacheKey) {
|
|
39
|
+
throw new Error('Cannot decache an image with a shared cache key. You need to manually decache the volume first.');
|
|
40
|
+
}
|
|
41
|
+
const { imageLoadObject } = cachedImage;
|
|
35
42
|
if (imageLoadObject.cancelFn) {
|
|
36
43
|
imageLoadObject.cancelFn();
|
|
37
44
|
}
|
|
@@ -42,24 +49,35 @@ class Cache {
|
|
|
42
49
|
};
|
|
43
50
|
this._decacheVolume = (volumeId) => {
|
|
44
51
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
52
|
+
if (!cachedVolume) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
45
55
|
const { volumeLoadObject, volume } = cachedVolume;
|
|
56
|
+
if (!volume) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
46
59
|
if (volume.cancelLoading) {
|
|
47
60
|
volume.cancelLoading();
|
|
48
61
|
}
|
|
49
62
|
if (volume.imageData) {
|
|
50
63
|
volume.imageData.delete();
|
|
51
64
|
}
|
|
52
|
-
restoreImagesFromBuffer(volume);
|
|
53
65
|
if (volumeLoadObject.cancelFn) {
|
|
54
66
|
volumeLoadObject.cancelFn();
|
|
55
67
|
}
|
|
56
|
-
if (
|
|
57
|
-
|
|
68
|
+
if (volume.imageIds) {
|
|
69
|
+
volume.imageIds.forEach((imageId) => {
|
|
70
|
+
const cachedImage = this._imageCache.get(imageId);
|
|
71
|
+
if (cachedImage && cachedImage.sharedCacheKey === volumeId) {
|
|
72
|
+
cachedImage.sharedCacheKey = undefined;
|
|
73
|
+
}
|
|
74
|
+
});
|
|
58
75
|
}
|
|
59
76
|
this._volumeCache.delete(volumeId);
|
|
60
77
|
};
|
|
61
78
|
this.purgeCache = () => {
|
|
62
79
|
const imageIterator = this._imageCache.keys();
|
|
80
|
+
this.purgeVolumeCache();
|
|
63
81
|
while (true) {
|
|
64
82
|
const { value: imageId, done } = imageIterator.next();
|
|
65
83
|
if (done) {
|
|
@@ -68,7 +86,6 @@ class Cache {
|
|
|
68
86
|
this.removeImageLoadObject(imageId);
|
|
69
87
|
triggerEvent(eventTarget, Events.IMAGE_CACHE_IMAGE_REMOVED, { imageId });
|
|
70
88
|
}
|
|
71
|
-
this.purgeVolumeCache();
|
|
72
89
|
};
|
|
73
90
|
this.purgeVolumeCache = () => {
|
|
74
91
|
const volumeIterator = this._volumeCache.keys();
|
|
@@ -88,7 +105,7 @@ class Cache {
|
|
|
88
105
|
throw new Error('getVolumeLoadObject: volumeId must not be undefined');
|
|
89
106
|
}
|
|
90
107
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
91
|
-
if (cachedVolume
|
|
108
|
+
if (!cachedVolume) {
|
|
92
109
|
return;
|
|
93
110
|
}
|
|
94
111
|
cachedVolume.timeStamp = Date.now();
|
|
@@ -99,7 +116,7 @@ class Cache {
|
|
|
99
116
|
throw new Error('getGeometry: geometryId must not be undefined');
|
|
100
117
|
}
|
|
101
118
|
const cachedGeometry = this._geometryCache.get(geometryId);
|
|
102
|
-
if (cachedGeometry
|
|
119
|
+
if (!cachedGeometry) {
|
|
103
120
|
return;
|
|
104
121
|
}
|
|
105
122
|
cachedGeometry.timeStamp = Date.now();
|
|
@@ -110,7 +127,7 @@ class Cache {
|
|
|
110
127
|
throw new Error('getImage: imageId must not be undefined');
|
|
111
128
|
}
|
|
112
129
|
const cachedImage = this._imageCache.get(imageId);
|
|
113
|
-
if (cachedImage
|
|
130
|
+
if (!cachedImage) {
|
|
114
131
|
return;
|
|
115
132
|
}
|
|
116
133
|
cachedImage.timeStamp = Date.now();
|
|
@@ -121,7 +138,7 @@ class Cache {
|
|
|
121
138
|
throw new Error('getVolume: volumeId must not be undefined');
|
|
122
139
|
}
|
|
123
140
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
124
|
-
if (cachedVolume
|
|
141
|
+
if (!cachedVolume) {
|
|
125
142
|
return;
|
|
126
143
|
}
|
|
127
144
|
cachedVolume.timeStamp = Date.now();
|
|
@@ -142,7 +159,7 @@ class Cache {
|
|
|
142
159
|
throw new Error('removeImageLoadObject: imageId must not be undefined');
|
|
143
160
|
}
|
|
144
161
|
const cachedImage = this._imageCache.get(imageId);
|
|
145
|
-
if (cachedImage
|
|
162
|
+
if (!cachedImage) {
|
|
146
163
|
throw new Error('removeImageLoadObject: imageId was not present in imageCache');
|
|
147
164
|
}
|
|
148
165
|
this.incrementImageCacheSize(-cachedImage.sizeInBytes);
|
|
@@ -158,10 +175,9 @@ class Cache {
|
|
|
158
175
|
throw new Error('removeVolumeLoadObject: volumeId must not be undefined');
|
|
159
176
|
}
|
|
160
177
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
161
|
-
if (cachedVolume
|
|
178
|
+
if (!cachedVolume) {
|
|
162
179
|
throw new Error('removeVolumeLoadObject: volumeId was not present in volumeCache');
|
|
163
180
|
}
|
|
164
|
-
this.incrementVolumeCacheSize(-cachedVolume.sizeInBytes);
|
|
165
181
|
const eventDetails = {
|
|
166
182
|
volume: cachedVolume,
|
|
167
183
|
volumeId,
|
|
@@ -211,16 +227,9 @@ class Cache {
|
|
|
211
227
|
this.incrementImageCacheSize = (increment) => {
|
|
212
228
|
this._imageCacheSize += increment;
|
|
213
229
|
};
|
|
214
|
-
this.incrementVolumeCacheSize = (increment) => {
|
|
215
|
-
this._volumeCacheSize += increment;
|
|
216
|
-
};
|
|
217
230
|
this.decrementImageCacheSize = (decrement) => {
|
|
218
231
|
this._imageCacheSize -= decrement;
|
|
219
232
|
};
|
|
220
|
-
this.decrementVolumeCacheSize = (decrement) => {
|
|
221
|
-
this._volumeCacheSize -= decrement;
|
|
222
|
-
};
|
|
223
|
-
this._geometryCache = new Map();
|
|
224
233
|
}
|
|
225
234
|
getBytesAvailable() {
|
|
226
235
|
return this.getMaxCacheSize() - this.getCacheSize();
|
|
@@ -230,7 +239,7 @@ class Cache {
|
|
|
230
239
|
if (bytesAvailable >= numBytes) {
|
|
231
240
|
return bytesAvailable;
|
|
232
241
|
}
|
|
233
|
-
|
|
242
|
+
const cachedImages = Array.from(this._imageCache.values()).filter((cachedImage) => !cachedImage.sharedCacheKey);
|
|
234
243
|
function compare(a, b) {
|
|
235
244
|
if (a.timeStamp > b.timeStamp) {
|
|
236
245
|
return 1;
|
|
@@ -241,7 +250,7 @@ class Cache {
|
|
|
241
250
|
return 0;
|
|
242
251
|
}
|
|
243
252
|
cachedImages.sort(compare);
|
|
244
|
-
|
|
253
|
+
const cachedImageIds = cachedImages.map((im) => im.imageId);
|
|
245
254
|
let imageIdsToPurge = cachedImageIds;
|
|
246
255
|
if (volumeImageIds) {
|
|
247
256
|
imageIdsToPurge = cachedImageIds.filter((id) => !volumeImageIds.includes(id));
|
|
@@ -254,8 +263,6 @@ class Cache {
|
|
|
254
263
|
return bytesAvailable;
|
|
255
264
|
}
|
|
256
265
|
}
|
|
257
|
-
cachedImages = Array.from(this._imageCache.values());
|
|
258
|
-
cachedImageIds = cachedImages.map((im) => im.imageId);
|
|
259
266
|
for (const imageId of cachedImageIds) {
|
|
260
267
|
this.removeImageLoadObject(imageId);
|
|
261
268
|
triggerEvent(eventTarget, Events.IMAGE_CACHE_IMAGE_REMOVED, { imageId });
|
|
@@ -290,18 +297,22 @@ class Cache {
|
|
|
290
297
|
triggerEvent(eventTarget, Events.IMAGE_CACHE_IMAGE_ADDED, eventDetails);
|
|
291
298
|
cachedImage.sharedCacheKey = image.sharedCacheKey;
|
|
292
299
|
}
|
|
293
|
-
putImageLoadObject(imageId, imageLoadObject) {
|
|
300
|
+
async putImageLoadObject(imageId, imageLoadObject) {
|
|
294
301
|
if (imageId === undefined) {
|
|
302
|
+
console.error('putImageLoadObject: imageId must not be undefined');
|
|
295
303
|
throw new Error('putImageLoadObject: imageId must not be undefined');
|
|
296
304
|
}
|
|
297
305
|
if (imageLoadObject.promise === undefined) {
|
|
306
|
+
console.error('putImageLoadObject: imageLoadObject.promise must not be undefined');
|
|
298
307
|
throw new Error('putImageLoadObject: imageLoadObject.promise must not be undefined');
|
|
299
308
|
}
|
|
300
309
|
if (this._imageCache.has(imageId)) {
|
|
310
|
+
console.warn(`putImageLoadObject: imageId ${imageId} already in cache`);
|
|
301
311
|
throw new Error('putImageLoadObject: imageId already in cache');
|
|
302
312
|
}
|
|
303
313
|
if (imageLoadObject.cancelFn &&
|
|
304
314
|
typeof imageLoadObject.cancelFn !== 'function') {
|
|
315
|
+
console.error('putImageLoadObject: imageLoadObject.cancel must be a function');
|
|
305
316
|
throw new Error('putImageLoadObject: imageLoadObject.cancel must be a function');
|
|
306
317
|
}
|
|
307
318
|
const cachedImage = {
|
|
@@ -313,11 +324,19 @@ class Cache {
|
|
|
313
324
|
sizeInBytes: 0,
|
|
314
325
|
};
|
|
315
326
|
this._imageCache.set(imageId, cachedImage);
|
|
327
|
+
this._imageCache.set(imageId, cachedImage);
|
|
316
328
|
return imageLoadObject.promise
|
|
317
329
|
.then((image) => {
|
|
318
|
-
|
|
330
|
+
try {
|
|
331
|
+
this._putImageCommon(imageId, image, cachedImage);
|
|
332
|
+
}
|
|
333
|
+
catch (error) {
|
|
334
|
+
console.debug(`Error in _putImageCommon for image ${imageId}:`, error);
|
|
335
|
+
throw error;
|
|
336
|
+
}
|
|
319
337
|
})
|
|
320
338
|
.catch((error) => {
|
|
339
|
+
console.debug(`Error caching image ${imageId}:`, error);
|
|
321
340
|
this._imageCache.delete(imageId);
|
|
322
341
|
throw error;
|
|
323
342
|
});
|
|
@@ -353,7 +372,7 @@ class Cache {
|
|
|
353
372
|
throw new Error('getImageLoadObject: imageId must not be undefined');
|
|
354
373
|
}
|
|
355
374
|
const cachedImage = this._imageCache.get(imageId);
|
|
356
|
-
if (cachedImage
|
|
375
|
+
if (!cachedImage) {
|
|
357
376
|
return;
|
|
358
377
|
}
|
|
359
378
|
cachedImage.timeStamp = Date.now();
|
|
@@ -371,8 +390,11 @@ class Cache {
|
|
|
371
390
|
const imageIdToUse = imageIdToURI(imageId);
|
|
372
391
|
for (const volumeId of volumeIds) {
|
|
373
392
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
393
|
+
if (!cachedVolume) {
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
374
396
|
const { volume } = cachedVolume;
|
|
375
|
-
if (!volume
|
|
397
|
+
if (!volume.imageIds.length) {
|
|
376
398
|
return;
|
|
377
399
|
}
|
|
378
400
|
const imageIdIndex = volume.getImageURIIndex(imageIdToUse);
|
|
@@ -392,7 +414,50 @@ class Cache {
|
|
|
392
414
|
}
|
|
393
415
|
return this._imageCache.get(foundImageId);
|
|
394
416
|
}
|
|
395
|
-
|
|
417
|
+
_putVolumeCommon(volumeId, volume, cachedVolume) {
|
|
418
|
+
if (!this._volumeCache.get(volumeId)) {
|
|
419
|
+
console.warn('The volume was purged from the cache before it completed loading.');
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
cachedVolume.loaded = true;
|
|
423
|
+
cachedVolume.volume = volume;
|
|
424
|
+
volume.imageIds?.forEach((imageId) => {
|
|
425
|
+
const image = this._imageCache.get(imageId);
|
|
426
|
+
if (image) {
|
|
427
|
+
image.sharedCacheKey = volumeId;
|
|
428
|
+
}
|
|
429
|
+
});
|
|
430
|
+
const eventDetails = {
|
|
431
|
+
volume: cachedVolume,
|
|
432
|
+
};
|
|
433
|
+
triggerEvent(eventTarget, Events.VOLUME_CACHE_VOLUME_ADDED, eventDetails);
|
|
434
|
+
}
|
|
435
|
+
putVolumeSync(volumeId, volume) {
|
|
436
|
+
if (volumeId === undefined) {
|
|
437
|
+
throw new Error('putVolumeSync: volumeId must not be undefined');
|
|
438
|
+
}
|
|
439
|
+
if (this._volumeCache.has(volumeId)) {
|
|
440
|
+
throw new Error('putVolumeSync: volumeId already in cache');
|
|
441
|
+
}
|
|
442
|
+
const cachedVolume = {
|
|
443
|
+
loaded: false,
|
|
444
|
+
volumeId,
|
|
445
|
+
volumeLoadObject: {
|
|
446
|
+
promise: Promise.resolve(volume),
|
|
447
|
+
},
|
|
448
|
+
timeStamp: Date.now(),
|
|
449
|
+
sizeInBytes: 0,
|
|
450
|
+
};
|
|
451
|
+
this._volumeCache.set(volumeId, cachedVolume);
|
|
452
|
+
try {
|
|
453
|
+
this._putVolumeCommon(volumeId, volume, cachedVolume);
|
|
454
|
+
}
|
|
455
|
+
catch (error) {
|
|
456
|
+
this._volumeCache.delete(volumeId);
|
|
457
|
+
throw error;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
async putVolumeLoadObject(volumeId, volumeLoadObject) {
|
|
396
461
|
if (volumeId === undefined) {
|
|
397
462
|
throw new Error('putVolumeLoadObject: volumeId must not be undefined');
|
|
398
463
|
}
|
|
@@ -416,24 +481,14 @@ class Cache {
|
|
|
416
481
|
this._volumeCache.set(volumeId, cachedVolume);
|
|
417
482
|
return volumeLoadObject.promise
|
|
418
483
|
.then((volume) => {
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
return;
|
|
484
|
+
try {
|
|
485
|
+
this._putVolumeCommon(volumeId, volume, cachedVolume);
|
|
422
486
|
}
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
throw new Error('putVolumeLoadObject: volume.sizeInBytes is not a number');
|
|
487
|
+
catch (error) {
|
|
488
|
+
console.error(`Error in _putVolumeCommon for volume ${volumeId}:`, error);
|
|
489
|
+
this._volumeCache.delete(volumeId);
|
|
490
|
+
throw error;
|
|
428
491
|
}
|
|
429
|
-
this.decacheIfNecessaryUntilBytesAvailable(volume.sizeInBytes, volume.imageIds);
|
|
430
|
-
cachedVolume.volume = volume;
|
|
431
|
-
cachedVolume.sizeInBytes = volume.sizeInBytes;
|
|
432
|
-
this.incrementVolumeCacheSize(cachedVolume.sizeInBytes);
|
|
433
|
-
const eventDetails = {
|
|
434
|
-
volume: cachedVolume,
|
|
435
|
-
};
|
|
436
|
-
triggerEvent(eventTarget, Events.VOLUME_CACHE_VOLUME_ADDED, eventDetails);
|
|
437
492
|
})
|
|
438
493
|
.catch((error) => {
|
|
439
494
|
this._volumeCache.delete(volumeId);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Point3, ContourData, IContour } from '../../types';
|
|
2
|
-
import { ContourType } from '../../enums';
|
|
3
|
-
|
|
1
|
+
import type { Point3, ContourData, IContour } from '../../types';
|
|
2
|
+
import type { ContourType } from '../../enums';
|
|
3
|
+
interface ContourProps {
|
|
4
4
|
id: string;
|
|
5
5
|
data: ContourData;
|
|
6
6
|
color: Point3;
|
|
7
7
|
segmentIndex: number;
|
|
8
|
-
}
|
|
8
|
+
}
|
|
9
9
|
export declare class Contour implements IContour {
|
|
10
10
|
readonly id: string;
|
|
11
11
|
readonly sizeInBytes: number;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Point3, IContourSet, IContour, ContourData } from '../../types';
|
|
1
|
+
import type { Point3, IContourSet, IContour, ContourData } from '../../types';
|
|
2
2
|
import Contour from './Contour';
|
|
3
|
-
|
|
3
|
+
interface ContourSetProps {
|
|
4
4
|
id: string;
|
|
5
5
|
data: ContourData[];
|
|
6
6
|
frameOfReferenceUID: string;
|
|
7
7
|
segmentIndex: number;
|
|
8
8
|
color?: Point3;
|
|
9
|
-
}
|
|
9
|
+
}
|
|
10
10
|
export declare class ContourSet implements IContourSet {
|
|
11
11
|
readonly id: string;
|
|
12
12
|
readonly sizeInBytes: number;
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import vtkImageData from '@kitware/vtk.js/Common/DataModel/ImageData';
|
|
2
|
-
import { Metadata, Point3, IImageVolume, Mat3,
|
|
2
|
+
import type { Metadata, Point3, IImageVolume, Mat3, ImageVolumeProps, IImage, PixelDataTypedArrayString, RGB, IVoxelManager } from '../../types';
|
|
3
|
+
import type vtkOpenGLTexture from '@kitware/vtk.js/Rendering/OpenGL/Texture';
|
|
4
|
+
export interface vtkStreamingOpenGLTexture extends vtkOpenGLTexture {
|
|
5
|
+
setUpdatedFrame: (frame: number) => void;
|
|
6
|
+
setVolumeId: (volumeId: string) => void;
|
|
7
|
+
releaseGraphicsResources: () => void;
|
|
8
|
+
}
|
|
3
9
|
export declare class ImageVolume implements IImageVolume {
|
|
4
10
|
private _imageIds;
|
|
5
11
|
private _imageIdsIndexMap;
|
|
6
12
|
private _imageURIsIndexMap;
|
|
7
|
-
protected scalarData: PixelDataTypedArray | Array<PixelDataTypedArray>;
|
|
8
13
|
protected numFrames: number;
|
|
9
14
|
protected totalNumFrames: number;
|
|
10
15
|
protected cornerstoneImageMetaData: any;
|
|
11
16
|
readonly volumeId: string;
|
|
12
|
-
imageCacheOffsetMap: Map<any, any>;
|
|
13
17
|
isPreScaled: boolean;
|
|
14
18
|
dimensions: Point3;
|
|
15
19
|
direction: Mat3;
|
|
@@ -23,39 +27,35 @@ export declare class ImageVolume implements IImageVolume {
|
|
|
23
27
|
suvbwToSuvbsa?: number;
|
|
24
28
|
};
|
|
25
29
|
};
|
|
26
|
-
sizeInBytes?: number;
|
|
27
30
|
spacing: Point3;
|
|
28
31
|
numVoxels: number;
|
|
29
32
|
imageData?: vtkImageData;
|
|
30
|
-
vtkOpenGLTexture:
|
|
31
|
-
loadStatus?: Record<string,
|
|
33
|
+
vtkOpenGLTexture: vtkStreamingOpenGLTexture;
|
|
34
|
+
loadStatus?: Record<string, unknown>;
|
|
32
35
|
referencedVolumeId?: string;
|
|
33
|
-
referencedImageIds?:
|
|
36
|
+
referencedImageIds?: string[];
|
|
34
37
|
hasPixelSpacing: boolean;
|
|
35
|
-
additionalDetails?: Record<string,
|
|
38
|
+
additionalDetails?: Record<string, unknown>;
|
|
39
|
+
voxelManager?: IVoxelManager<number> | IVoxelManager<RGB>;
|
|
40
|
+
dataType?: PixelDataTypedArrayString;
|
|
41
|
+
numTimePoints?: number;
|
|
36
42
|
constructor(props: ImageVolumeProps);
|
|
37
|
-
get
|
|
38
|
-
|
|
43
|
+
get sizeInBytes(): number;
|
|
44
|
+
get imageIds(): string[];
|
|
45
|
+
set imageIds(newImageIds: string[]);
|
|
39
46
|
private _reprocessImageIds;
|
|
40
47
|
cancelLoading: () => void;
|
|
41
48
|
isDynamicVolume(): boolean;
|
|
42
|
-
getScalarData(): PixelDataTypedArray;
|
|
43
49
|
getImageIdIndex(imageId: string): number;
|
|
50
|
+
getImageIdByIndex(imageIdIndex: number): string;
|
|
44
51
|
getImageURIIndex(imageURI: string): number;
|
|
45
52
|
destroy(): void;
|
|
46
|
-
|
|
53
|
+
invalidate(): void;
|
|
47
54
|
modified(): void;
|
|
48
|
-
decache(completelyRemove?: boolean): void | Array<string>;
|
|
49
55
|
removeFromCache(): void;
|
|
50
56
|
getScalarDataLength(): number;
|
|
51
57
|
private _getNumFrames;
|
|
52
|
-
private _getScalarDataLength;
|
|
53
|
-
private _createCornerstoneImageMetaData;
|
|
54
|
-
protected getScalarDataByImageIdIndex(imageIdIndex: number): PixelDataTypedArray;
|
|
55
|
-
getCornerstoneImage(imageId: string, imageIdIndex: number): IImage;
|
|
56
58
|
protected imageIdIndexToFrameIndex(imageIdIndex: number): number;
|
|
57
|
-
getCornerstoneImageLoadObject(imageId: string, imageIdIndex: number): IImageLoadObject;
|
|
58
59
|
getCornerstoneImages(): IImage[];
|
|
59
|
-
convertToImageSlicesAndCache(): string[];
|
|
60
60
|
}
|
|
61
61
|
export default ImageVolume;
|