@cornerstonejs/core 2.0.0-beta.20 → 2.0.0-beta.21
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 +36 -44
- 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 +7 -8
- package/dist/esm/RenderingEngine/RenderingEngine.js +18 -17
- package/dist/esm/RenderingEngine/StackViewport.d.ts +29 -18
- package/dist/esm/RenderingEngine/StackViewport.js +66 -50
- package/dist/esm/RenderingEngine/VideoViewport.d.ts +19 -28
- package/dist/esm/RenderingEngine/VideoViewport.js +59 -22
- package/dist/esm/RenderingEngine/Viewport.d.ts +25 -14
- package/dist/esm/RenderingEngine/Viewport.js +20 -14
- package/dist/esm/RenderingEngine/VolumeViewport.d.ts +21 -9
- package/dist/esm/RenderingEngine/VolumeViewport.js +88 -8
- 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 +2 -2
- 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 +3 -6
- 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 +10 -35
- 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/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 +110 -56
- 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 +48 -254
- package/dist/esm/cache/classes/Surface.d.ts +3 -3
- 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 +4 -3
- package/dist/esm/index.js +3 -2
- package/dist/esm/init.d.ts +5 -8
- package/dist/esm/init.js +21 -82
- package/dist/esm/loaders/ProgressiveRetrieveImages.d.ts +5 -5
- package/dist/esm/loaders/ProgressiveRetrieveImages.js +3 -1
- 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/imageLoader.d.ts +12 -17
- package/dist/esm/loaders/imageLoader.js +174 -95
- 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 +14 -22
- package/dist/esm/loaders/volumeLoader.js +62 -210
- package/dist/esm/metaData.d.ts +2 -4
- package/dist/esm/requestPool/requestPoolManager.d.ts +7 -9
- 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 +14 -11
- 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 +12 -10
- 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 +4 -4
- 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 +1 -1
- 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/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/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/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/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/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/isTypedArray.d.ts +1 -1
- package/dist/esm/utilities/loadImageToCanvas.d.ts +6 -6
- package/dist/esm/utilities/makeVolumeMetadata.d.ts +2 -2
- 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/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/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +5 -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/init.js
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import { getGPUTier } from 'detect-gpu';
|
|
2
|
-
import { SharedArrayBufferModes } from './enums';
|
|
3
1
|
import { getRenderingEngines } from './RenderingEngine/getRenderingEngine';
|
|
4
2
|
let csRenderInitialized = false;
|
|
5
|
-
let useSharedArrayBuffer = true;
|
|
6
|
-
let sharedArrayBufferMode = SharedArrayBufferModes.TRUE;
|
|
7
3
|
import { deepMerge } from './utilities';
|
|
8
4
|
import CentralizedWebWorkerManager from './webWorkerManager/webWorkerManager';
|
|
9
5
|
const defaultConfig = {
|
|
10
|
-
gpuTier:
|
|
11
|
-
detectGPUConfig: {},
|
|
6
|
+
gpuTier: { tier: 2 },
|
|
12
7
|
isMobile: false,
|
|
13
8
|
rendering: {
|
|
14
9
|
useCPURendering: false,
|
|
@@ -16,19 +11,11 @@ const defaultConfig = {
|
|
|
16
11
|
useNorm16Texture: false,
|
|
17
12
|
strictZSpacingForVolumeViewport: true,
|
|
18
13
|
},
|
|
19
|
-
|
|
14
|
+
peerImport: (moduleId) => null,
|
|
20
15
|
};
|
|
21
16
|
let config = {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
isMobile: false,
|
|
25
|
-
rendering: {
|
|
26
|
-
useCPURendering: false,
|
|
27
|
-
preferSizeOverAccuracy: false,
|
|
28
|
-
useNorm16Texture: false,
|
|
29
|
-
strictZSpacingForVolumeViewport: true,
|
|
30
|
-
},
|
|
31
|
-
enableCacheOptimization: true,
|
|
17
|
+
...defaultConfig,
|
|
18
|
+
rendering: { ...defaultConfig.rendering },
|
|
32
19
|
};
|
|
33
20
|
let webWorkerManager = null;
|
|
34
21
|
function _getGLContext() {
|
|
@@ -42,19 +29,6 @@ function _hasActiveWebGLContext() {
|
|
|
42
29
|
const gl = _getGLContext();
|
|
43
30
|
return (gl instanceof WebGLRenderingContext || gl instanceof WebGL2RenderingContext);
|
|
44
31
|
}
|
|
45
|
-
function hasSharedArrayBuffer() {
|
|
46
|
-
try {
|
|
47
|
-
if (new SharedArrayBuffer(0)) {
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
catch {
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
32
|
function _hasNorm16TextureSupport() {
|
|
59
33
|
const gl = _getGLContext();
|
|
60
34
|
if (gl) {
|
|
@@ -72,10 +46,10 @@ function isIOS() {
|
|
|
72
46
|
else {
|
|
73
47
|
return (navigator.maxTouchPoints &&
|
|
74
48
|
navigator.maxTouchPoints > 2 &&
|
|
75
|
-
|
|
49
|
+
navigator.platform.includes('MacIntel'));
|
|
76
50
|
}
|
|
77
51
|
}
|
|
78
|
-
|
|
52
|
+
function init(configuration = config) {
|
|
79
53
|
if (csRenderInitialized) {
|
|
80
54
|
return csRenderInitialized;
|
|
81
55
|
}
|
|
@@ -83,7 +57,7 @@ async function init(configuration = config) {
|
|
|
83
57
|
if (isIOS()) {
|
|
84
58
|
config.rendering.useNorm16Texture = _hasNorm16TextureSupport();
|
|
85
59
|
if (!config.rendering.useNorm16Texture) {
|
|
86
|
-
if (configuration.rendering
|
|
60
|
+
if (configuration.rendering.preferSizeOverAccuracy) {
|
|
87
61
|
config.rendering.preferSizeOverAccuracy = true;
|
|
88
62
|
}
|
|
89
63
|
else {
|
|
@@ -97,28 +71,20 @@ async function init(configuration = config) {
|
|
|
97
71
|
config.rendering.useCPURendering = true;
|
|
98
72
|
}
|
|
99
73
|
else {
|
|
100
|
-
|
|
101
|
-
config.gpuTier || (await getGPUTier(config.detectGPUConfig));
|
|
102
|
-
console.log('CornerstoneRender: Using detect-gpu to get the GPU benchmark:', config.gpuTier);
|
|
103
|
-
if (config.gpuTier?.tier < 1) {
|
|
104
|
-
console.log('CornerstoneRender: GPU is not powerful enough, using CPU rendering');
|
|
105
|
-
config.rendering.useCPURendering = true;
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
console.log('CornerstoneRender: using GPU rendering');
|
|
109
|
-
}
|
|
74
|
+
console.log('CornerstoneRender: using GPU rendering');
|
|
110
75
|
}
|
|
111
|
-
setUseSharedArrayBuffer(sharedArrayBufferMode);
|
|
112
76
|
csRenderInitialized = true;
|
|
113
77
|
if (!webWorkerManager) {
|
|
114
78
|
webWorkerManager = new CentralizedWebWorkerManager();
|
|
115
79
|
}
|
|
116
80
|
return csRenderInitialized;
|
|
117
81
|
}
|
|
118
|
-
function setUseCPURendering(status) {
|
|
82
|
+
function setUseCPURendering(status, updateViewports = true) {
|
|
119
83
|
config.rendering.useCPURendering = status;
|
|
120
84
|
csRenderInitialized = true;
|
|
121
|
-
|
|
85
|
+
if (updateViewports) {
|
|
86
|
+
_updateRenderingPipelinesForAllViewports();
|
|
87
|
+
}
|
|
122
88
|
}
|
|
123
89
|
function setPreferSizeOverAccuracy(status) {
|
|
124
90
|
config.rendering.preferSizeOverAccuracy = status;
|
|
@@ -138,38 +104,6 @@ function resetUseCPURendering() {
|
|
|
138
104
|
function getShouldUseCPURendering() {
|
|
139
105
|
return config.rendering.useCPURendering;
|
|
140
106
|
}
|
|
141
|
-
function setUseSharedArrayBuffer(mode) {
|
|
142
|
-
if (mode == SharedArrayBufferModes.AUTO) {
|
|
143
|
-
sharedArrayBufferMode = SharedArrayBufferModes.AUTO;
|
|
144
|
-
const hasSharedBuffer = hasSharedArrayBuffer();
|
|
145
|
-
if (!hasSharedBuffer) {
|
|
146
|
-
useSharedArrayBuffer = false;
|
|
147
|
-
console.warn(`CornerstoneRender: SharedArray Buffer not allowed, performance may be slower.
|
|
148
|
-
Try ensuring page is cross-origin isolated to enable SharedArrayBuffer.`);
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
useSharedArrayBuffer = true;
|
|
152
|
-
console.log('CornerstoneRender: using SharedArrayBuffer');
|
|
153
|
-
}
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
if (mode == SharedArrayBufferModes.TRUE || mode == true) {
|
|
157
|
-
sharedArrayBufferMode = SharedArrayBufferModes.TRUE;
|
|
158
|
-
useSharedArrayBuffer = true;
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
if (mode == SharedArrayBufferModes.FALSE || mode == false) {
|
|
162
|
-
sharedArrayBufferMode = SharedArrayBufferModes.FALSE;
|
|
163
|
-
useSharedArrayBuffer = false;
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
function resetUseSharedArrayBuffer() {
|
|
168
|
-
setUseSharedArrayBuffer(sharedArrayBufferMode);
|
|
169
|
-
}
|
|
170
|
-
function getShouldUseSharedArrayBuffer() {
|
|
171
|
-
return useSharedArrayBuffer;
|
|
172
|
-
}
|
|
173
107
|
function isCornerstoneInitialized() {
|
|
174
108
|
return csRenderInitialized;
|
|
175
109
|
}
|
|
@@ -181,9 +115,11 @@ function setConfiguration(c) {
|
|
|
181
115
|
_updateRenderingPipelinesForAllViewports();
|
|
182
116
|
}
|
|
183
117
|
function _updateRenderingPipelinesForAllViewports() {
|
|
184
|
-
getRenderingEngines().forEach((engine) =>
|
|
185
|
-
.getViewports()
|
|
186
|
-
|
|
118
|
+
getRenderingEngines().forEach((engine) => {
|
|
119
|
+
engine.getViewports().forEach((viewport) => {
|
|
120
|
+
viewport.updateRenderingPipeline();
|
|
121
|
+
});
|
|
122
|
+
});
|
|
187
123
|
}
|
|
188
124
|
function getWebWorkerManager() {
|
|
189
125
|
if (!webWorkerManager) {
|
|
@@ -191,4 +127,7 @@ function getWebWorkerManager() {
|
|
|
191
127
|
}
|
|
192
128
|
return webWorkerManager;
|
|
193
129
|
}
|
|
194
|
-
|
|
130
|
+
function peerImport(moduleId) {
|
|
131
|
+
return config.peerImport(moduleId);
|
|
132
|
+
}
|
|
133
|
+
export { init, getShouldUseCPURendering, isCornerstoneInitialized, setUseCPURendering, setPreferSizeOverAccuracy, resetUseCPURendering, getConfiguration, setConfiguration, getWebWorkerManager, canRenderFloatTextures, peerImport, };
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { IRetrieveConfiguration, IImagesLoader, RetrieveStage, ImageLoadListener, RetrieveOptions } from '../types';
|
|
1
|
+
import type { IRetrieveConfiguration, IImagesLoader, RetrieveStage, ImageLoadListener, RetrieveOptions } from '../types';
|
|
2
2
|
import singleRetrieveStages from './configuration/singleRetrieve';
|
|
3
3
|
import sequentialRetrieveStages from './configuration/sequentialRetrieve';
|
|
4
4
|
import interleavedRetrieveStages from './configuration/interleavedRetrieve';
|
|
5
5
|
import { ImageQualityStatus } from '../enums';
|
|
6
6
|
export { sequentialRetrieveStages, interleavedRetrieveStages, singleRetrieveStages, };
|
|
7
|
-
export
|
|
7
|
+
export interface NearbyRequest {
|
|
8
8
|
itemId: string;
|
|
9
9
|
linearId?: string;
|
|
10
10
|
imageQualityStatus: ImageQualityStatus;
|
|
11
|
-
}
|
|
12
|
-
export
|
|
11
|
+
}
|
|
12
|
+
export interface ProgressiveRequest {
|
|
13
13
|
imageId: string;
|
|
14
14
|
stage: RetrieveStage;
|
|
15
15
|
next?: ProgressiveRequest;
|
|
16
16
|
nearbyRequests?: NearbyRequest[];
|
|
17
|
-
}
|
|
17
|
+
}
|
|
18
18
|
export declare class ProgressiveRetrieveImages implements IImagesLoader, IRetrieveConfiguration {
|
|
19
19
|
static createProgressive: typeof createProgressive;
|
|
20
20
|
static interleavedRetrieveStages: {
|
|
@@ -186,7 +186,9 @@ class ProgressiveRetrieveImagesInstance {
|
|
|
186
186
|
for (const stage of this.stages) {
|
|
187
187
|
const indices = stage.positions ||
|
|
188
188
|
decimate(this.imageIds, stage.decimate || 1, stage.offset ?? 0);
|
|
189
|
-
indices.forEach((index) =>
|
|
189
|
+
indices.forEach((index) => {
|
|
190
|
+
addStageInstance(stage, index);
|
|
191
|
+
});
|
|
190
192
|
}
|
|
191
193
|
return interleaved;
|
|
192
194
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ImageLoadListener } from '../types';
|
|
2
|
-
import { ImageQualityStatus } from '../enums';
|
|
1
|
+
import type { ImageLoadListener } from '../types';
|
|
2
|
+
import type { ImageQualityStatus } from '../enums';
|
|
3
3
|
export declare function fillNearbyFrames(listener: ImageLoadListener, imageQualityStatusMap: Map<string, ImageQualityStatus>, request: any, image: any, options: any): void;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import '@kitware/vtk.js/Rendering/Profiles/Geometry';
|
|
2
2
|
import { GeometryType } from '../enums';
|
|
3
|
-
import { IGeometry, PublicContourSetData, PublicSurfaceData } from '../types';
|
|
4
|
-
|
|
3
|
+
import type { IGeometry, PublicContourSetData, PublicSurfaceData } from '../types';
|
|
4
|
+
interface GeometryOptions {
|
|
5
5
|
type: GeometryType;
|
|
6
6
|
geometryData: PublicContourSetData | PublicSurfaceData;
|
|
7
|
-
}
|
|
7
|
+
}
|
|
8
8
|
declare function createAndCacheGeometry(geometryId: string, options: GeometryOptions): Promise<IGeometry>;
|
|
9
9
|
export { createAndCacheGeometry };
|
|
@@ -1,43 +1,38 @@
|
|
|
1
|
-
import { IImage, ImageLoaderFn, Point2, Point3, Mat3, PixelDataTypedArrayString, PixelDataTypedArray } from '../types';
|
|
1
|
+
import type { IImage, ImageLoaderFn, Point2, Point3, Mat3, PixelDataTypedArrayString, PixelDataTypedArray } from '../types';
|
|
2
2
|
export interface ImageLoaderOptions {
|
|
3
3
|
priority: number;
|
|
4
4
|
requestType: string;
|
|
5
5
|
additionalDetails?: Record<string, unknown>;
|
|
6
6
|
ignoreCache?: boolean;
|
|
7
7
|
}
|
|
8
|
-
interface
|
|
9
|
-
imageIds: Array<string>;
|
|
10
|
-
promises: Array<Promise<IImage>>;
|
|
11
|
-
}
|
|
12
|
-
type LocalImageOptions = {
|
|
8
|
+
interface LocalImageOptions {
|
|
13
9
|
scalarData?: PixelDataTypedArray;
|
|
14
10
|
targetBufferType?: PixelDataTypedArrayString;
|
|
15
11
|
dimensions?: Point2;
|
|
16
|
-
spacing?:
|
|
12
|
+
spacing?: Point2;
|
|
17
13
|
origin?: Point3;
|
|
18
14
|
direction?: Mat3;
|
|
19
15
|
skipCreateBuffer?: boolean;
|
|
20
16
|
onCacheAdd?: (image: IImage) => void;
|
|
21
|
-
}
|
|
17
|
+
}
|
|
22
18
|
type DerivedImageOptions = LocalImageOptions & {
|
|
23
19
|
imageId?: string;
|
|
24
|
-
targetBufferType?: PixelDataTypedArrayString;
|
|
25
20
|
};
|
|
26
21
|
export declare function loadImage(imageId: string, options?: ImageLoaderOptions): Promise<IImage>;
|
|
27
22
|
export declare function loadAndCacheImage(imageId: string, options?: ImageLoaderOptions): Promise<IImage>;
|
|
28
|
-
export declare function loadAndCacheImages(imageIds:
|
|
29
|
-
export declare function createAndCacheDerivedImage(referencedImageId: string, options?: DerivedImageOptions
|
|
30
|
-
export declare function createAndCacheDerivedImages(referencedImageIds:
|
|
23
|
+
export declare function loadAndCacheImages(imageIds: string[], options?: ImageLoaderOptions): Promise<IImage>[];
|
|
24
|
+
export declare function createAndCacheDerivedImage(referencedImageId: string, options?: DerivedImageOptions): IImage;
|
|
25
|
+
export declare function createAndCacheDerivedImages(referencedImageIds: string[], options?: DerivedImageOptions & {
|
|
31
26
|
getDerivedImageId?: (referencedImageId: string) => string;
|
|
32
27
|
targetBufferType?: PixelDataTypedArrayString;
|
|
33
|
-
}):
|
|
34
|
-
export declare function createAndCacheLocalImage(
|
|
28
|
+
}): IImage[];
|
|
29
|
+
export declare function createAndCacheLocalImage(imageId: string, options: LocalImageOptions): IImage;
|
|
35
30
|
export declare function cancelLoadImage(imageId: string): void;
|
|
36
|
-
export declare function cancelLoadImages(imageIds:
|
|
31
|
+
export declare function cancelLoadImages(imageIds: string[]): void;
|
|
37
32
|
export declare function cancelLoadAll(): void;
|
|
38
33
|
export declare function registerImageLoader(scheme: string, imageLoader: ImageLoaderFn): void;
|
|
39
34
|
export declare function registerUnknownImageLoader(imageLoader: ImageLoaderFn): ImageLoaderFn;
|
|
40
35
|
export declare function unregisterAllImageLoaders(): void;
|
|
41
|
-
export declare function createAndCacheDerivedSegmentationImages(referencedImageIds:
|
|
42
|
-
export declare function createAndCacheDerivedSegmentationImage(referencedImageId: string, options?: DerivedImageOptions):
|
|
36
|
+
export declare function createAndCacheDerivedSegmentationImages(referencedImageIds: string[], options?: DerivedImageOptions): IImage[];
|
|
37
|
+
export declare function createAndCacheDerivedSegmentationImage(referencedImageId: string, options?: DerivedImageOptions): IImage;
|
|
43
38
|
export {};
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import cache from '../cache/cache';
|
|
2
|
-
import { ImageVolume } from '../cache';
|
|
3
2
|
import Events from '../enums/Events';
|
|
4
3
|
import eventTarget from '../eventTarget';
|
|
5
|
-
import { genericMetadataProvider, getBufferConfiguration, triggerEvent, uuidv4, } from '../utilities';
|
|
4
|
+
import { genericMetadataProvider, getBufferConfiguration, triggerEvent, uuidv4, VoxelManager, } from '../utilities';
|
|
6
5
|
import imageLoadPoolManager from '../requestPool/imageLoadPoolManager';
|
|
7
6
|
import { metaData } from '../';
|
|
8
7
|
const imageLoaders = {};
|
|
9
8
|
let unknownImageLoader;
|
|
10
9
|
function loadImageFromImageLoader(imageId, options) {
|
|
10
|
+
const cachedImage = cache.getImageLoadObject(imageId);
|
|
11
|
+
if (cachedImage) {
|
|
12
|
+
return cachedImage;
|
|
13
|
+
}
|
|
11
14
|
const colonIndex = imageId.indexOf(':');
|
|
12
15
|
const scheme = imageId.substring(0, colonIndex);
|
|
13
16
|
const loader = imageLoaders[scheme];
|
|
@@ -18,9 +21,24 @@ function loadImageFromImageLoader(imageId, options) {
|
|
|
18
21
|
throw new Error('loadImageFromImageLoader: no image loader for imageId');
|
|
19
22
|
}
|
|
20
23
|
const imageLoadObject = loader(imageId, options);
|
|
21
|
-
imageLoadObject.promise
|
|
24
|
+
imageLoadObject.promise
|
|
25
|
+
.then((image) => {
|
|
26
|
+
const scalarData = image.getPixelData();
|
|
27
|
+
const { width, height, numberOfComponents } = image;
|
|
28
|
+
if (!image.voxelManager) {
|
|
29
|
+
const voxelManager = VoxelManager.createImageVoxelManager({
|
|
30
|
+
scalarData,
|
|
31
|
+
width,
|
|
32
|
+
height,
|
|
33
|
+
numberOfComponents,
|
|
34
|
+
});
|
|
35
|
+
image.voxelManager = voxelManager;
|
|
36
|
+
image.getPixelData = () => voxelManager.getScalarData();
|
|
37
|
+
delete image.imageFrame.pixelData;
|
|
38
|
+
}
|
|
22
39
|
triggerEvent(eventTarget, Events.IMAGE_LOADED, { image });
|
|
23
|
-
}
|
|
40
|
+
})
|
|
41
|
+
.catch((error) => {
|
|
24
42
|
const errorObject = {
|
|
25
43
|
imageId,
|
|
26
44
|
error,
|
|
@@ -29,45 +47,19 @@ function loadImageFromImageLoader(imageId, options) {
|
|
|
29
47
|
});
|
|
30
48
|
return imageLoadObject;
|
|
31
49
|
}
|
|
32
|
-
function loadImageFromCacheOrVolume(imageId, options) {
|
|
33
|
-
if (options.ignoreCache) {
|
|
34
|
-
return loadImageFromImageLoader(imageId, options);
|
|
35
|
-
}
|
|
36
|
-
let imageLoadObject = cache.getImageLoadObject(imageId);
|
|
37
|
-
if (imageLoadObject !== undefined) {
|
|
38
|
-
return imageLoadObject;
|
|
39
|
-
}
|
|
40
|
-
const cachedVolumeInfo = cache.getVolumeContainingImageId(imageId);
|
|
41
|
-
if (cachedVolumeInfo?.volume?.loadStatus?.loaded) {
|
|
42
|
-
const { volume, imageIdIndex } = cachedVolumeInfo;
|
|
43
|
-
if (volume instanceof ImageVolume) {
|
|
44
|
-
imageLoadObject = volume.getCornerstoneImageLoadObject(imageId, imageIdIndex);
|
|
45
|
-
}
|
|
46
|
-
return imageLoadObject;
|
|
47
|
-
}
|
|
48
|
-
const cachedImage = cache.getCachedImageBasedOnImageURI(imageId);
|
|
49
|
-
if (cachedImage) {
|
|
50
|
-
imageLoadObject = cachedImage.imageLoadObject;
|
|
51
|
-
return imageLoadObject;
|
|
52
|
-
}
|
|
53
|
-
imageLoadObject = loadImageFromImageLoader(imageId, options);
|
|
54
|
-
return imageLoadObject;
|
|
55
|
-
}
|
|
56
50
|
export function loadImage(imageId, options = { priority: 0, requestType: 'prefetch' }) {
|
|
57
51
|
if (imageId === undefined) {
|
|
58
52
|
throw new Error('loadImage: parameter imageId must not be undefined');
|
|
59
53
|
}
|
|
60
|
-
return
|
|
54
|
+
return loadImageFromImageLoader(imageId, options).promise;
|
|
61
55
|
}
|
|
62
56
|
export function loadAndCacheImage(imageId, options = { priority: 0, requestType: 'prefetch' }) {
|
|
63
57
|
if (imageId === undefined) {
|
|
64
58
|
throw new Error('loadAndCacheImage: parameter imageId must not be undefined');
|
|
65
59
|
}
|
|
66
|
-
const imageLoadObject =
|
|
60
|
+
const imageLoadObject = loadImageFromImageLoader(imageId, options);
|
|
67
61
|
if (!cache.getImageLoadObject(imageId)) {
|
|
68
|
-
cache.putImageLoadObject(imageId, imageLoadObject)
|
|
69
|
-
console.warn(err);
|
|
70
|
-
});
|
|
62
|
+
cache.putImageLoadObject(imageId, imageLoadObject);
|
|
71
63
|
}
|
|
72
64
|
return imageLoadObject.promise;
|
|
73
65
|
}
|
|
@@ -80,7 +72,7 @@ export function loadAndCacheImages(imageIds, options = { priority: 0, requestTyp
|
|
|
80
72
|
});
|
|
81
73
|
return allPromises;
|
|
82
74
|
}
|
|
83
|
-
export function createAndCacheDerivedImage(referencedImageId, options = {}
|
|
75
|
+
export function createAndCacheDerivedImage(referencedImageId, options = {}) {
|
|
84
76
|
if (referencedImageId === undefined) {
|
|
85
77
|
throw new Error('createAndCacheDerivedImage: parameter imageId must not be undefined');
|
|
86
78
|
}
|
|
@@ -93,11 +85,15 @@ export function createAndCacheDerivedImage(referencedImageId, options = {}, prev
|
|
|
93
85
|
const { TypedArrayConstructor } = getBufferConfiguration(options.targetBufferType, length);
|
|
94
86
|
const imageScalarData = new TypedArrayConstructor(skipCreateBuffer ? 1 : length);
|
|
95
87
|
const derivedImageId = imageId;
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
88
|
+
const referencedImagePlaneMetadata = metaData.get('imagePlaneModule', referencedImageId);
|
|
89
|
+
genericMetadataProvider.add(derivedImageId, {
|
|
90
|
+
type: 'imagePlaneModule',
|
|
91
|
+
metadata: referencedImagePlaneMetadata,
|
|
92
|
+
});
|
|
93
|
+
const referencedImageGeneralSeriesMetadata = metaData.get('generalSeriesModule', referencedImageId);
|
|
94
|
+
genericMetadataProvider.add(derivedImageId, {
|
|
95
|
+
type: 'generalSeriesModule',
|
|
96
|
+
metadata: referencedImageGeneralSeriesMetadata,
|
|
101
97
|
});
|
|
102
98
|
const imagePixelModule = metaData.get('imagePixelModule', referencedImageId);
|
|
103
99
|
genericMetadataProvider.add(derivedImageId, {
|
|
@@ -111,79 +107,158 @@ export function createAndCacheDerivedImage(referencedImageId, options = {}, prev
|
|
|
111
107
|
pixelRepresentation: 0,
|
|
112
108
|
},
|
|
113
109
|
});
|
|
114
|
-
const localImage = createAndCacheLocalImage(
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
110
|
+
const localImage = createAndCacheLocalImage(imageId, {
|
|
111
|
+
scalarData: imageScalarData,
|
|
112
|
+
onCacheAdd,
|
|
113
|
+
skipCreateBuffer,
|
|
114
|
+
targetBufferType: imageScalarData.constructor
|
|
115
|
+
.name,
|
|
116
|
+
dimensions: [imagePlaneModule.columns, imagePlaneModule.rows],
|
|
117
|
+
spacing: [
|
|
118
|
+
imagePlaneModule.columnPixelSpacing,
|
|
119
|
+
imagePlaneModule.rowPixelSpacing,
|
|
120
|
+
],
|
|
121
|
+
origin: imagePlaneModule.imagePositionPatient,
|
|
122
|
+
direction: imagePlaneModule.imageOrientationPatient,
|
|
123
|
+
});
|
|
124
|
+
if (!cache.getImageLoadObject(imageId)) {
|
|
125
|
+
cache.putImageSync(imageId, localImage);
|
|
120
126
|
}
|
|
121
|
-
return
|
|
127
|
+
return localImage;
|
|
122
128
|
}
|
|
123
129
|
export function createAndCacheDerivedImages(referencedImageIds, options = {}) {
|
|
124
|
-
if (referencedImageIds
|
|
130
|
+
if (referencedImageIds.length === 0) {
|
|
125
131
|
throw new Error('createAndCacheDerivedImages: parameter imageIds must be list of image Ids');
|
|
126
132
|
}
|
|
127
133
|
const derivedImageIds = [];
|
|
128
|
-
const
|
|
134
|
+
const images = referencedImageIds.map((referencedImageId) => {
|
|
129
135
|
const newOptions = {
|
|
130
|
-
imageId: options
|
|
136
|
+
imageId: options?.getDerivedImageId?.(referencedImageId) ||
|
|
137
|
+
`derived:${uuidv4()}`,
|
|
131
138
|
...options,
|
|
132
139
|
};
|
|
133
140
|
derivedImageIds.push(newOptions.imageId);
|
|
134
141
|
return createAndCacheDerivedImage(referencedImageId, newOptions);
|
|
135
142
|
});
|
|
136
|
-
return
|
|
143
|
+
return images;
|
|
137
144
|
}
|
|
138
|
-
export function createAndCacheLocalImage(
|
|
139
|
-
const
|
|
140
|
-
const
|
|
145
|
+
export function createAndCacheLocalImage(imageId, options) {
|
|
146
|
+
const { scalarData, origin, direction, targetBufferType, skipCreateBuffer, onCacheAdd, } = options;
|
|
147
|
+
const dimensions = options.dimensions;
|
|
148
|
+
const spacing = options.spacing;
|
|
149
|
+
if (!dimensions || !spacing) {
|
|
150
|
+
throw new Error('createAndCacheLocalImage: dimensions and spacing are required');
|
|
151
|
+
}
|
|
152
|
+
const width = dimensions[0];
|
|
153
|
+
const height = dimensions[1];
|
|
154
|
+
const columnPixelSpacing = spacing[0];
|
|
155
|
+
const rowPixelSpacing = spacing[1];
|
|
156
|
+
const imagePlaneModule = {
|
|
157
|
+
rows: height.toString(),
|
|
158
|
+
columns: width.toString(),
|
|
159
|
+
imageOrientationPatient: direction ?? [1, 0, 0, 0, 1, 0],
|
|
160
|
+
rowCosines: direction ? direction.slice(0, 3) : [1, 0, 0],
|
|
161
|
+
columnCosines: direction ? direction.slice(3, 6) : [0, 1, 0],
|
|
162
|
+
imagePositionPatient: origin ?? [0, 0, 0],
|
|
163
|
+
pixelSpacing: [rowPixelSpacing, columnPixelSpacing],
|
|
164
|
+
rowPixelSpacing: rowPixelSpacing,
|
|
165
|
+
columnPixelSpacing: columnPixelSpacing,
|
|
166
|
+
};
|
|
167
|
+
const length = width * height;
|
|
168
|
+
const numberOfComponents = scalarData.length / length;
|
|
169
|
+
let scalarDataToUse;
|
|
170
|
+
if (scalarData) {
|
|
171
|
+
if (!(scalarData instanceof Uint8Array ||
|
|
172
|
+
scalarData instanceof Float32Array ||
|
|
173
|
+
scalarData instanceof Uint16Array ||
|
|
174
|
+
scalarData instanceof Int16Array)) {
|
|
175
|
+
throw new Error('createAndCacheLocalImage: scalarData must be of type Uint8Array, Uint16Array, Int16Array or Float32Array');
|
|
176
|
+
}
|
|
177
|
+
scalarDataToUse = scalarData;
|
|
178
|
+
}
|
|
179
|
+
else if (!skipCreateBuffer) {
|
|
180
|
+
const { numBytes, TypedArrayConstructor } = getBufferConfiguration(targetBufferType, length);
|
|
181
|
+
const imageScalarData = new TypedArrayConstructor(length);
|
|
182
|
+
scalarDataToUse = imageScalarData;
|
|
183
|
+
}
|
|
184
|
+
let bitsAllocated, bitsStored, highBit;
|
|
185
|
+
if (scalarDataToUse instanceof Uint8Array) {
|
|
186
|
+
bitsAllocated = 8;
|
|
187
|
+
bitsStored = 8;
|
|
188
|
+
highBit = 7;
|
|
189
|
+
}
|
|
190
|
+
else if (scalarDataToUse instanceof Uint16Array) {
|
|
191
|
+
bitsAllocated = 16;
|
|
192
|
+
bitsStored = 16;
|
|
193
|
+
highBit = 15;
|
|
194
|
+
}
|
|
195
|
+
else if (scalarDataToUse instanceof Int16Array) {
|
|
196
|
+
bitsAllocated = 16;
|
|
197
|
+
bitsStored = 16;
|
|
198
|
+
highBit = 15;
|
|
199
|
+
}
|
|
200
|
+
else if (scalarDataToUse instanceof Float32Array) {
|
|
201
|
+
bitsAllocated = 32;
|
|
202
|
+
bitsStored = 32;
|
|
203
|
+
highBit = 31;
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
throw new Error('Unsupported scalarData type');
|
|
207
|
+
}
|
|
208
|
+
const imagePixelModule = {
|
|
209
|
+
samplesPerPixel: 1,
|
|
210
|
+
photometricInterpretation: scalarDataToUse.length > dimensions[0] * dimensions[1]
|
|
211
|
+
? 'RGB'
|
|
212
|
+
: 'MONOCHROME2',
|
|
213
|
+
rows: height,
|
|
214
|
+
columns: width,
|
|
215
|
+
bitsAllocated,
|
|
216
|
+
bitsStored,
|
|
217
|
+
highBit,
|
|
218
|
+
};
|
|
219
|
+
const metadata = {
|
|
220
|
+
imagePlaneModule,
|
|
221
|
+
imagePixelModule,
|
|
222
|
+
};
|
|
223
|
+
['imagePlaneModule', 'imagePixelModule'].forEach((type) => {
|
|
224
|
+
genericMetadataProvider.add(imageId, {
|
|
225
|
+
type,
|
|
226
|
+
metadata: metadata[type] || {},
|
|
227
|
+
});
|
|
228
|
+
});
|
|
229
|
+
const voxelManager = VoxelManager.createImageVoxelManager({
|
|
230
|
+
height,
|
|
231
|
+
width,
|
|
232
|
+
numberOfComponents,
|
|
233
|
+
scalarData: scalarDataToUse,
|
|
234
|
+
});
|
|
141
235
|
const image = {
|
|
142
236
|
imageId: imageId,
|
|
143
237
|
intercept: 0,
|
|
144
238
|
windowCenter: 0,
|
|
145
239
|
windowWidth: 0,
|
|
146
|
-
color:
|
|
147
|
-
|
|
240
|
+
color: imagePixelModule.photometricInterpretation === 'RGB',
|
|
241
|
+
numberOfComponents: imagePixelModule.samplesPerPixel,
|
|
242
|
+
dataType: targetBufferType,
|
|
148
243
|
slope: 1,
|
|
149
244
|
minPixelValue: 0,
|
|
150
|
-
maxPixelValue:
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
columns: imagePlaneModule.columns,
|
|
245
|
+
maxPixelValue: Math.pow(2, imagePixelModule.bitsStored) - 1,
|
|
246
|
+
rows: imagePixelModule.rows,
|
|
247
|
+
columns: imagePixelModule.columns,
|
|
154
248
|
getCanvas: undefined,
|
|
155
|
-
height:
|
|
156
|
-
width:
|
|
249
|
+
height: imagePixelModule.rows,
|
|
250
|
+
width: imagePixelModule.columns,
|
|
157
251
|
rgba: undefined,
|
|
158
252
|
columnPixelSpacing: imagePlaneModule.columnPixelSpacing,
|
|
159
253
|
rowPixelSpacing: imagePlaneModule.rowPixelSpacing,
|
|
160
|
-
FrameOfReferenceUID: imagePlaneModule.
|
|
254
|
+
FrameOfReferenceUID: imagePlaneModule.frameOfReferenceUID,
|
|
161
255
|
invert: false,
|
|
256
|
+
getPixelData: () => voxelManager.getScalarData(),
|
|
257
|
+
voxelManager,
|
|
258
|
+
sizeInBytes: scalarData.byteLength,
|
|
162
259
|
};
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
if (!(imageScalarData instanceof Uint8Array ||
|
|
166
|
-
imageScalarData instanceof Float32Array ||
|
|
167
|
-
imageScalarData instanceof Uint16Array ||
|
|
168
|
-
imageScalarData instanceof Int16Array)) {
|
|
169
|
-
throw new Error('To use createLocalVolume you should pass scalarData of type Uint8Array, Uint16Array, Int16Array or Float32Array');
|
|
170
|
-
}
|
|
171
|
-
image.sizeInBytes = imageScalarData.byteLength;
|
|
172
|
-
image.getPixelData = () => imageScalarData;
|
|
173
|
-
}
|
|
174
|
-
else if (options.skipCreateBuffer !== true) {
|
|
175
|
-
const { numBytes, TypedArrayConstructor } = getBufferConfiguration(options.targetBufferType, length);
|
|
176
|
-
const imageScalarData = new TypedArrayConstructor(length);
|
|
177
|
-
image.sizeInBytes = numBytes;
|
|
178
|
-
image.getPixelData = () => imageScalarData;
|
|
179
|
-
}
|
|
180
|
-
options.onCacheAdd?.(image);
|
|
181
|
-
const imageLoadObject = {
|
|
182
|
-
promise: Promise.resolve(image),
|
|
183
|
-
};
|
|
184
|
-
if (!preventCache) {
|
|
185
|
-
cache.putImageLoadObject(image.imageId, imageLoadObject);
|
|
186
|
-
}
|
|
260
|
+
onCacheAdd?.(image);
|
|
261
|
+
cache.putImageSync(image.imageId, image);
|
|
187
262
|
return image;
|
|
188
263
|
}
|
|
189
264
|
export function cancelLoadImage(imageId) {
|
|
@@ -200,7 +275,9 @@ export function cancelLoadImage(imageId) {
|
|
|
200
275
|
}
|
|
201
276
|
}
|
|
202
277
|
export function cancelLoadImages(imageIds) {
|
|
203
|
-
imageIds.forEach((imageId) =>
|
|
278
|
+
imageIds.forEach((imageId) => {
|
|
279
|
+
cancelLoadImage(imageId);
|
|
280
|
+
});
|
|
204
281
|
}
|
|
205
282
|
export function cancelLoadAll() {
|
|
206
283
|
const requestPool = imageLoadPoolManager.getRequestPool();
|
|
@@ -236,13 +313,15 @@ export function unregisterAllImageLoaders() {
|
|
|
236
313
|
Object.keys(imageLoaders).forEach((imageLoader) => delete imageLoaders[imageLoader]);
|
|
237
314
|
unknownImageLoader = undefined;
|
|
238
315
|
}
|
|
239
|
-
export function createAndCacheDerivedSegmentationImages(referencedImageIds, options = {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
316
|
+
export function createAndCacheDerivedSegmentationImages(referencedImageIds, options = {}) {
|
|
317
|
+
return createAndCacheDerivedImages(referencedImageIds, {
|
|
318
|
+
...options,
|
|
319
|
+
targetBufferType: 'Uint8Array',
|
|
320
|
+
});
|
|
243
321
|
}
|
|
244
|
-
export function createAndCacheDerivedSegmentationImage(referencedImageId, options = {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
322
|
+
export function createAndCacheDerivedSegmentationImage(referencedImageId, options = {}) {
|
|
323
|
+
return createAndCacheDerivedImage(referencedImageId, {
|
|
324
|
+
...options,
|
|
325
|
+
targetBufferType: 'Uint8Array',
|
|
326
|
+
});
|
|
248
327
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { IGeometry, PublicContourSetData } from '../../../types';
|
|
1
|
+
import type { IGeometry, PublicContourSetData } from '../../../types';
|
|
2
2
|
export declare function createContourSet(geometryId: string, contourSetData: PublicContourSetData): IGeometry;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { PublicContourSetData } from '../../../types';
|
|
1
|
+
import type { PublicContourSetData } from '../../../types';
|
|
2
2
|
export declare function validateContourSet(contourSetData: PublicContourSetData): void;
|