@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.
Files changed (341) hide show
  1. package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +23 -13
  2. package/dist/esm/RenderingEngine/BaseVolumeViewport.js +52 -50
  3. package/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.d.ts +1 -1
  4. package/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.d.ts +1 -1
  5. package/dist/esm/RenderingEngine/CanvasActor/index.js +2 -1
  6. package/dist/esm/RenderingEngine/RenderingEngine.d.ts +8 -10
  7. package/dist/esm/RenderingEngine/RenderingEngine.js +20 -18
  8. package/dist/esm/RenderingEngine/StackViewport.d.ts +28 -19
  9. package/dist/esm/RenderingEngine/StackViewport.js +81 -58
  10. package/dist/esm/RenderingEngine/VideoViewport.d.ts +19 -28
  11. package/dist/esm/RenderingEngine/VideoViewport.js +61 -24
  12. package/dist/esm/RenderingEngine/Viewport.d.ts +25 -14
  13. package/dist/esm/RenderingEngine/Viewport.js +24 -15
  14. package/dist/esm/RenderingEngine/VolumeViewport.d.ts +21 -9
  15. package/dist/esm/RenderingEngine/VolumeViewport.js +95 -10
  16. package/dist/esm/RenderingEngine/VolumeViewport3D.d.ts +3 -3
  17. package/dist/esm/RenderingEngine/VolumeViewport3D.js +10 -3
  18. package/dist/esm/RenderingEngine/WSIViewport.d.ts +58 -0
  19. package/dist/esm/RenderingEngine/WSIViewport.js +414 -0
  20. package/dist/esm/RenderingEngine/helpers/addImageSlicesToViewports.d.ts +1 -1
  21. package/dist/esm/RenderingEngine/helpers/addImageSlicesToViewports.js +3 -3
  22. package/dist/esm/RenderingEngine/helpers/addVolumesToViewports.d.ts +1 -1
  23. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.d.ts +1 -1
  24. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.js +1 -1
  25. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/lookupTable.d.ts +2 -2
  26. package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/lookupTable.js +15 -5
  27. package/dist/esm/RenderingEngine/helpers/cpuFallback/drawImageSync.d.ts +1 -1
  28. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/calculateTransform.d.ts +1 -1
  29. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/canvasToPixel.d.ts +1 -1
  30. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/correctShift.d.ts +3 -3
  31. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/createViewport.d.ts +1 -1
  32. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/doesImageNeedToBeRendered.d.ts +1 -1
  33. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/fitToWindow.d.ts +1 -1
  34. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateColorLUT.d.ts +1 -1
  35. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateColorLUT.js +1 -1
  36. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateLut.d.ts +1 -1
  37. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateLut.js +2 -2
  38. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getDefaultViewport.d.ts +1 -1
  39. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getImageFitScale.d.ts +1 -1
  40. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getImageSize.d.ts +1 -1
  41. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getLut.d.ts +1 -1
  42. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getLut.js +1 -1
  43. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getTransform.d.ts +1 -1
  44. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/initializeRenderCanvas.d.ts +1 -1
  45. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/lutMatches.d.ts +2 -1
  46. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/lutMatches.js +1 -1
  47. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/pixelToCanvas.d.ts +1 -1
  48. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.d.ts +1 -1
  49. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js +3 -4
  50. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderGrayscaleImage.d.ts +1 -1
  51. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderGrayscaleImage.js +2 -3
  52. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js +3 -3
  53. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/resetCamera.d.ts +1 -1
  54. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/resize.d.ts +1 -1
  55. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/saveLastRendered.d.ts +1 -1
  56. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/setDefaultViewport.d.ts +1 -1
  57. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/setToPixelCoordinateSystem.d.ts +1 -1
  58. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedColorPixelDataToCanvasImageData.d.ts +1 -1
  59. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedColorPixelDataToCanvasImageData.js +1 -1
  60. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageData.d.ts +1 -1
  61. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageData.js +1 -1
  62. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataColorLUT.js +1 -1
  63. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPET.d.ts +1 -1
  64. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPET.js +1 -1
  65. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPseudocolorLUT.js +1 -1
  66. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPseudocolorLUTPET.js +1 -1
  67. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataRGBA.d.ts +1 -1
  68. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataRGBA.js +1 -1
  69. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedRGBAPixelDataToCanvasImageData.d.ts +1 -1
  70. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedRGBAPixelDataToCanvasImageData.js +1 -1
  71. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/transform.d.ts +1 -1
  72. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/validator.d.ts +2 -2
  73. package/dist/esm/RenderingEngine/helpers/createVolumeActor.d.ts +3 -3
  74. package/dist/esm/RenderingEngine/helpers/createVolumeActor.js +4 -7
  75. package/dist/esm/RenderingEngine/helpers/createVolumeMapper.d.ts +4 -1
  76. package/dist/esm/RenderingEngine/helpers/getOrCreateCanvas.js +5 -4
  77. package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.d.ts +2 -2
  78. package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js +13 -37
  79. package/dist/esm/RenderingEngine/helpers/setVolumesForViewports.d.ts +1 -1
  80. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.d.ts +2 -0
  81. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.js +2 -0
  82. package/dist/esm/RenderingEngine/helpers/volumeNewImageEventDispatcher.d.ts +1 -1
  83. package/dist/esm/RenderingEngine/helpers/volumeNewImageEventDispatcher.js +4 -4
  84. package/dist/esm/RenderingEngine/renderingEngineCache.d.ts +1 -1
  85. package/dist/esm/RenderingEngine/vtkClasses/vtkSlabCamera.d.ts +4 -2
  86. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLTexture.js +87 -78
  87. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLViewNodeFactory.js +1 -1
  88. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js +83 -42
  89. package/dist/esm/Settings.d.ts +1 -1
  90. package/dist/esm/cache/cache.d.ts +15 -19
  91. package/dist/esm/cache/cache.js +112 -57
  92. package/dist/esm/cache/classes/Contour.d.ts +4 -4
  93. package/dist/esm/cache/classes/ContourSet.d.ts +3 -3
  94. package/dist/esm/cache/classes/ImageVolume.d.ts +19 -19
  95. package/dist/esm/cache/classes/ImageVolume.js +49 -254
  96. package/dist/esm/cache/classes/Surface.d.ts +3 -3
  97. package/dist/esm/cache/index.d.ts +1 -2
  98. package/dist/esm/cache/index.js +1 -2
  99. package/dist/esm/constants/cpuColormaps.d.ts +1 -1
  100. package/dist/esm/constants/viewportPresets.d.ts +1 -1
  101. package/dist/esm/enums/GenerateImageType.d.ts +5 -0
  102. package/dist/esm/enums/GenerateImageType.js +6 -0
  103. package/dist/esm/enums/MetadataModules.d.ts +2 -1
  104. package/dist/esm/enums/MetadataModules.js +1 -0
  105. package/dist/esm/enums/ViewportType.d.ts +2 -1
  106. package/dist/esm/enums/ViewportType.js +1 -0
  107. package/dist/esm/enums/index.d.ts +2 -2
  108. package/dist/esm/enums/index.js +2 -2
  109. package/dist/esm/eventTarget.js +2 -3
  110. package/dist/esm/getEnabledElement.d.ts +1 -1
  111. package/dist/esm/global.d.ts +0 -1
  112. package/dist/esm/index.d.ts +9 -5
  113. package/dist/esm/index.js +8 -4
  114. package/dist/esm/init.d.ts +5 -8
  115. package/dist/esm/init.js +22 -83
  116. package/dist/esm/loaders/ProgressiveRetrieveImages.d.ts +5 -5
  117. package/dist/esm/loaders/ProgressiveRetrieveImages.js +7 -3
  118. package/dist/esm/loaders/configuration/interleavedRetrieve.d.ts +1 -1
  119. package/dist/esm/loaders/fillNearbyFrames.d.ts +2 -2
  120. package/dist/esm/loaders/geometryLoader.d.ts +3 -3
  121. package/dist/esm/loaders/geometryLoader.js +1 -1
  122. package/dist/esm/loaders/imageLoader.d.ts +12 -17
  123. package/dist/esm/loaders/imageLoader.js +179 -96
  124. package/dist/esm/loaders/utils/contourSet/createContourSet.d.ts +1 -1
  125. package/dist/esm/loaders/utils/contourSet/validateContourSet.d.ts +1 -1
  126. package/dist/esm/loaders/utils/surface/createSurface.d.ts +1 -1
  127. package/dist/esm/loaders/utils/surface/validateSurface.d.ts +1 -1
  128. package/dist/esm/loaders/volumeLoader.d.ts +15 -22
  129. package/dist/esm/loaders/volumeLoader.js +88 -207
  130. package/dist/esm/metaData.d.ts +2 -4
  131. package/dist/esm/requestPool/requestPoolManager.d.ts +7 -9
  132. package/dist/esm/requestPool/requestPoolManager.js +1 -1
  133. package/dist/esm/types/AABB2.d.ts +2 -2
  134. package/dist/esm/types/AABB3.d.ts +2 -2
  135. package/dist/esm/types/ActorSliceRange.d.ts +5 -5
  136. package/dist/esm/types/BoundsIJK.d.ts +1 -1
  137. package/dist/esm/types/BoundsLPS.d.ts +1 -1
  138. package/dist/esm/types/CPUFallbackColormap.d.ts +3 -3
  139. package/dist/esm/types/CPUFallbackColormapData.d.ts +4 -4
  140. package/dist/esm/types/CPUFallbackColormapsData.d.ts +3 -5
  141. package/dist/esm/types/CPUFallbackEnabledElement.d.ts +2 -37
  142. package/dist/esm/types/CPUFallbackLUT.d.ts +4 -3
  143. package/dist/esm/types/CPUFallbackLookupTable.d.ts +2 -2
  144. package/dist/esm/types/CPUFallbackRenderingTools.d.ts +5 -5
  145. package/dist/esm/types/CPUFallbackTransform.d.ts +3 -3
  146. package/dist/esm/types/CPUFallbackViewport.d.ts +6 -6
  147. package/dist/esm/types/CPUFallbackViewportDisplayedArea.d.ts +3 -3
  148. package/dist/esm/types/CPUIImageData.d.ts +17 -9
  149. package/dist/esm/types/Color.d.ts +1 -1
  150. package/dist/esm/types/Colormap.d.ts +7 -7
  151. package/dist/esm/types/ContourData.d.ts +6 -6
  152. package/dist/esm/types/Cornerstone3DConfig.d.ts +7 -7
  153. package/dist/esm/types/CustomEventType.d.ts +2 -2
  154. package/dist/esm/types/EventTypes.d.ts +55 -55
  155. package/dist/esm/types/FlipDirection.d.ts +3 -3
  156. package/dist/esm/types/IActor.d.ts +3 -3
  157. package/dist/esm/types/ICache.d.ts +4 -4
  158. package/dist/esm/types/ICachedGeometry.d.ts +3 -3
  159. package/dist/esm/types/ICachedImage.d.ts +3 -2
  160. package/dist/esm/types/ICachedVolume.d.ts +3 -2
  161. package/dist/esm/types/ICamera.d.ts +3 -3
  162. package/dist/esm/types/IContour.d.ts +4 -3
  163. package/dist/esm/types/IContourSet.d.ts +5 -2
  164. package/dist/esm/types/IDynamicImageVolume.d.ts +3 -3
  165. package/dist/esm/types/IEnabledElement.d.ts +2 -2
  166. package/dist/esm/types/IGeometry.d.ts +4 -4
  167. package/dist/esm/types/IImage.d.ts +48 -11
  168. package/dist/esm/types/IImageCalibration.d.ts +2 -2
  169. package/dist/esm/types/IImageData.d.ts +11 -4
  170. package/dist/esm/types/IImageFrame.d.ts +42 -0
  171. package/dist/esm/types/IImageFrame.js +1 -0
  172. package/dist/esm/types/IImageVolume.d.ts +17 -14
  173. package/dist/esm/types/ILoadObject.d.ts +3 -3
  174. package/dist/esm/types/IPointsManager.d.ts +23 -0
  175. package/dist/esm/types/IPointsManager.js +1 -0
  176. package/dist/esm/types/IRLEVoxelMap.d.ts +16 -0
  177. package/dist/esm/types/IRLEVoxelMap.js +1 -0
  178. package/dist/esm/types/IRegisterImageLoader.d.ts +2 -2
  179. package/dist/esm/types/IRenderingEngine.d.ts +11 -12
  180. package/dist/esm/types/IRetrieveConfiguration.d.ts +6 -6
  181. package/dist/esm/types/IStackInput.d.ts +1 -1
  182. package/dist/esm/types/IStackViewport.d.ts +69 -2
  183. package/dist/esm/types/IStreamingImageVolume.d.ts +3 -4
  184. package/dist/esm/types/IStreamingVolumeProperties.d.ts +5 -5
  185. package/dist/esm/types/ISurface.d.ts +1 -1
  186. package/dist/esm/types/ITransferFunctionNode.d.ts +9 -0
  187. package/dist/esm/types/ITransferFunctionNode.js +1 -0
  188. package/dist/esm/types/IVideoViewport.d.ts +40 -2
  189. package/dist/esm/types/IViewport.d.ts +62 -41
  190. package/dist/esm/types/IVolume.d.ts +2 -2
  191. package/dist/esm/types/IVolumeInput.d.ts +2 -2
  192. package/dist/esm/types/IVolumeViewport.d.ts +17 -16
  193. package/dist/esm/types/IVoxelManager.d.ts +54 -0
  194. package/dist/esm/types/IVoxelManager.js +1 -0
  195. package/dist/esm/types/IWSIViewport.d.ts +16 -0
  196. package/dist/esm/types/IWSIViewport.js +1 -0
  197. package/dist/esm/types/ImageLoadListener.d.ts +2 -2
  198. package/dist/esm/types/ImageLoaderFn.d.ts +3 -3
  199. package/dist/esm/types/ImagePixelModule.d.ts +1 -1
  200. package/dist/esm/types/ImagePlaneModule.d.ts +2 -2
  201. package/dist/esm/types/ImageSliceData.d.ts +3 -3
  202. package/dist/esm/types/ImageVolumeProps.d.ts +4 -4
  203. package/dist/esm/types/Mat3.d.ts +1 -1
  204. package/dist/esm/types/Metadata.d.ts +6 -6
  205. package/dist/esm/types/MetadataModuleTypes.d.ts +65 -0
  206. package/dist/esm/types/MetadataModuleTypes.js +1 -0
  207. package/dist/esm/types/OrientationVectors.d.ts +4 -4
  208. package/dist/esm/types/Plane.d.ts +1 -1
  209. package/dist/esm/types/Point2.d.ts +1 -1
  210. package/dist/esm/types/Point3.d.ts +3 -3
  211. package/dist/esm/types/Point4.d.ts +1 -1
  212. package/dist/esm/types/RGB.d.ts +1 -1
  213. package/dist/esm/types/ScalingParameters.d.ts +7 -7
  214. package/dist/esm/types/StackViewportProperties.d.ts +3 -3
  215. package/dist/esm/types/SurfaceData.d.ts +5 -5
  216. package/dist/esm/types/TransformMatrix2D.d.ts +1 -1
  217. package/dist/esm/types/VideoViewportProperties.d.ts +3 -3
  218. package/dist/esm/types/VideoViewportTypes.d.ts +7 -7
  219. package/dist/esm/types/ViewportInputOptions.d.ts +7 -7
  220. package/dist/esm/types/ViewportPreset.d.ts +1 -1
  221. package/dist/esm/types/ViewportProperties.d.ts +5 -5
  222. package/dist/esm/types/VolumeLoaderFn.d.ts +4 -3
  223. package/dist/esm/types/VolumeProps.d.ts +10 -5
  224. package/dist/esm/types/VolumeViewportProperties.d.ts +3 -3
  225. package/dist/esm/types/WSIViewportProperties.d.ts +3 -0
  226. package/dist/esm/types/WSIViewportProperties.js +1 -0
  227. package/dist/esm/types/WSIViewportTypes.d.ts +13 -0
  228. package/dist/esm/types/WSIViewportTypes.js +1 -0
  229. package/dist/esm/types/displayArea.d.ts +4 -4
  230. package/dist/esm/types/index.d.ts +16 -8
  231. package/dist/esm/types/voi.d.ts +4 -4
  232. package/dist/esm/utilities/PointsManager.d.ts +8 -10
  233. package/dist/esm/utilities/ProgressiveIterator.d.ts +1 -1
  234. package/dist/esm/utilities/ProgressiveIterator.js +3 -1
  235. package/dist/esm/utilities/RLEVoxelMap.d.ts +3 -8
  236. package/dist/esm/utilities/RLEVoxelMap.js +19 -19
  237. package/dist/esm/utilities/VoxelManager.d.ts +82 -20
  238. package/dist/esm/utilities/VoxelManager.js +466 -60
  239. package/dist/esm/utilities/actorCheck.d.ts +1 -1
  240. package/dist/esm/utilities/applyPreset.d.ts +2 -2
  241. package/dist/esm/utilities/calculateViewportsSpatialRegistration.d.ts +1 -1
  242. package/dist/esm/utilities/calculateViewportsSpatialRegistration.js +5 -5
  243. package/dist/esm/utilities/calibratedPixelSpacingMetadataProvider.d.ts +1 -1
  244. package/dist/esm/utilities/colormap.d.ts +1 -1
  245. package/dist/esm/utilities/convertStackToVolumeViewport.d.ts +2 -2
  246. package/dist/esm/utilities/convertStackToVolumeViewport.js +4 -4
  247. package/dist/esm/utilities/convertVolumeToStackViewport.d.ts +1 -1
  248. package/dist/esm/utilities/convertVolumeToStackViewport.js +3 -2
  249. package/dist/esm/utilities/createLinearRGBTransferFunction.d.ts +1 -1
  250. package/dist/esm/utilities/createLinearRGBTransferFunction.js +1 -3
  251. package/dist/esm/utilities/createSigmoidRGBTransferFunction.d.ts +2 -3
  252. package/dist/esm/utilities/createSigmoidRGBTransferFunction.js +8 -7
  253. package/dist/esm/utilities/decimate.d.ts +1 -1
  254. package/dist/esm/utilities/eventListener/TargetEventListeners.js +5 -3
  255. package/dist/esm/utilities/generateVolumePropsFromImageIds.d.ts +1 -1
  256. package/dist/esm/utilities/generateVolumePropsFromImageIds.js +33 -80
  257. package/dist/esm/utilities/genericMetadataProvider.d.ts +9 -2
  258. package/dist/esm/utilities/genericMetadataProvider.js +7 -1
  259. package/dist/esm/utilities/getBufferConfiguration.d.ts +2 -3
  260. package/dist/esm/utilities/getBufferConfiguration.js +5 -15
  261. package/dist/esm/utilities/getClosestImageId.js +1 -1
  262. package/dist/esm/utilities/getClosestStackImageIndexForPoint.d.ts +1 -1
  263. package/dist/esm/utilities/getClosestStackImageIndexForPoint.js +2 -2
  264. package/dist/esm/utilities/getCurrentVolumeViewportSlice.d.ts +4 -5
  265. package/dist/esm/utilities/getCurrentVolumeViewportSlice.js +8 -58
  266. package/dist/esm/utilities/getImageLegacy.d.ts +1 -1
  267. package/dist/esm/utilities/getImageLegacy.js +1 -1
  268. package/dist/esm/utilities/getImageSliceDataForVolumeViewport.d.ts +1 -1
  269. package/dist/esm/utilities/getMinMax.d.ts +2 -1
  270. package/dist/esm/utilities/getScalingParameters.d.ts +1 -1
  271. package/dist/esm/utilities/getScalingParameters.js +4 -4
  272. package/dist/esm/utilities/getSpacingInNormalDirection.d.ts +2 -2
  273. package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.d.ts +1 -1
  274. package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.js +2 -2
  275. package/dist/esm/utilities/getViewportImageCornersInWorld.d.ts +1 -1
  276. package/dist/esm/utilities/getViewportImageIds.d.ts +1 -1
  277. package/dist/esm/utilities/getViewportImageIds.js +1 -1
  278. package/dist/esm/utilities/getViewportModality.d.ts +7 -3
  279. package/dist/esm/utilities/getViewportModality.js +9 -6
  280. package/dist/esm/utilities/getViewportsWithImageURI.d.ts +2 -2
  281. package/dist/esm/utilities/getViewportsWithVolumeId.d.ts +2 -2
  282. package/dist/esm/utilities/getViewportsWithVolumeId.js +3 -7
  283. package/dist/esm/utilities/getVoiFromSigmoidRGBTransferFunction.d.ts +1 -1
  284. package/dist/esm/utilities/getVolumeActorCorners.d.ts +2 -2
  285. package/dist/esm/utilities/getVolumeId.js +2 -2
  286. package/dist/esm/utilities/getVolumeSliceRangeInfo.d.ts +1 -1
  287. package/dist/esm/utilities/getVolumeViewportScrollInfo.d.ts +1 -1
  288. package/dist/esm/utilities/getVolumeViewportsContainingSameVolumes.d.ts +2 -2
  289. package/dist/esm/utilities/hasFloatScalingParameters.d.ts +1 -1
  290. package/dist/esm/utilities/imageRetrieveMetadataProvider.d.ts +1 -1
  291. package/dist/esm/utilities/imageToWorldCoords.d.ts +1 -1
  292. package/dist/esm/utilities/imageToWorldCoords.js +2 -2
  293. package/dist/esm/utilities/index.d.ts +3 -8
  294. package/dist/esm/utilities/index.js +4 -8
  295. package/dist/esm/utilities/indexWithinDimensions.d.ts +1 -1
  296. package/dist/esm/utilities/invertRgbTransferFunction.d.ts +2 -1
  297. package/dist/esm/utilities/isEqual.js +6 -1
  298. package/dist/esm/utilities/isPTPrescaledWithSUV.d.ts +1 -1
  299. package/dist/esm/utilities/isPTPrescaledWithSUV.js +1 -1
  300. package/dist/esm/utilities/isValidVolume.js +1 -1
  301. package/dist/esm/utilities/loadImageToCanvas.d.ts +6 -6
  302. package/dist/esm/utilities/loadImageToCanvas.js +1 -1
  303. package/dist/esm/utilities/makeVolumeMetadata.d.ts +2 -2
  304. package/dist/esm/utilities/makeVolumeMetadata.js +5 -5
  305. package/dist/esm/utilities/planar.d.ts +2 -2
  306. package/dist/esm/utilities/renderToCanvasCPU.d.ts +1 -1
  307. package/dist/esm/utilities/renderToCanvasGPU.d.ts +2 -2
  308. package/dist/esm/utilities/renderToCanvasGPU.js +1 -1
  309. package/dist/esm/utilities/scaleRgbTransferFunction.d.ts +2 -1
  310. package/dist/esm/utilities/snapFocalPointToSlice.d.ts +1 -1
  311. package/dist/esm/utilities/sortImageIdsAndGetSpacing.d.ts +5 -5
  312. package/dist/esm/utilities/sortImageIdsAndGetSpacing.js +2 -1
  313. package/dist/esm/utilities/transformCanvasToIJK.d.ts +2 -2
  314. package/dist/esm/utilities/transformIJKToCanvas.d.ts +1 -1
  315. package/dist/esm/utilities/triggerEvent.js +1 -1
  316. package/dist/esm/utilities/updateVTKImageDataWithCornerstoneImage.d.ts +2 -2
  317. package/dist/esm/utilities/updateVTKImageDataWithCornerstoneImage.js +1 -1
  318. package/dist/esm/utilities/uuidv4.js +3 -1
  319. package/dist/esm/utilities/worldToImageCoords.d.ts +1 -1
  320. package/dist/esm/utilities/worldToImageCoords.js +2 -2
  321. package/dist/umd/index.js +1 -1
  322. package/dist/umd/index.js.map +1 -1
  323. package/package.json +6 -6
  324. package/dist/esm/cache/utils/restoreImagesFromBuffer.d.ts +0 -2
  325. package/dist/esm/cache/utils/restoreImagesFromBuffer.js +0 -28
  326. package/dist/esm/enums/SharedArrayBufferModes.d.ts +0 -6
  327. package/dist/esm/enums/SharedArrayBufferModes.js +0 -7
  328. package/dist/esm/utilities/cacheUtils.d.ts +0 -2
  329. package/dist/esm/utilities/cacheUtils.js +0 -86
  330. package/dist/esm/utilities/createFloat32SharedArray.d.ts +0 -2
  331. package/dist/esm/utilities/createFloat32SharedArray.js +0 -27
  332. package/dist/esm/utilities/createInt16SharedArray.d.ts +0 -2
  333. package/dist/esm/utilities/createInt16SharedArray.js +0 -11
  334. package/dist/esm/utilities/createUInt16SharedArray.d.ts +0 -2
  335. package/dist/esm/utilities/createUInt16SharedArray.js +0 -11
  336. package/dist/esm/utilities/createUint8SharedArray.d.ts +0 -2
  337. package/dist/esm/utilities/createUint8SharedArray.js +0 -12
  338. package/dist/esm/utilities/getScalarDataType.d.ts +0 -2
  339. package/dist/esm/utilities/getScalarDataType.js +0 -19
  340. package/dist/esm/utilities/isTypedArray.d.ts +0 -1
  341. 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: number) => boolean;
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?: Array<string>): number | undefined;
17
+ decacheIfNecessaryUntilBytesAvailable(numBytes: number, volumeImageIds?: string[]): number | undefined;
22
18
  private _putImageCommon;
