@cornerstonejs/core 4.22.13 → 5.0.0
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/BaseRenderingEngine.d.ts +4 -5
- package/dist/esm/RenderingEngine/BaseRenderingEngine.js +48 -61
- package/dist/esm/RenderingEngine/BaseVolumeViewport.js +10 -17
- package/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.d.ts +1 -0
- package/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.js +3 -0
- package/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.d.ts +10 -2
- package/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.js +64 -6
- package/dist/esm/RenderingEngine/CanvasActor/index.d.ts +4 -0
- package/dist/esm/RenderingEngine/CanvasActor/index.js +59 -48
- package/dist/esm/RenderingEngine/ContextPoolRenderingEngine.d.ts +3 -4
- package/dist/esm/RenderingEngine/ContextPoolRenderingEngine.js +52 -34
- package/dist/esm/RenderingEngine/ECGViewport.d.ts +1 -1
- package/dist/esm/RenderingEngine/ECGViewport.js +33 -160
- package/dist/esm/RenderingEngine/GenericViewport/DefaultRenderPathResolver.d.ts +10 -0
- package/dist/esm/RenderingEngine/GenericViewport/DefaultRenderPathResolver.js +25 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/CanvasECGRenderPath.d.ts +17 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/CanvasECGRenderPath.js +144 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/DefaultECGDataProvider.d.ts +5 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/DefaultECGDataProvider.js +13 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGProjectionTypes.d.ts +42 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGProjectionTypes.js +2 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGRenderPathResolver.d.ts +4 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGRenderPathResolver.js +8 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGResolvedView.d.ts +27 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGResolvedView.js +121 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewport.d.ts +55 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewport.js +289 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewportLegacyAdapter.d.ts +13 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewportLegacyAdapter.js +70 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewportTypes.d.ts +69 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ECGViewportTypes.js +0 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionAdapter.d.ts +8 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionAdapter.js +12 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionPresentation.d.ts +7 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionPresentation.js +52 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionSnapshot.d.ts +2 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgProjectionSnapshot.js +94 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgViewportCamera.d.ts +27 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/ecgViewportCamera.js +82 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/index.d.ts +10 -0
- package/dist/esm/RenderingEngine/GenericViewport/ECG/index.js +8 -0
- package/dist/esm/RenderingEngine/GenericViewport/GenericViewport.d.ts +82 -0
- package/dist/esm/RenderingEngine/GenericViewport/GenericViewport.js +369 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/CpuImageSliceRenderPath.d.ts +24 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/CpuImageSliceRenderPath.js +456 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/CpuVolumeSliceRenderPath.d.ts +25 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/CpuVolumeSliceRenderPath.js +514 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/DefaultPlanarDataProvider.d.ts +6 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/DefaultPlanarDataProvider.js +80 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarCPUScalarViewportSampler.d.ts +47 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarCPUScalarViewportSampler.js +439 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarCPUVolumeSampler.d.ts +98 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarCPUVolumeSampler.js +686 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarLegacyCompatibilityController.d.ts +81 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarLegacyCompatibilityController.js +526 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarMountedData.d.ts +34 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarMountedData.js +111 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarProjectionTypes.d.ts +58 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarProjectionTypes.js +2 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarRenderPathDecisionService.d.ts +28 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarRenderPathDecisionService.js +145 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarRenderPathResolver.d.ts +4 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarRenderPathResolver.js +16 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarResolvedView.d.ts +91 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarResolvedView.js +305 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewReferenceController.d.ts +72 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewReferenceController.js +406 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewport.d.ts +187 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewport.js +1175 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewportLegacyAdapter.d.ts +44 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewportLegacyAdapter.js +279 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewportTypes.d.ts +151 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/PlanarViewportTypes.js +0 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/VtkImageMapperRenderPath.d.ts +21 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/VtkImageMapperRenderPath.js +259 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/VtkVolumeSliceRenderPath.d.ts +23 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/VtkVolumeSliceRenderPath.js +289 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/buildPlanarActorEntry.d.ts +10 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/buildPlanarActorEntry.js +54 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/index.d.ts +23 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/index.js +20 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarActorCompatibility.d.ts +4 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarActorCompatibility.js +42 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarAdapterCoordinateTransforms.d.ts +44 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarAdapterCoordinateTransforms.js +129 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCPUVolumeSamplingUtils.d.ts +11 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCPUVolumeSamplingUtils.js +54 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCameraScale.d.ts +10 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCameraScale.js +35 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCpuImageTransforms.d.ts +3 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCpuImageTransforms.js +35 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCpuViewportMath.d.ts +10 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarCpuViewportMath.js +35 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarImageEvents.d.ts +22 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarImageEvents.js +28 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarLegacyCompatibility.d.ts +13 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarLegacyCompatibility.js +136 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarMath.d.ts +3 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarMath.js +15 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarOrientationVectors.d.ts +12 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarOrientationVectors.js +37 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionAdapter.d.ts +7 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionAdapter.js +28 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionFallback.d.ts +4 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionFallback.js +25 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionPresentation.d.ts +5 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionPresentation.js +95 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionSnapshot.d.ts +6 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarProjectionSnapshot.js +126 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderCamera.d.ts +46 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderCamera.js +332 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderPathProjection.d.ts +51 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderPathProjection.js +96 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderPathSelector.d.ts +4 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRenderPathSelector.js +12 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRuntimeTypes.d.ts +86 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarRuntimeTypes.js +0 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarSliceBasis.d.ts +51 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarSliceBasis.js +330 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewPresentation.d.ts +16 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewPresentation.js +25 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewReference.d.ts +46 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewReference.js +243 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewState.d.ts +5 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarViewState.js +59 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarVolumePresentation.d.ts +10 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarVolumePresentation.js +223 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarVolumeSliceBlendMode.d.ts +5 -0
- package/dist/esm/RenderingEngine/GenericViewport/Planar/planarVolumeSliceBlendMode.js +36 -0
- package/dist/esm/RenderingEngine/GenericViewport/ResolvedViewportView.d.ts +12 -0
- package/dist/esm/RenderingEngine/GenericViewport/ResolvedViewportView.js +10 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/DefaultVideoDataProvider.d.ts +5 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/DefaultVideoDataProvider.js +18 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/HtmlVideoRenderPath.d.ts +19 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/HtmlVideoRenderPath.js +141 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/VideoProjectionTypes.d.ts +45 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/VideoProjectionTypes.js +2 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/VideoRenderPathResolver.d.ts +4 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/VideoRenderPathResolver.js +8 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/VideoResolvedView.d.ts +29 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/VideoResolvedView.js +108 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewport.d.ts +59 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewport.js +458 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewportLegacyAdapter.d.ts +15 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewportLegacyAdapter.js +114 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewportTypes.d.ts +45 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/VideoViewportTypes.js +0 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/index.d.ts +10 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/index.js +8 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionAdapter.d.ts +8 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionAdapter.js +12 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionPresentation.d.ts +7 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionPresentation.js +66 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionSnapshot.d.ts +2 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/videoProjectionSnapshot.js +86 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/videoViewportCamera.d.ts +30 -0
- package/dist/esm/RenderingEngine/GenericViewport/Video/videoViewportCamera.js +105 -0
- package/dist/esm/RenderingEngine/GenericViewport/ViewportArchitectureTypes.d.ts +126 -0
- package/dist/esm/RenderingEngine/GenericViewport/ViewportArchitectureTypes.js +20 -0
- package/dist/esm/RenderingEngine/GenericViewport/ViewportCameraTypes.d.ts +12 -0
- package/dist/esm/RenderingEngine/GenericViewport/ViewportCameraTypes.js +0 -0
- package/dist/esm/RenderingEngine/GenericViewport/ViewportProjectionTypes.d.ts +101 -0
- package/dist/esm/RenderingEngine/GenericViewport/ViewportProjectionTypes.js +0 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/DefaultVolume3DDataProvider.d.ts +8 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/DefaultVolume3DDataProvider.js +58 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DProjectionTypes.d.ts +35 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DProjectionTypes.js +2 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DRenderPathResolver.d.ts +4 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DRenderPathResolver.js +9 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DResolvedView.d.ts +18 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/Volume3DResolvedView.js +42 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VolumeViewport3DLegacyAdapter.d.ts +39 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VolumeViewport3DLegacyAdapter.js +296 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VtkGeometry3DRenderPath.d.ts +22 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VtkGeometry3DRenderPath.js +156 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VtkVolume3DRenderPath.d.ts +23 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/VtkVolume3DRenderPath.js +205 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/applyVolume3DCamera.d.ts +4 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/applyVolume3DCamera.js +33 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/index.d.ts +10 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/index.js +8 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/viewport3D.d.ts +60 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/viewport3D.js +399 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/viewport3DTypes.d.ts +88 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/viewport3DTypes.js +0 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionAdapter.d.ts +7 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionAdapter.js +27 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionCamera.d.ts +12 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionCamera.js +35 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionPresentation.d.ts +4 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionPresentation.js +22 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionSnapshot.d.ts +2 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/volume3DProjectionSnapshot.js +52 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/vtkVolume3DInitialCamera.d.ts +3 -0
- package/dist/esm/RenderingEngine/GenericViewport/Volume3D/vtkVolume3DInitialCamera.js +110 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/DefaultWSIDataProvider.d.ts +6 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/DefaultWSIDataProvider.js +35 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/DicomMicroscopyRenderPath.d.ts +16 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/DicomMicroscopyRenderPath.js +125 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIProjectionTypes.d.ts +40 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIProjectionTypes.js +2 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIRenderPathResolver.d.ts +4 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIRenderPathResolver.js +8 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIResolvedView.d.ts +26 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIResolvedView.js +104 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewport.d.ts +69 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewport.js +392 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewportLegacyAdapter.d.ts +22 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewportLegacyAdapter.js +144 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewportTypes.d.ts +58 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/WSIViewportTypes.js +0 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/index.d.ts +10 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/index.js +8 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionAdapter.d.ts +8 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionAdapter.js +12 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionPresentation.d.ts +7 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionPresentation.js +47 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionSnapshot.d.ts +2 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiProjectionSnapshot.js +90 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiTransformUtils.d.ts +29 -0
- package/dist/esm/RenderingEngine/GenericViewport/WSI/wsiTransformUtils.js +128 -0
- package/dist/esm/RenderingEngine/GenericViewport/genericViewportDataSetAccess.d.ts +35 -0
- package/dist/esm/RenderingEngine/GenericViewport/genericViewportDataSetAccess.js +87 -0
- package/dist/esm/RenderingEngine/GenericViewport/genericViewportReferenceCompatibility.d.ts +18 -0
- package/dist/esm/RenderingEngine/GenericViewport/genericViewportReferenceCompatibility.js +238 -0
- package/dist/esm/RenderingEngine/GenericViewport/index.d.ts +23 -0
- package/dist/esm/RenderingEngine/GenericViewport/index.js +14 -0
- package/dist/esm/RenderingEngine/GenericViewport/setVtkCameraClippingRange.d.ts +2 -0
- package/dist/esm/RenderingEngine/GenericViewport/setVtkCameraClippingRange.js +8 -0
- package/dist/esm/RenderingEngine/GenericViewport/viewportProjection.d.ts +98 -0
- package/dist/esm/RenderingEngine/GenericViewport/viewportProjection.js +81 -0
- package/dist/esm/RenderingEngine/RenderingEngine.d.ts +3 -5
- package/dist/esm/RenderingEngine/RenderingEngine.js +3 -9
- package/dist/esm/RenderingEngine/StackViewport.d.ts +0 -1
- package/dist/esm/RenderingEngine/StackViewport.js +37 -45
- package/dist/esm/RenderingEngine/TiledRenderingEngine.d.ts +1 -0
- package/dist/esm/RenderingEngine/TiledRenderingEngine.js +23 -20
- package/dist/esm/RenderingEngine/VideoViewport.d.ts +5 -13
- package/dist/esm/RenderingEngine/VideoViewport.js +32 -68
- package/dist/esm/RenderingEngine/Viewport.d.ts +14 -5
- package/dist/esm/RenderingEngine/Viewport.js +60 -24
- package/dist/esm/RenderingEngine/VolumeViewport.js +20 -7
- package/dist/esm/RenderingEngine/WSIViewport.d.ts +12 -12
- package/dist/esm/RenderingEngine/WSIViewport.js +28 -101
- package/dist/esm/RenderingEngine/helpers/addVolumesToViewports.js +6 -8
- package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.d.ts +4 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.js +157 -0
- package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/index.d.ts +2 -3
- package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/index.js +2 -3
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/calculateTransform.js +13 -3
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js +13 -3
- package/dist/esm/RenderingEngine/helpers/createVolumeSliceActor.d.ts +14 -0
- package/dist/esm/RenderingEngine/helpers/createVolumeSliceActor.js +69 -0
- package/dist/esm/RenderingEngine/helpers/getCameraVectors.d.ts +2 -1
- package/dist/esm/RenderingEngine/helpers/getCameraVectors.js +1 -1
- package/dist/esm/RenderingEngine/helpers/planarImageRendering.d.ts +51 -0
- package/dist/esm/RenderingEngine/helpers/planarImageRendering.js +116 -0
- package/dist/esm/RenderingEngine/helpers/planarVolumeRendering.d.ts +22 -0
- package/dist/esm/RenderingEngine/helpers/planarVolumeRendering.js +28 -0
- package/dist/esm/RenderingEngine/helpers/resolveViewportVolumeId.d.ts +1 -0
- package/dist/esm/RenderingEngine/helpers/resolveViewportVolumeId.js +19 -0
- package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.d.ts +3 -2
- package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js +46 -15
- package/dist/esm/RenderingEngine/helpers/setVolumesForViewports.js +6 -9
- package/dist/esm/RenderingEngine/helpers/stats/RenderModesPanel.d.ts +19 -0
- package/dist/esm/RenderingEngine/helpers/stats/RenderModesPanel.js +228 -0
- package/dist/esm/RenderingEngine/helpers/stats/StatsOverlay.d.ts +22 -3
- package/dist/esm/RenderingEngine/helpers/stats/StatsOverlay.js +192 -18
- package/dist/esm/RenderingEngine/helpers/stats/constants.d.ts +13 -1
- package/dist/esm/RenderingEngine/helpers/stats/constants.js +14 -1
- package/dist/esm/RenderingEngine/helpers/stats/enums.d.ts +2 -1
- package/dist/esm/RenderingEngine/helpers/stats/enums.js +1 -0
- package/dist/esm/RenderingEngine/helpers/stats/types.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/supportsVolumeCompatibilityApi.d.ts +4 -0
- package/dist/esm/RenderingEngine/helpers/supportsVolumeCompatibilityApi.js +7 -0
- package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.d.ts +27 -4
- package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.js +126 -11
- package/dist/esm/RenderingEngine/helpers/viewportTypeUsesCustomRenderingPipeline.d.ts +3 -1
- package/dist/esm/RenderingEngine/helpers/viewportTypeUsesCustomRenderingPipeline.js +9 -2
- package/dist/esm/RenderingEngine/helpers/vtkCanvasCoordinateTransforms.d.ts +12 -0
- package/dist/esm/RenderingEngine/helpers/vtkCanvasCoordinateTransforms.js +57 -0
- package/dist/esm/RenderingEngine/index.d.ts +69 -1
- package/dist/esm/RenderingEngine/index.js +40 -1
- package/dist/esm/RenderingEngine/vtkClasses/index.d.ts +3 -1
- package/dist/esm/RenderingEngine/vtkClasses/index.js +3 -1
- package/dist/esm/RenderingEngine/vtkClasses/vtkSharedImageResliceMapper.d.ts +7 -0
- package/dist/esm/RenderingEngine/vtkClasses/vtkSharedImageResliceMapper.js +21 -0
- package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLImageResliceMapper.d.ts +7 -0
- package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLImageResliceMapper.js +420 -0
- package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLViewNodeFactory.js +7 -0
- package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js +9 -3
- package/dist/esm/cache/cache.d.ts +1 -1
- package/dist/esm/cache/cache.js +4 -1
- package/dist/esm/cache/classes/BaseStreamingImageVolume.js +6 -6
- package/dist/esm/cache/classes/ImageVolume.js +5 -0
- package/dist/esm/enums/CalibrationTypes.d.ts +4 -12
- package/dist/esm/enums/CalibrationTypes.js +3 -13
- package/dist/esm/enums/MetadataModules.d.ts +3 -38
- package/dist/esm/enums/MetadataModules.js +2 -39
- package/dist/esm/enums/ViewportType.d.ts +6 -1
- package/dist/esm/enums/ViewportType.js +5 -0
- package/dist/esm/enums/ViewportTypes.d.ts +5 -0
- package/dist/esm/enums/ViewportTypes.js +23 -0
- package/dist/esm/enums/index.d.ts +2 -1
- package/dist/esm/enums/index.js +2 -1
- package/dist/esm/getEnabledElement.js +4 -1
- package/dist/esm/index.d.ts +72 -2
- package/dist/esm/index.js +41 -2
- package/dist/esm/init.d.ts +2 -1
- package/dist/esm/init.js +14 -1
- package/dist/esm/loaders/ProgressiveRetrieveImages.js +11 -11
- package/dist/esm/loaders/cornerstoneMeshLoader.js +1 -1
- package/dist/esm/loaders/imageLoader.d.ts +2 -1
- package/dist/esm/loaders/imageLoader.js +25 -10
- package/dist/esm/loaders/volumeLoader.js +8 -4
- package/dist/esm/metaData.d.ts +2 -8
- package/dist/esm/metaData.js +2 -75
- package/dist/esm/types/Cornerstone3DConfig.d.ts +11 -0
- package/dist/esm/types/EventTypes.d.ts +3 -3
- package/dist/esm/types/IActor.d.ts +33 -0
- package/dist/esm/types/IActor.js +8 -0
- package/dist/esm/types/ICamera.d.ts +2 -2
- package/dist/esm/types/IEnabledElement.d.ts +1 -1
- package/dist/esm/types/IImageCalibration.d.ts +2 -11
- package/dist/esm/types/IViewport.d.ts +9 -1
- package/dist/esm/types/IWSIViewport.d.ts +3 -2
- package/dist/esm/types/ImagePlaneModule.d.ts +3 -1
- package/dist/esm/types/MetadataModuleTypes.d.ts +1 -70
- package/dist/esm/types/ViewportTypeRegistry.d.ts +33 -0
- package/dist/esm/types/ViewportTypeRegistry.js +0 -0
- package/dist/esm/types/index.d.ts +7 -3
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/utilities/ECGUtilities.d.ts +83 -0
- package/dist/esm/utilities/ECGUtilities.js +228 -0
- package/dist/esm/utilities/FrameRange.js +3 -2
- package/dist/esm/utilities/RLEVoxelMap.js +9 -7
- package/dist/esm/utilities/VideoUtilities.d.ts +34 -0
- package/dist/esm/utilities/VideoUtilities.js +102 -0
- package/dist/esm/utilities/VoxelManager.d.ts +20 -1
- package/dist/esm/utilities/VoxelManager.js +162 -27
- package/dist/esm/utilities/WSIUtilities.d.ts +119 -0
- package/dist/esm/utilities/WSIUtilities.js +110 -0
- package/dist/esm/utilities/buildMetadata.js +23 -23
- package/dist/esm/utilities/calculateSpacingBetweenImageIds.js +6 -5
- package/dist/esm/utilities/calibratedPixelSpacingMetadataProvider.d.ts +5 -5
- package/dist/esm/utilities/calibratedPixelSpacingMetadataProvider.js +2 -15
- package/dist/esm/utilities/clonePoint3.d.ts +3 -0
- package/dist/esm/utilities/clonePoint3.js +3 -0
- package/dist/esm/utilities/colormap.d.ts +2 -1
- package/dist/esm/utilities/colormap.js +43 -4
- package/dist/esm/utilities/deepClone.d.ts +1 -1
- package/dist/esm/utilities/deepClone.js +46 -17
- package/dist/esm/utilities/genericMetadataProvider.js +2 -1
- package/dist/esm/utilities/genericViewportDataSetMetadataProvider.d.ts +8 -0
- package/dist/esm/utilities/genericViewportDataSetMetadataProvider.js +23 -0
- package/dist/esm/utilities/getAcquisitionPlaneOrientation.d.ts +2 -0
- package/dist/esm/utilities/getAcquisitionPlaneOrientation.js +7 -0
- package/dist/esm/utilities/getClosestImageId.js +2 -1
- package/dist/esm/utilities/getClosestStackImageIndexForPoint.js +2 -1
- package/dist/esm/utilities/getPixelSpacingInformation.d.ts +5 -13
- package/dist/esm/utilities/getPixelSpacingInformation.js +4 -93
- package/dist/esm/utilities/getScalingParameters.js +4 -3
- package/dist/esm/utilities/getVOIRangeFromWindowLevel.d.ts +3 -0
- package/dist/esm/utilities/getVOIRangeFromWindowLevel.js +18 -0
- package/dist/esm/utilities/getViewportImageIds.js +1 -1
- package/dist/esm/utilities/getViewportsWithImageURI.d.ts +2 -4
- package/dist/esm/utilities/getViewportsWithImageURI.js +4 -1
- package/dist/esm/utilities/getViewportsWithVolumeId.d.ts +2 -2
- package/dist/esm/utilities/getViewportsWithVolumeId.js +4 -1
- package/dist/esm/utilities/getViewportsWithVolumeURI.d.ts +2 -2
- package/dist/esm/utilities/getViewportsWithVolumeURI.js +4 -1
- package/dist/esm/utilities/getVolumeViewReferenceId.d.ts +6 -0
- package/dist/esm/utilities/getVolumeViewReferenceId.js +6 -0
- package/dist/esm/utilities/getVolumeViewportScrollInfo.d.ts +1 -1
- package/dist/esm/utilities/getVolumeViewportsContainingSameVolumes.d.ts +2 -2
- package/dist/esm/utilities/getVolumeViewportsContainingSameVolumes.js +4 -1
- package/dist/esm/utilities/hasOwn.d.ts +1 -0
- package/dist/esm/utilities/hasOwn.js +3 -0
- package/dist/esm/utilities/imageIdToURI.d.ts +3 -1
- package/dist/esm/utilities/imageIdToURI.js +2 -7
- package/dist/esm/utilities/index.d.ts +11 -1
- package/dist/esm/utilities/index.js +11 -1
- package/dist/esm/utilities/isEqual.d.ts +3 -5
- package/dist/esm/utilities/isEqual.js +3 -48
- package/dist/esm/utilities/isValidVolume.js +19 -4
- package/dist/esm/utilities/isVideoTransferSyntax.d.ts +3 -1
- package/dist/esm/utilities/isVideoTransferSyntax.js +3 -25
- package/dist/esm/utilities/loadImageToCanvas.js +2 -2
- package/dist/esm/utilities/logger.d.ts +3 -14
- package/dist/esm/utilities/logger.js +2 -23
- package/dist/esm/utilities/rotateToViewCoordinates.js +7 -7
- package/dist/esm/utilities/scroll.d.ts +1 -1
- package/dist/esm/utilities/scroll.js +2 -1
- package/dist/esm/utilities/sortImageIdsAndGetSpacing.js +4 -3
- package/dist/esm/utilities/splitImageIdsBy4DTags.d.ts +2 -10
- package/dist/esm/utilities/splitImageIdsBy4DTags.js +2 -312
- package/dist/esm/utilities/toNumber.d.ts +3 -1
- package/dist/esm/utilities/toNumber.js +3 -3
- package/dist/esm/utilities/viewportCapabilities.d.ts +19 -0
- package/dist/esm/utilities/viewportCapabilities.js +32 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/webWorkerManager/webWorkerManager.js +3 -1
- package/package.json +16 -8
|
@@ -7,7 +7,10 @@ import scaleRgbTransferFunction from './scaleRgbTransferFunction';
|
|
|
7
7
|
import triggerEvent from './triggerEvent';
|
|
8
8
|
import uuidv4 from './uuidv4';
|
|
9
9
|
import getMinMax from './getMinMax';
|
|
10
|
+
import clonePoint3 from './clonePoint3';
|
|
11
|
+
import hasOwn from './hasOwn';
|
|
10
12
|
import getRuntimeId from './getRuntimeId';
|
|
13
|
+
import getVOIRangeFromWindowLevel from './getVOIRangeFromWindowLevel';
|
|
11
14
|
import imageIdToURI from './imageIdToURI';
|
|
12
15
|
import calibratedPixelSpacingMetadataProvider from './calibratedPixelSpacingMetadataProvider';
|
|
13
16
|
import clamp from './clamp';
|
|
@@ -54,6 +57,7 @@ import { updateVTKImageDataWithCornerstoneImage } from './updateVTKImageDataWith
|
|
|
54
57
|
import ProgressiveIterator from './ProgressiveIterator';
|
|
55
58
|
import decimate from './decimate';
|
|
56
59
|
import imageRetrieveMetadataProvider from './imageRetrieveMetadataProvider';
|
|
60
|
+
import genericViewportDataSetMetadataProvider from './genericViewportDataSetMetadataProvider';
|
|
57
61
|
import isVideoTransferSyntax from './isVideoTransferSyntax';
|
|
58
62
|
import { getBufferConfiguration } from './getBufferConfiguration';
|
|
59
63
|
import { generateVolumePropsFromImageIds } from './generateVolumePropsFromImageIds';
|
|
@@ -69,6 +73,9 @@ import { getRandomSampleFromArray } from './getRandomSampleFromArray';
|
|
|
69
73
|
import { getVolumeId } from './getVolumeId';
|
|
70
74
|
import { hasFloatScalingParameters } from './hasFloatScalingParameters';
|
|
71
75
|
import { pointInShapeCallback } from './pointInShapeCallback';
|
|
76
|
+
import * as ECGUtilities from './ECGUtilities';
|
|
77
|
+
import * as VideoUtilities from './VideoUtilities';
|
|
78
|
+
import * as WSIUtilities from './WSIUtilities';
|
|
72
79
|
export * as planar from './planar';
|
|
73
80
|
import * as windowLevel from './windowLevel';
|
|
74
81
|
import * as colormap from './colormap';
|
|
@@ -90,7 +97,9 @@ import { jumpToSlice } from './jumpToSlice';
|
|
|
90
97
|
import scroll from './scroll';
|
|
91
98
|
import clip from './clip';
|
|
92
99
|
import createSubVolume from './createSubVolume';
|
|
100
|
+
import getAcquisitionPlaneOrientation from './getAcquisitionPlaneOrientation';
|
|
93
101
|
import getVolumeDirectionVectors from './getVolumeDirectionVectors';
|
|
102
|
+
import getVolumeViewReferenceId from './getVolumeViewReferenceId';
|
|
94
103
|
import calculateSpacingBetweenImageIds from './calculateSpacingBetweenImageIds';
|
|
95
104
|
export * as logger from './logger';
|
|
96
105
|
import { calculateNeighborhoodStats } from './calculateNeighborhoodStats';
|
|
@@ -98,8 +107,9 @@ export * from './getPixelSpacingInformation';
|
|
|
98
107
|
export * from './getPlaneCubeIntersectionDimensions';
|
|
99
108
|
export * from './rotateToViewCoordinates';
|
|
100
109
|
import { asArray } from './asArray';
|
|
110
|
+
import { viewportSupportsImageSlices, viewportSupportsStackCalibration, viewportSupportsStackCompatibility, viewportSupportsVolumeActors, viewportSupportsVolumeCompatibility, viewportSupportsVolumeId, viewportSupportsVolumeURI, } from './viewportCapabilities';
|
|
101
111
|
import { getNormalizedAspectRatio } from './getNormalizedAspectRatio';
|
|
102
112
|
export { updatePlaneRestriction } from './updatePlaneRestriction';
|
|
103
113
|
const getViewportModality = (viewport, volumeId) => _getViewportModality(viewport, volumeId, cache.getVolume);
|
|
104
114
|
export * from './isEqual';
|
|
105
|
-
export { FrameRange, eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, fnv1aHash, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, getMinMax, getRuntimeId, isOpposite, getViewportModality, windowLevel, convertToGrayscale, convertColorArrayToRgbString, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, transformIndexToWorld, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, isPTPrescaledWithSUV, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, getCurrentVolumeViewportSlice, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, PointsManager, getScalingParameters, colormap, getImageLegacy, ProgressiveIterator, decimate, imageRetrieveMetadataProvider, transferFunctionUtils, updateVTKImageDataWithCornerstoneImage, sortImageIdsAndGetSpacing, makeVolumeMetadata, isValidVolume, genericMetadataProvider, isVideoTransferSyntax, HistoryMemo, generateVolumePropsFromImageIds, getBufferConfiguration, VoxelManager, RLEVoxelMap, convertStackToVolumeViewport, convertVolumeToStackViewport, roundNumber, roundToPrecision, getViewportImageIds, getRandomSampleFromArray, getVolumeId, color, hasFloatScalingParameters, getDynamicVolumeInfo, autoLoad, scaleArray, deepClone, splitImageIdsBy4DTags, handleMultiframe4D, generateFrameImageId, pointInShapeCallback, deepEqual, jumpToSlice, scroll, clip, transformWorldToIndexContinuous, createSubVolume, getVolumeDirectionVectors, calculateSpacingBetweenImageIds, getImageDataMetadata, buildMetadata, calculateNeighborhoodStats, asArray, getNormalizedAspectRatio, };
|
|
115
|
+
export { FrameRange, eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, fnv1aHash, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, getMinMax, clonePoint3, hasOwn, getRuntimeId, getVOIRangeFromWindowLevel, isOpposite, getViewportModality, windowLevel, convertToGrayscale, convertColorArrayToRgbString, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, transformIndexToWorld, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, isPTPrescaledWithSUV, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, getCurrentVolumeViewportSlice, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, PointsManager, getScalingParameters, colormap, getImageLegacy, ProgressiveIterator, decimate, imageRetrieveMetadataProvider, genericViewportDataSetMetadataProvider, transferFunctionUtils, updateVTKImageDataWithCornerstoneImage, sortImageIdsAndGetSpacing, makeVolumeMetadata, isValidVolume, genericMetadataProvider, isVideoTransferSyntax, HistoryMemo, generateVolumePropsFromImageIds, getBufferConfiguration, VoxelManager, RLEVoxelMap, convertStackToVolumeViewport, convertVolumeToStackViewport, roundNumber, roundToPrecision, getViewportImageIds, getRandomSampleFromArray, getVolumeId, color, hasFloatScalingParameters, getDynamicVolumeInfo, autoLoad, scaleArray, deepClone, splitImageIdsBy4DTags, handleMultiframe4D, generateFrameImageId, pointInShapeCallback, ECGUtilities, VideoUtilities, WSIUtilities, deepEqual, jumpToSlice, scroll, clip, transformWorldToIndexContinuous, createSubVolume, getAcquisitionPlaneOrientation, getVolumeDirectionVectors, getVolumeViewReferenceId, calculateSpacingBetweenImageIds, getImageDataMetadata, buildMetadata, calculateNeighborhoodStats, asArray, viewportSupportsImageSlices, viewportSupportsStackCalibration, viewportSupportsStackCompatibility, viewportSupportsVolumeActors, viewportSupportsVolumeCompatibility, viewportSupportsVolumeId, viewportSupportsVolumeURI, getNormalizedAspectRatio, };
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export declare function isNumber(n: number[] | number): boolean;
|
|
5
|
-
export default isEqual;
|
|
1
|
+
import { isEqual, isEqualNegative, isEqualAbs, isNumber, isEqual as isEqualDefault } from '@cornerstonejs/utils';
|
|
2
|
+
export { isEqual, isEqualNegative, isEqualAbs, isNumber };
|
|
3
|
+
export default isEqualDefault;
|
|
@@ -1,48 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
function areArraysEqual(arr1, arr2, tolerance = 1e-5) {
|
|
5
|
-
if (arr1.length !== arr2.length) {
|
|
6
|
-
return false;
|
|
7
|
-
}
|
|
8
|
-
for (let i = 0; i < arr1.length; i++) {
|
|
9
|
-
if (!areNumbersEqualWithTolerance(arr1[i], arr2[i], tolerance)) {
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
function isNumberType(value) {
|
|
16
|
-
return typeof value === 'number';
|
|
17
|
-
}
|
|
18
|
-
function isNumberArrayLike(value) {
|
|
19
|
-
return (value &&
|
|
20
|
-
typeof value === 'object' &&
|
|
21
|
-
'length' in value &&
|
|
22
|
-
typeof value.length === 'number' &&
|
|
23
|
-
value.length > 0 &&
|
|
24
|
-
typeof value[0] === 'number');
|
|
25
|
-
}
|
|
26
|
-
export function isEqual(v1, v2, tolerance = 1e-5) {
|
|
27
|
-
if (typeof v1 !== typeof v2 || v1 === null || v2 === null) {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
if (isNumberType(v1) && isNumberType(v2)) {
|
|
31
|
-
return areNumbersEqualWithTolerance(v1, v2, tolerance);
|
|
32
|
-
}
|
|
33
|
-
if (isNumberArrayLike(v1) && isNumberArrayLike(v2)) {
|
|
34
|
-
return areArraysEqual(v1, v2, tolerance);
|
|
35
|
-
}
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
const negative = (v) => typeof v === 'number' ? -v : v?.map ? v.map(negative) : !v;
|
|
39
|
-
const abs = (v) => typeof v === 'number' ? Math.abs(v) : v?.map ? v.map(abs) : v;
|
|
40
|
-
export const isEqualNegative = (v1, v2, tolerance = undefined) => isEqual(v1, negative(v2), tolerance);
|
|
41
|
-
export const isEqualAbs = (v1, v2, tolerance = undefined) => isEqual(abs(v1), abs(v2), tolerance);
|
|
42
|
-
export function isNumber(n) {
|
|
43
|
-
if (Array.isArray(n)) {
|
|
44
|
-
return isNumber(n[0]);
|
|
45
|
-
}
|
|
46
|
-
return isFinite(n) && !isNaN(n);
|
|
47
|
-
}
|
|
48
|
-
export default isEqual;
|
|
1
|
+
import { isEqual, isEqualNegative, isEqualAbs, isNumber, isEqual as isEqualDefault, } from '@cornerstonejs/utils';
|
|
2
|
+
export { isEqual, isEqualNegative, isEqualAbs, isNumber };
|
|
3
|
+
export default isEqualDefault;
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import * as metaData from '../metaData';
|
|
2
|
+
import { MetadataModules } from '../enums';
|
|
2
3
|
import isEqual from './isEqual';
|
|
3
4
|
function isValidVolume(imageIds) {
|
|
4
5
|
if (!imageIds.length) {
|
|
5
6
|
return false;
|
|
6
7
|
}
|
|
7
8
|
const imageId0 = imageIds[0];
|
|
8
|
-
const
|
|
9
|
-
|
|
9
|
+
const generalSeries = metaData.get(MetadataModules.GENERAL_SERIES, imageId0);
|
|
10
|
+
if (!generalSeries) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const { modality, seriesInstanceUID } = generalSeries;
|
|
14
|
+
const imagePlane = metaData.get(MetadataModules.IMAGE_PLANE, imageId0);
|
|
15
|
+
if (!imagePlane) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
const { imageOrientationPatient, pixelSpacing, frameOfReferenceUID, columns, rows, usingDefaultValues, } = imagePlane;
|
|
10
19
|
if (usingDefaultValues) {
|
|
11
20
|
return false;
|
|
12
21
|
}
|
|
@@ -22,8 +31,14 @@ function isValidVolume(imageIds) {
|
|
|
22
31
|
let validVolume = true;
|
|
23
32
|
for (let i = 0; i < imageIds.length; i++) {
|
|
24
33
|
const imageId = imageIds[i];
|
|
25
|
-
const
|
|
26
|
-
const
|
|
34
|
+
const general = metaData.get(MetadataModules.GENERAL_SERIES, imageId);
|
|
35
|
+
const plane = metaData.get(MetadataModules.IMAGE_PLANE, imageId);
|
|
36
|
+
if (!general || !plane) {
|
|
37
|
+
validVolume = false;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
const { modality, seriesInstanceUID } = general;
|
|
41
|
+
const { imageOrientationPatient, pixelSpacing, columns, rows } = plane;
|
|
27
42
|
if (seriesInstanceUID !== baseMetadata.seriesInstanceUID) {
|
|
28
43
|
validVolume = false;
|
|
29
44
|
break;
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
import { utilities } from '@cornerstonejs/metadata';
|
|
2
|
+
declare const _default: typeof utilities.isVideoTransferSyntax;
|
|
3
|
+
export default _default;
|
|
1
4
|
export declare const videoUIDs: Set<string>;
|
|
2
|
-
export default function isVideoTransferSyntax(uidOrUids: string | string[]): string | false;
|
|
@@ -1,25 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
'1.2.840.10008.1.2.4.101',
|
|
5
|
-
'1.2.840.10008.1.2.4.101.1',
|
|
6
|
-
'1.2.840.10008.1.2.4.102',
|
|
7
|
-
'1.2.840.10008.1.2.4.102.1',
|
|
8
|
-
'1.2.840.10008.1.2.4.103',
|
|
9
|
-
'1.2.840.10008.1.2.4.103.1',
|
|
10
|
-
'1.2.840.10008.1.2.4.104',
|
|
11
|
-
'1.2.840.10008.1.2.4.104.1',
|
|
12
|
-
'1.2.840.10008.1.2.4.105',
|
|
13
|
-
'1.2.840.10008.1.2.4.105.1',
|
|
14
|
-
'1.2.840.10008.1.2.4.106',
|
|
15
|
-
'1.2.840.10008.1.2.4.106.1',
|
|
16
|
-
'1.2.840.10008.1.2.4.107',
|
|
17
|
-
'1.2.840.10008.1.2.4.108',
|
|
18
|
-
]);
|
|
19
|
-
export default function isVideoTransferSyntax(uidOrUids) {
|
|
20
|
-
if (!uidOrUids) {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
const uids = Array.isArray(uidOrUids) ? uidOrUids : [uidOrUids];
|
|
24
|
-
return uids.find((uid) => videoUIDs.has(uid));
|
|
25
|
-
}
|
|
1
|
+
import { utilities } from '@cornerstonejs/metadata';
|
|
2
|
+
export default utilities.isVideoTransferSyntax;
|
|
3
|
+
export const { videoUIDs } = utilities;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { loadAndCacheImage } from '../loaders/imageLoader';
|
|
2
2
|
import * as metaData from '../metaData';
|
|
3
|
-
import { RequestType } from '../enums';
|
|
3
|
+
import { MetadataModules, RequestType } from '../enums';
|
|
4
4
|
import imageLoadPoolManager from '../requestPool/imageLoadPoolManager';
|
|
5
5
|
import renderToCanvasGPU from './renderToCanvasGPU';
|
|
6
6
|
import renderToCanvasCPU from './renderToCanvasCPU';
|
|
@@ -15,7 +15,7 @@ export default function loadImageToCanvas(options) {
|
|
|
15
15
|
const renderFn = useCPURendering ? renderToCanvasCPU : renderToCanvasGPU;
|
|
16
16
|
return new Promise((resolve, reject) => {
|
|
17
17
|
function successCallback(imageOrVolume, imageId) {
|
|
18
|
-
const { modality } = metaData.get(
|
|
18
|
+
const { modality } = metaData.get(MetadataModules.GENERAL_SERIES, imageId) || {};
|
|
19
19
|
const image = !isVolume && imageOrVolume;
|
|
20
20
|
const volume = isVolume && imageOrVolume;
|
|
21
21
|
if (image) {
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
export declare function getRootLogger(name: string): Logger;
|
|
6
|
-
export declare function getLogger(...name: string[]): Logger;
|
|
7
|
-
export declare const cs3dLog: Logger;
|
|
8
|
-
export declare const coreLog: Logger;
|
|
9
|
-
export declare const toolsLog: Logger;
|
|
10
|
-
export declare const loaderLog: Logger;
|
|
11
|
-
export declare const aiLog: Logger;
|
|
12
|
-
export declare const examplesLog: Logger;
|
|
13
|
-
export declare const dicomConsistencyLog: Logger;
|
|
14
|
-
export declare const imageConsistencyLog: Logger;
|
|
1
|
+
import { logging } from '@cornerstonejs/utils';
|
|
2
|
+
export declare const getRootLogger: typeof logging.getRootLogger, getLogger: typeof logging.getLogger, cs3dLog: logging.Logger, workerLog: logging.Logger, coreLog: logging.Logger, toolsLog: logging.Logger, loaderLog: logging.Logger, aiLog: logging.Logger, examplesLog: logging.Logger, dicomConsistencyLog: logging.Logger, imageConsistencyLog: logging.Logger;
|
|
3
|
+
export type Logger = logging.Logger;
|
|
@@ -1,23 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
const
|
|
3
|
-
if (typeof window !== 'undefined') {
|
|
4
|
-
window.log = loglevel;
|
|
5
|
-
}
|
|
6
|
-
export function getRootLogger(name) {
|
|
7
|
-
const logger = loglevel.getLogger(name[0]);
|
|
8
|
-
logger.getLogger = (...names) => {
|
|
9
|
-
return getRootLogger(`${name}.${names.join('.')}`);
|
|
10
|
-
};
|
|
11
|
-
return logger;
|
|
12
|
-
}
|
|
13
|
-
export function getLogger(...name) {
|
|
14
|
-
return getRootLogger(name.join('.'));
|
|
15
|
-
}
|
|
16
|
-
export const cs3dLog = getRootLogger('cs3d');
|
|
17
|
-
export const coreLog = cs3dLog.getLogger('core');
|
|
18
|
-
export const toolsLog = cs3dLog.getLogger('tools');
|
|
19
|
-
export const loaderLog = cs3dLog.getLogger('dicomImageLoader');
|
|
20
|
-
export const aiLog = cs3dLog.getLogger('ai');
|
|
21
|
-
export const examplesLog = cs3dLog.getLogger('examples');
|
|
22
|
-
export const dicomConsistencyLog = getLogger('consistency', 'dicom');
|
|
23
|
-
export const imageConsistencyLog = getLogger('consistency', 'image');
|
|
1
|
+
import { logging } from '@cornerstonejs/utils';
|
|
2
|
+
export const { getRootLogger, getLogger, cs3dLog, workerLog, coreLog, toolsLog, loaderLog, aiLog, examplesLog, dicomConsistencyLog, imageConsistencyLog, } = logging;
|
|
@@ -2,13 +2,13 @@ import { vec3 } from 'gl-matrix';
|
|
|
2
2
|
export function rotateToViewCoordinates(imageData, viewPlaneNormal, viewUp) {
|
|
3
3
|
const viewRight = vec3.cross(vec3.create(), viewPlaneNormal, viewUp);
|
|
4
4
|
vec3.normalize(viewRight, viewRight);
|
|
5
|
-
const
|
|
6
|
-
const xMin =
|
|
7
|
-
const xMax =
|
|
8
|
-
const yMin =
|
|
9
|
-
const yMax =
|
|
10
|
-
const zMin =
|
|
11
|
-
const zMax =
|
|
5
|
+
const spatialExtent = imageData.getSpatialExtent();
|
|
6
|
+
const xMin = spatialExtent[0];
|
|
7
|
+
const xMax = spatialExtent[1];
|
|
8
|
+
const yMin = spatialExtent[2];
|
|
9
|
+
const yMax = spatialExtent[3];
|
|
10
|
+
const zMin = spatialExtent[4];
|
|
11
|
+
const zMax = spatialExtent[5];
|
|
12
12
|
const corners = [
|
|
13
13
|
[xMin, yMin, zMin],
|
|
14
14
|
[xMax, yMin, zMin],
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import VolumeViewport from '../RenderingEngine/VolumeViewport';
|
|
2
2
|
import type { ScrollOptions, IViewport, IVideoViewport } from '../types';
|
|
3
3
|
export default function scroll(viewport: IViewport | IVideoViewport, options: ScrollOptions): void;
|
|
4
4
|
export declare function scrollVolume(viewport: VolumeViewport, volumeId: string, delta: number, scrollSlabs?: boolean): void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Events } from '../enums';
|
|
2
|
-
import
|
|
2
|
+
import StackViewport from '../RenderingEngine/StackViewport';
|
|
3
|
+
import VolumeViewport from '../RenderingEngine/VolumeViewport';
|
|
3
4
|
import getVolumeViewportScrollInfo from './getVolumeViewportScrollInfo';
|
|
4
5
|
import snapFocalPointToSlice from './snapFocalPointToSlice';
|
|
5
6
|
import getEnabledElement from '../getEnabledElement';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { vec3 } from 'gl-matrix';
|
|
2
2
|
import * as metaData from '../metaData';
|
|
3
|
+
import { MetadataModules } from '../enums';
|
|
3
4
|
import calculateSpacingBetweenImageIds from './calculateSpacingBetweenImageIds';
|
|
4
5
|
export default function sortImageIdsAndGetSpacing(imageIds, scanAxisNormal) {
|
|
5
|
-
const { imagePositionPatient: referenceImagePositionPatient, imageOrientationPatient, } = metaData.get(
|
|
6
|
+
const { imagePositionPatient: referenceImagePositionPatient, imageOrientationPatient, } = metaData.get(MetadataModules.IMAGE_PLANE, imageIds[0]);
|
|
6
7
|
if (!scanAxisNormal) {
|
|
7
8
|
const rowCosineVec = vec3.fromValues(imageOrientationPatient[0], imageOrientationPatient[1], imageOrientationPatient[2]);
|
|
8
9
|
const colCosineVec = vec3.fromValues(imageOrientationPatient[3], imageOrientationPatient[4], imageOrientationPatient[5]);
|
|
@@ -13,7 +14,7 @@ export default function sortImageIdsAndGetSpacing(imageIds, scanAxisNormal) {
|
|
|
13
14
|
const zSpacing = calculateSpacingBetweenImageIds(imageIds);
|
|
14
15
|
let sortedImageIds;
|
|
15
16
|
function getDistance(imageId) {
|
|
16
|
-
const { imagePositionPatient } = metaData.get(
|
|
17
|
+
const { imagePositionPatient } = metaData.get(MetadataModules.IMAGE_PLANE, imageId);
|
|
17
18
|
const positionVector = vec3.create();
|
|
18
19
|
vec3.sub(positionVector, referenceImagePositionPatient, imagePositionPatient);
|
|
19
20
|
return vec3.dot(positionVector, scanAxisNormal);
|
|
@@ -41,7 +42,7 @@ export default function sortImageIdsAndGetSpacing(imageIds, scanAxisNormal) {
|
|
|
41
42
|
sortedImageIds.reverse();
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
|
-
const { imagePositionPatient: origin } = metaData.get(
|
|
45
|
+
const { imagePositionPatient: origin } = metaData.get(MetadataModules.IMAGE_PLANE, sortedImageIds[0]);
|
|
45
46
|
const result = {
|
|
46
47
|
zSpacing,
|
|
47
48
|
origin,
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
splittingTag: string;
|
|
4
|
-
}
|
|
5
|
-
declare function generateFrameImageId(baseImageId: string, frameNumber: number): string;
|
|
6
|
-
declare function handleMultiframe4D(imageIds: string[]): MultiframeSplitResult | null;
|
|
7
|
-
declare function splitImageIdsBy4DTags(imageIds: string[]): {
|
|
8
|
-
imageIdGroups: string[][];
|
|
9
|
-
splittingTag: string | null;
|
|
10
|
-
};
|
|
1
|
+
import { utilities } from '@cornerstonejs/metadata';
|
|
2
|
+
declare const splitImageIdsBy4DTags: typeof utilities.splitImageIdsBy4DTags, handleMultiframe4D: typeof utilities.handleMultiframe4D, generateFrameImageId: typeof utilities.generateFrameImageId;
|
|
11
3
|
export default splitImageIdsBy4DTags;
|
|
12
4
|
export { handleMultiframe4D, generateFrameImageId };
|
|
@@ -1,314 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
function generateFrameImageId(baseImageId, frameNumber) {
|
|
4
|
-
const framePattern = /\/frames\/\d+/;
|
|
5
|
-
if (!framePattern.test(baseImageId)) {
|
|
6
|
-
throw new Error(`generateFrameImageId: baseImageId must contain a "/frames/" pattern followed by a digit. ` +
|
|
7
|
-
`Expected format: e.g., "wadouri:http://example.com/image/frames/1" or "wadors:/path/to/image.dcm/frames/1". ` +
|
|
8
|
-
`Received: ${baseImageId}`);
|
|
9
|
-
}
|
|
10
|
-
return baseImageId.replace(framePattern, `/frames/${frameNumber}`);
|
|
11
|
-
}
|
|
12
|
-
function handleMultiframe4D(imageIds) {
|
|
13
|
-
if (!imageIds || imageIds.length === 0) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
const baseImageId = imageIds[0];
|
|
17
|
-
const instance = metaData.get('instance', baseImageId);
|
|
18
|
-
if (!instance) {
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
const numberOfFrames = instance.NumberOfFrames;
|
|
22
|
-
if (!numberOfFrames || numberOfFrames <= 1) {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
const timeSlotVector = instance.TimeSlotVector;
|
|
26
|
-
if (!timeSlotVector || !Array.isArray(timeSlotVector)) {
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
const sliceVector = instance.SliceVector;
|
|
30
|
-
const numberOfSlices = instance.NumberOfSlices;
|
|
31
|
-
if (timeSlotVector.length !== numberOfFrames) {
|
|
32
|
-
console.warn('TimeSlotVector length does not match NumberOfFrames:', timeSlotVector.length, 'vs', numberOfFrames);
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
if (sliceVector) {
|
|
36
|
-
if (!Array.isArray(sliceVector)) {
|
|
37
|
-
console.warn('SliceVector exists but is not an array. Expected length:', numberOfFrames);
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
if (sliceVector.length !== numberOfFrames ||
|
|
41
|
-
sliceVector.some((val) => val === undefined)) {
|
|
42
|
-
console.warn('SliceVector exists but has invalid length or undefined entries. Expected length:', numberOfFrames, 'Actual length:', sliceVector.length);
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
const timeSlotGroups = new Map();
|
|
47
|
-
for (let frameIndex = 0; frameIndex < numberOfFrames; frameIndex++) {
|
|
48
|
-
const timeSlot = timeSlotVector[frameIndex];
|
|
49
|
-
const sliceIndex = sliceVector?.[frameIndex] ?? frameIndex;
|
|
50
|
-
if (!timeSlotGroups.has(timeSlot)) {
|
|
51
|
-
timeSlotGroups.set(timeSlot, []);
|
|
52
|
-
}
|
|
53
|
-
timeSlotGroups.get(timeSlot).push({ frameIndex, sliceIndex });
|
|
54
|
-
}
|
|
55
|
-
const sortedTimeSlots = Array.from(timeSlotGroups.keys()).sort((a, b) => a - b);
|
|
56
|
-
const imageIdGroups = sortedTimeSlots.map((timeSlot) => {
|
|
57
|
-
const frames = timeSlotGroups.get(timeSlot);
|
|
58
|
-
frames.sort((a, b) => a.sliceIndex - b.sliceIndex);
|
|
59
|
-
return frames.map((frame) => generateFrameImageId(baseImageId, frame.frameIndex + 1));
|
|
60
|
-
});
|
|
61
|
-
const expectedSlicesPerTimeSlot = numberOfSlices || imageIdGroups[0]?.length;
|
|
62
|
-
const allGroupsHaveSameLength = imageIdGroups.every((group) => group.length === expectedSlicesPerTimeSlot);
|
|
63
|
-
if (!allGroupsHaveSameLength) {
|
|
64
|
-
console.warn('Multiframe 4D split resulted in uneven time slot groups. Expected', expectedSlicesPerTimeSlot, 'slices per time slot.');
|
|
65
|
-
}
|
|
66
|
-
return {
|
|
67
|
-
imageIdGroups,
|
|
68
|
-
splittingTag: 'TimeSlotVector',
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
function handleCardiac4D(imageIds) {
|
|
72
|
-
if (!imageIds || imageIds.length === 0) {
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
const cardiacNumberOfImages = getFiniteValue(imageIds[0], 'CardiacNumberOfImages');
|
|
76
|
-
if (cardiacNumberOfImages === undefined) {
|
|
77
|
-
return null;
|
|
78
|
-
}
|
|
79
|
-
const stacks = new Map();
|
|
80
|
-
for (const imageId of imageIds) {
|
|
81
|
-
const stackId = metaData.get('StackID', imageId);
|
|
82
|
-
const inStackPositionNumber = getFiniteValue(imageId, 'InStackPositionNumber');
|
|
83
|
-
const triggerTime = getFiniteValue(imageId, 'TriggerTime');
|
|
84
|
-
if (stackId === undefined ||
|
|
85
|
-
inStackPositionNumber === undefined ||
|
|
86
|
-
triggerTime === undefined) {
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
const stackKey = String(stackId);
|
|
90
|
-
if (!stacks.has(stackKey)) {
|
|
91
|
-
stacks.set(stackKey, new Map());
|
|
92
|
-
}
|
|
93
|
-
const positions = stacks.get(stackKey);
|
|
94
|
-
if (!positions.has(inStackPositionNumber)) {
|
|
95
|
-
positions.set(inStackPositionNumber, []);
|
|
96
|
-
}
|
|
97
|
-
positions.get(inStackPositionNumber).push({ imageId, triggerTime });
|
|
98
|
-
}
|
|
99
|
-
const sortedStackIds = Array.from(stacks.keys()).sort((a, b) => Number(a) - Number(b));
|
|
100
|
-
if (sortedStackIds.length === 0) {
|
|
101
|
-
return null;
|
|
102
|
-
}
|
|
103
|
-
const preparedStacks = [];
|
|
104
|
-
let timeCount;
|
|
105
|
-
for (const stackId of sortedStackIds) {
|
|
106
|
-
const positions = stacks.get(stackId);
|
|
107
|
-
const sortedPositions = Array.from(positions.keys()).sort((a, b) => a - b);
|
|
108
|
-
for (const position of sortedPositions) {
|
|
109
|
-
const frames = positions.get(position);
|
|
110
|
-
frames.sort((a, b) => a.triggerTime - b.triggerTime);
|
|
111
|
-
if (timeCount === undefined) {
|
|
112
|
-
timeCount = frames.length;
|
|
113
|
-
}
|
|
114
|
-
else if (frames.length !== timeCount) {
|
|
115
|
-
return null;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
preparedStacks.push({
|
|
119
|
-
stackId,
|
|
120
|
-
positions: sortedPositions,
|
|
121
|
-
framesByPosition: positions,
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
if (!timeCount) {
|
|
125
|
-
return null;
|
|
126
|
-
}
|
|
127
|
-
const imageIdGroups = [];
|
|
128
|
-
for (let timeIndex = 0; timeIndex < timeCount; timeIndex++) {
|
|
129
|
-
const group = [];
|
|
130
|
-
for (const stack of preparedStacks) {
|
|
131
|
-
for (const position of stack.positions) {
|
|
132
|
-
const frames = stack.framesByPosition.get(position);
|
|
133
|
-
group.push(frames[timeIndex].imageId);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
imageIdGroups.push(group);
|
|
137
|
-
}
|
|
138
|
-
return {
|
|
139
|
-
imageIdGroups,
|
|
140
|
-
splittingTag: 'CardiacTriggerTime',
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
const groupBy = (array, key) => {
|
|
144
|
-
return array.reduce((rv, x) => {
|
|
145
|
-
(rv[x[key]] = rv[x[key]] || []).push(x);
|
|
146
|
-
return rv;
|
|
147
|
-
}, {});
|
|
148
|
-
};
|
|
149
|
-
function getIPPGroups(imageIds) {
|
|
150
|
-
const ippMetadata = imageIds.map((imageId) => {
|
|
151
|
-
const { imagePositionPatient } = metaData.get('imagePlaneModule', imageId) || {};
|
|
152
|
-
return { imageId, imagePositionPatient };
|
|
153
|
-
});
|
|
154
|
-
if (!ippMetadata.every((item) => item.imagePositionPatient)) {
|
|
155
|
-
return null;
|
|
156
|
-
}
|
|
157
|
-
const positionGroups = groupBy(ippMetadata, 'imagePositionPatient');
|
|
158
|
-
const positions = Object.keys(positionGroups);
|
|
159
|
-
const frame_count = positionGroups[positions[0]].length;
|
|
160
|
-
if (frame_count === 1) {
|
|
161
|
-
return null;
|
|
162
|
-
}
|
|
163
|
-
const frame_count_equal = positions.every((k) => positionGroups[k].length === frame_count);
|
|
164
|
-
if (!frame_count_equal) {
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
|
-
return positionGroups;
|
|
168
|
-
}
|
|
169
|
-
function test4DTag(IPPGroups, value_getter) {
|
|
170
|
-
const frame_groups = {};
|
|
171
|
-
let first_frame_value_set = [];
|
|
172
|
-
const positions = Object.keys(IPPGroups);
|
|
173
|
-
for (let i = 0; i < positions.length; i++) {
|
|
174
|
-
const frame_value_set = new Set();
|
|
175
|
-
const frames = IPPGroups[positions[i]];
|
|
176
|
-
for (let j = 0; j < frames.length; j++) {
|
|
177
|
-
const frame_value = value_getter(frames[j].imageId) || 0;
|
|
178
|
-
frame_groups[frame_value] = frame_groups[frame_value] || [];
|
|
179
|
-
frame_groups[frame_value].push({ imageId: frames[j].imageId });
|
|
180
|
-
frame_value_set.add(frame_value);
|
|
181
|
-
if (frame_value_set.size - 1 < j) {
|
|
182
|
-
return undefined;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
if (i == 0) {
|
|
186
|
-
first_frame_value_set = Array.from(frame_value_set);
|
|
187
|
-
}
|
|
188
|
-
else if (!setEquals(first_frame_value_set, frame_value_set)) {
|
|
189
|
-
return undefined;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return frame_groups;
|
|
193
|
-
}
|
|
194
|
-
function getTagValue(imageId, tag) {
|
|
195
|
-
const value = metaData.get(tag, imageId);
|
|
196
|
-
try {
|
|
197
|
-
return parseFloat(value);
|
|
198
|
-
}
|
|
199
|
-
catch {
|
|
200
|
-
return undefined;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
function getFiniteValue(imageId, tag) {
|
|
204
|
-
return toFiniteNumber(getTagValue(imageId, tag));
|
|
205
|
-
}
|
|
206
|
-
function getPhilipsPrivateBValue(imageId) {
|
|
207
|
-
const value = metaData.get('20011003', imageId);
|
|
208
|
-
try {
|
|
209
|
-
const { InlineBinary } = value;
|
|
210
|
-
if (InlineBinary) {
|
|
211
|
-
const value_bytes = atob(InlineBinary);
|
|
212
|
-
const ary_buf = new ArrayBuffer(value_bytes.length);
|
|
213
|
-
const dv = new DataView(ary_buf);
|
|
214
|
-
for (let i = 0; i < value_bytes.length; i++) {
|
|
215
|
-
dv.setUint8(i, value_bytes.charCodeAt(i));
|
|
216
|
-
}
|
|
217
|
-
return new Float32Array(ary_buf)[0];
|
|
218
|
-
}
|
|
219
|
-
return parseFloat(value);
|
|
220
|
-
}
|
|
221
|
-
catch {
|
|
222
|
-
return undefined;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
function getSiemensPrivateBValue(imageId) {
|
|
226
|
-
let value = metaData.get('0019100c', imageId) || metaData.get('0019100C', imageId);
|
|
227
|
-
try {
|
|
228
|
-
const { InlineBinary } = value;
|
|
229
|
-
if (InlineBinary) {
|
|
230
|
-
value = atob(InlineBinary);
|
|
231
|
-
}
|
|
232
|
-
return parseFloat(value);
|
|
233
|
-
}
|
|
234
|
-
catch {
|
|
235
|
-
return undefined;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
function getGEPrivateBValue(imageId) {
|
|
239
|
-
let value = metaData.get('00431039', imageId);
|
|
240
|
-
try {
|
|
241
|
-
const { InlineBinary } = value;
|
|
242
|
-
if (InlineBinary) {
|
|
243
|
-
value = atob(InlineBinary).split('//');
|
|
244
|
-
}
|
|
245
|
-
return parseFloat(value[0]) % 100000;
|
|
246
|
-
}
|
|
247
|
-
catch {
|
|
248
|
-
return undefined;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
function setEquals(set_a, set_b) {
|
|
252
|
-
if (set_a.length != set_b.size) {
|
|
253
|
-
return false;
|
|
254
|
-
}
|
|
255
|
-
for (let i = 0; i < set_a.length; i++) {
|
|
256
|
-
if (!set_b.has(set_a[i])) {
|
|
257
|
-
return false;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
return true;
|
|
261
|
-
}
|
|
262
|
-
function getPetFrameReferenceTime(imageId) {
|
|
263
|
-
const moduleInfo = metaData.get('petImageModule', imageId);
|
|
264
|
-
return moduleInfo ? moduleInfo['frameReferenceTime'] : 0;
|
|
265
|
-
}
|
|
266
|
-
function splitImageIdsBy4DTags(imageIds) {
|
|
267
|
-
const multiframeResult = handleMultiframe4D(imageIds);
|
|
268
|
-
if (multiframeResult) {
|
|
269
|
-
return multiframeResult;
|
|
270
|
-
}
|
|
271
|
-
const cardiacResult = handleCardiac4D(imageIds);
|
|
272
|
-
if (cardiacResult) {
|
|
273
|
-
return cardiacResult;
|
|
274
|
-
}
|
|
275
|
-
const positionGroups = getIPPGroups(imageIds);
|
|
276
|
-
if (!positionGroups) {
|
|
277
|
-
return { imageIdGroups: [imageIds], splittingTag: null };
|
|
278
|
-
}
|
|
279
|
-
const tags = [
|
|
280
|
-
'TemporalPositionIdentifier',
|
|
281
|
-
'DiffusionBValue',
|
|
282
|
-
'TriggerTime',
|
|
283
|
-
'EchoTime',
|
|
284
|
-
'EchoNumber',
|
|
285
|
-
'PhilipsPrivateBValue',
|
|
286
|
-
'SiemensPrivateBValue',
|
|
287
|
-
'GEPrivateBValue',
|
|
288
|
-
'PetFrameReferenceTime',
|
|
289
|
-
];
|
|
290
|
-
const fncList2 = [
|
|
291
|
-
(imageId) => getTagValue(imageId, tags[0]),
|
|
292
|
-
(imageId) => getTagValue(imageId, tags[1]),
|
|
293
|
-
(imageId) => getTagValue(imageId, tags[2]),
|
|
294
|
-
(imageId) => getTagValue(imageId, tags[3]),
|
|
295
|
-
(imageId) => getTagValue(imageId, tags[4]),
|
|
296
|
-
getPhilipsPrivateBValue,
|
|
297
|
-
getSiemensPrivateBValue,
|
|
298
|
-
getGEPrivateBValue,
|
|
299
|
-
getPetFrameReferenceTime,
|
|
300
|
-
];
|
|
301
|
-
for (let i = 0; i < fncList2.length; i++) {
|
|
302
|
-
const frame_groups = test4DTag(positionGroups, fncList2[i]);
|
|
303
|
-
if (frame_groups) {
|
|
304
|
-
const sortedKeys = Object.keys(frame_groups)
|
|
305
|
-
.map(Number.parseFloat)
|
|
306
|
-
.sort((a, b) => a - b);
|
|
307
|
-
const imageIdGroups = sortedKeys.map((key) => frame_groups[key].map((item) => item.imageId));
|
|
308
|
-
return { imageIdGroups, splittingTag: tags[i] };
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
return { imageIdGroups: [imageIds], splittingTag: null };
|
|
312
|
-
}
|
|
1
|
+
import { utilities } from '@cornerstonejs/metadata';
|
|
2
|
+
const { splitImageIdsBy4DTags, handleMultiframe4D, generateFrameImageId } = utilities;
|
|
313
3
|
export default splitImageIdsBy4DTags;
|
|
314
4
|
export { handleMultiframe4D, generateFrameImageId };
|