23
- putImageLoadObject(imageId: string, imageLoadObject: IImageLoadObject): Promise<any>;
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
- putVolumeLoadObject(volumeId: string, volumeLoadObject: IVolumeLoadObject): Promise<any>;
33
- getVolumeLoadObject: (volumeId: string) => IVolumeLoadObject;
34
- getGeometry: (geometryId: string) => IGeometry;
35
- getImage: (imageId: string) => IImage;
36
- getVolume: (volumeId: string) => IImageVolume;
37
- getVolumes: () => Array<IImageVolume>;
38
- filterVolumesByReferenceId: (volumeId: string) => Array<IImageVolume>;
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;
@@ -1,16 +1,15 @@
1
- import { triggerEvent, imageIdToURI } from '../utilities';
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
- if (byteLength > this._maxInstanceSize) {
23
- return false;
24
- }
25
- const unallocatedSpace = this.getBytesAvailable();
26
- const imageCacheSize = this._imageCacheSize;
27
- const availableSpace = unallocatedSpace + imageCacheSize;
28
- return availableSpace > byteLength;
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.getMaxInstanceSize = () => this._maxInstanceSize;
32
- this.getCacheSize = () => this._imageCacheSize + this._volumeCacheSize;
32
+ this.getCacheSize = () => this._imageCacheSize;
33
33
  this._decacheImage = (imageId) => {
34
- const { imageLoadObject } = this._imageCache.get(imageId);
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 (volumeLoadObject.decache) {
57
- volumeLoadObject.decache();
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 === undefined) {
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 === undefined) {
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 === undefined) {
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 === undefined) {
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 === undefined) {
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 === undefined) {
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
- let cachedImages = Array.from(this._imageCache.values());
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
- let cachedImageIds = cachedImages.map((im) => im.imageId);
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
- this._putImageCommon(imageId, image, cachedImage);
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 === undefined) {
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?.imageIds?.length) {
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
- putVolumeLoadObject(volumeId, volumeLoadObject) {
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
- if (!this._volumeCache.get(volumeId)) {
420
- console.warn('The image was purged from the cache before it completed loading.');
421
- return;
484
+ try {
485
+ this._putVolumeCommon(volumeId, volume, cachedVolume);
422
486
  }
423
- if (Number.isNaN(volume.sizeInBytes)) {
424
- throw new Error('putVolumeLoadObject: volume.sizeInBytes must not be undefined');
425
- }
426
- if (volume.sizeInBytes.toFixed === undefined) {
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
- type ContourProps = {
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
- type ContourSetProps = {
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, PixelDataTypedArray, ImageVolumeProps, IImage, IImageLoadObject } from '../../types';
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: any;
31
- loadStatus?: Record<string, any>;
33
+ vtkOpenGLTexture: vtkStreamingOpenGLTexture;
34
+ loadStatus?: Record<string, unknown>;
32
35
  referencedVolumeId?: string;
33
- referencedImageIds?: Array<string>;
36
+ referencedImageIds?: string[];
34
37
  hasPixelSpacing: boolean;
35
- additionalDetails?: Record<string, any>;
38
+ additionalDetails?: Record<string, unknown>;
39
+ voxelManager?: IVoxelManager<number> | IVoxelManager<RGB>;
40
+ dataType?: PixelDataTypedArrayString;
41
+ numTimePoints?: number;
36
42
  constructor(props: ImageVolumeProps);
37
- get imageIds(): Array<string>;
38
- set imageIds(newImageIds: Array<string>);
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
- getScalarDataArrays(): PixelDataTypedArray[];
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;