@cornerstonejs/tools 2.0.0-beta.1 → 2.0.0-beta.3
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/cjs/drawingSvg/drawCircle.js +9 -5
- package/dist/cjs/drawingSvg/drawCircle.js.map +1 -1
- package/dist/cjs/drawingSvg/drawEllipse.js +4 -4
- package/dist/cjs/drawingSvg/drawEllipse.js.map +1 -1
- package/dist/cjs/drawingSvg/drawHandles.js +4 -4
- package/dist/cjs/drawingSvg/drawHandles.js.map +1 -1
- package/dist/cjs/drawingSvg/drawLine.js +4 -4
- package/dist/cjs/drawingSvg/drawLine.js.map +1 -1
- package/dist/cjs/drawingSvg/drawPolyline.js +4 -4
- package/dist/cjs/drawingSvg/drawPolyline.js.map +1 -1
- package/dist/cjs/drawingSvg/drawRect.js +4 -4
- package/dist/cjs/drawingSvg/drawRect.js.map +1 -1
- package/dist/cjs/drawingSvg/drawTextBox.js +4 -4
- package/dist/cjs/drawingSvg/drawTextBox.js.map +1 -1
- package/dist/cjs/drawingSvg/getSvgDrawingHelper.js +1 -1
- package/dist/cjs/drawingSvg/getSvgDrawingHelper.js.map +1 -1
- package/dist/cjs/drawingSvg/index.d.ts +3 -1
- package/dist/cjs/drawingSvg/index.js +5 -1
- package/dist/cjs/drawingSvg/index.js.map +1 -1
- package/dist/cjs/drawingSvg/setAttributesIfNecessary.d.ts +2 -0
- package/dist/cjs/drawingSvg/{_setAttributesIfNecessary.js → setAttributesIfNecessary.js} +5 -5
- package/dist/cjs/drawingSvg/setAttributesIfNecessary.js.map +1 -0
- package/dist/cjs/drawingSvg/setNewAttributesIfValid.d.ts +2 -0
- package/dist/cjs/drawingSvg/{_setNewAttributesIfValid.js → setNewAttributesIfValid.js} +5 -5
- package/dist/cjs/drawingSvg/setNewAttributesIfValid.js.map +1 -0
- package/dist/cjs/enums/Events.d.ts +2 -0
- package/dist/cjs/enums/Events.js +2 -0
- package/dist/cjs/enums/Events.js.map +1 -1
- package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDown.js +6 -1
- package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDown.js.map +1 -1
- package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.d.ts +2 -0
- package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js +41 -0
- package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js.map +1 -0
- package/dist/cjs/eventDispatchers/shared/getMouseModifier.js +10 -5
- package/dist/cjs/eventDispatchers/shared/getMouseModifier.js.map +1 -1
- package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.d.ts +3 -0
- package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +39 -0
- package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js.map +1 -0
- package/dist/cjs/eventListeners/keyboard/keyDownListener.js +8 -0
- package/dist/cjs/eventListeners/keyboard/keyDownListener.js.map +1 -1
- package/dist/cjs/eventListeners/mouse/mouseDownListener.js +7 -2
- package/dist/cjs/eventListeners/mouse/mouseDownListener.js.map +1 -1
- package/dist/cjs/eventListeners/mouse/mouseMoveListener.js +5 -1
- package/dist/cjs/eventListeners/mouse/mouseMoveListener.js.map +1 -1
- package/dist/cjs/eventListeners/touch/touchStartListener.js +10 -5
- package/dist/cjs/eventListeners/touch/touchStartListener.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +6 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/config/ToolStyle.js +1 -0
- package/dist/cjs/stateManagement/annotation/config/ToolStyle.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/config/getState.js +6 -3
- package/dist/cjs/stateManagement/annotation/config/getState.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/config/helpers.js +4 -2
- package/dist/cjs/stateManagement/annotation/config/helpers.js.map +1 -1
- package/dist/cjs/store/SynchronizerManager/Synchronizer.js +10 -2
- package/dist/cjs/store/SynchronizerManager/Synchronizer.js.map +1 -1
- package/dist/cjs/store/ToolGroupManager/ToolGroup.d.ts +5 -3
- package/dist/cjs/store/ToolGroupManager/ToolGroup.js +44 -2
- package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js +2 -1
- package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -1
- package/dist/cjs/synchronizers/callbacks/stackImageSyncCallback.js +25 -22
- package/dist/cjs/synchronizers/callbacks/stackImageSyncCallback.js.map +1 -1
- package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js +1 -1
- package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
- package/dist/cjs/tools/AdvancedMagnifyTool.d.ts +36 -0
- package/dist/cjs/tools/AdvancedMagnifyTool.js +448 -0
- package/dist/cjs/tools/AdvancedMagnifyTool.js.map +1 -0
- package/dist/cjs/tools/AdvancedMagnifyViewport.d.ts +76 -0
- package/dist/cjs/tools/AdvancedMagnifyViewport.js +352 -0
- package/dist/cjs/tools/AdvancedMagnifyViewport.js.map +1 -0
- package/dist/cjs/tools/AdvancedMagnifyViewportManager.d.ts +36 -0
- package/dist/cjs/tools/AdvancedMagnifyViewportManager.js +133 -0
- package/dist/cjs/tools/AdvancedMagnifyViewportManager.js.map +1 -0
- package/dist/cjs/tools/MIPJumpToClickTool.js +4 -2
- package/dist/cjs/tools/MIPJumpToClickTool.js.map +1 -1
- package/dist/cjs/tools/MagnifyTool.js +2 -2
- package/dist/cjs/tools/MagnifyTool.js.map +1 -1
- package/dist/cjs/tools/OrientationMarkerTool.d.ts +88 -0
- package/dist/cjs/tools/OrientationMarkerTool.js +193 -0
- package/dist/cjs/tools/OrientationMarkerTool.js.map +1 -0
- package/dist/cjs/tools/OverlayGridTool.d.ts +31 -0
- package/dist/cjs/tools/OverlayGridTool.js +170 -0
- package/dist/cjs/tools/OverlayGridTool.js.map +1 -0
- package/dist/cjs/tools/PlanarRotateTool.js +2 -1
- package/dist/cjs/tools/PlanarRotateTool.js.map +1 -1
- package/dist/cjs/tools/ReferenceCursors.js +58 -29
- package/dist/cjs/tools/ReferenceCursors.js.map +1 -1
- package/dist/cjs/tools/ReferenceLinesTool.d.ts +3 -0
- package/dist/cjs/tools/ReferenceLinesTool.js +71 -2
- package/dist/cjs/tools/ReferenceLinesTool.js.map +1 -1
- package/dist/cjs/tools/ScaleOverlayTool.js +2 -1
- package/dist/cjs/tools/ScaleOverlayTool.js.map +1 -1
- package/dist/cjs/tools/annotation/AngleTool.d.ts +0 -1
- package/dist/cjs/tools/annotation/AngleTool.js +33 -15
- package/dist/cjs/tools/annotation/AngleTool.js.map +1 -1
- package/dist/cjs/tools/annotation/ArrowAnnotateTool.js +15 -1
- package/dist/cjs/tools/annotation/ArrowAnnotateTool.js.map +1 -1
- package/dist/cjs/tools/annotation/BidirectionalTool.d.ts +0 -1
- package/dist/cjs/tools/annotation/BidirectionalTool.js +30 -15
- package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/cjs/tools/annotation/CircleROITool.d.ts +1 -3
- package/dist/cjs/tools/annotation/CircleROITool.js +63 -60
- package/dist/cjs/tools/annotation/CircleROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/CobbAngleTool.d.ts +31 -6
- package/dist/cjs/tools/annotation/CobbAngleTool.js +294 -82
- package/dist/cjs/tools/annotation/CobbAngleTool.js.map +1 -1
- package/dist/cjs/tools/annotation/DragProbeTool.js +17 -4
- package/dist/cjs/tools/annotation/DragProbeTool.js.map +1 -1
- package/dist/cjs/tools/annotation/EllipticalROITool.d.ts +2 -4
- package/dist/cjs/tools/annotation/EllipticalROITool.js +67 -61
- package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/LengthTool.d.ts +0 -1
- package/dist/cjs/tools/annotation/LengthTool.js +27 -12
- package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.d.ts +1 -3
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +72 -60
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/ProbeTool.d.ts +1 -3
- package/dist/cjs/tools/annotation/ProbeTool.js +28 -22
- package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/cjs/tools/annotation/RectangleROITool.d.ts +1 -2
- package/dist/cjs/tools/annotation/RectangleROITool.js +55 -57
- package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/cjs/tools/base/AnnotationDisplayTool.js +4 -0
- package/dist/cjs/tools/base/AnnotationDisplayTool.js.map +1 -1
- package/dist/cjs/tools/base/AnnotationTool.d.ts +3 -2
- package/dist/cjs/tools/base/AnnotationTool.js +27 -16
- package/dist/cjs/tools/base/AnnotationTool.js.map +1 -1
- package/dist/cjs/tools/base/index.d.ts +2 -1
- package/dist/cjs/tools/base/index.js +3 -1
- package/dist/cjs/tools/base/index.js.map +1 -1
- package/dist/cjs/tools/displayTools/Contour/contourDisplay.js +3 -0
- package/dist/cjs/tools/displayTools/Contour/contourDisplay.js.map +1 -1
- package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js +1 -1
- package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
- package/dist/cjs/tools/displayTools/Labelmap/removeLabelmapFromElement.js +3 -0
- package/dist/cjs/tools/displayTools/Labelmap/removeLabelmapFromElement.js.map +1 -1
- package/dist/cjs/tools/displayTools/SegmentationDisplayTool.js +5 -6
- package/dist/cjs/tools/displayTools/SegmentationDisplayTool.js.map +1 -1
- package/dist/cjs/tools/index.d.ts +5 -2
- package/dist/cjs/tools/index.js +8 -1
- package/dist/cjs/tools/index.js.map +1 -1
- package/dist/cjs/tools/segmentation/BrushTool.js +24 -17
- package/dist/cjs/tools/segmentation/BrushTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/PaintFillTool.js +4 -2
- package/dist/cjs/tools/segmentation/PaintFillTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/eraseSphere.d.ts +2 -0
- package/dist/cjs/tools/segmentation/strategies/eraseSphere.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js +5 -7
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillSphere.d.ts +3 -0
- package/dist/cjs/tools/segmentation/strategies/fillSphere.js +38 -10
- package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +3 -0
- package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.js +10 -0
- package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -0
- package/dist/cjs/types/CINETypes.d.ts +2 -0
- package/dist/cjs/types/CalculatorTypes.d.ts +6 -0
- package/dist/cjs/types/CalculatorTypes.js +3 -0
- package/dist/cjs/types/CalculatorTypes.js.map +1 -0
- package/dist/cjs/types/EventTypes.d.ts +16 -1
- package/dist/cjs/types/ISetToolModeOptions.d.ts +2 -2
- package/dist/cjs/types/IToolGroup.d.ts +6 -2
- package/dist/cjs/types/ToolAction.d.ts +8 -0
- package/dist/cjs/types/ToolAction.js +3 -0
- package/dist/cjs/types/ToolAction.js.map +1 -0
- package/dist/cjs/types/ToolProps.d.ts +5 -1
- package/dist/cjs/types/ToolSpecificAnnotationTypes.d.ts +55 -0
- package/dist/cjs/types/index.d.ts +4 -2
- package/dist/cjs/utilities/cine/playClip.js +13 -3
- package/dist/cjs/utilities/cine/playClip.js.map +1 -1
- package/dist/cjs/utilities/dynamicVolume/getDataInTime.js +7 -4
- package/dist/cjs/utilities/dynamicVolume/getDataInTime.js.map +1 -1
- package/dist/cjs/utilities/getCalibratedUnits.js +10 -5
- package/dist/cjs/utilities/getCalibratedUnits.js.map +1 -1
- package/dist/cjs/utilities/getModalityUnit.js +5 -2
- package/dist/cjs/utilities/getModalityUnit.js.map +1 -1
- package/dist/cjs/utilities/index.d.ts +2 -2
- package/dist/cjs/utilities/index.js +4 -3
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/math/angle/angleBetweenLines.d.ts +3 -1
- package/dist/cjs/utilities/math/angle/angleBetweenLines.js +18 -1
- package/dist/cjs/utilities/math/angle/angleBetweenLines.js.map +1 -1
- package/dist/cjs/utilities/math/basic/BasicStatsCalculator.d.ts +14 -0
- package/dist/cjs/utilities/math/basic/BasicStatsCalculator.js +44 -0
- package/dist/cjs/utilities/math/basic/BasicStatsCalculator.js.map +1 -0
- package/dist/cjs/utilities/math/basic/Calculator.d.ts +8 -0
- package/dist/cjs/utilities/math/basic/Calculator.js +6 -0
- package/dist/cjs/utilities/math/basic/Calculator.js.map +1 -0
- package/dist/cjs/utilities/math/basic/index.d.ts +3 -0
- package/dist/cjs/utilities/math/basic/index.js +11 -0
- package/dist/cjs/utilities/math/basic/index.js.map +1 -0
- package/dist/cjs/utilities/math/index.d.ts +2 -1
- package/dist/cjs/utilities/math/index.js +3 -1
- package/dist/cjs/utilities/math/index.js.map +1 -1
- package/dist/cjs/utilities/math/midPoint.js +2 -1
- package/dist/cjs/utilities/math/midPoint.js.map +1 -1
- package/dist/cjs/utilities/math/polyline/pointInPolyline.js +2 -1
- package/dist/cjs/utilities/math/polyline/pointInPolyline.js.map +1 -1
- package/dist/cjs/utilities/math/vec2/liangBarksyClip.d.ts +1 -1
- package/dist/cjs/utilities/math/vec2/liangBarksyClip.js +10 -5
- package/dist/cjs/utilities/math/vec2/liangBarksyClip.js.map +1 -1
- package/dist/cjs/utilities/pointInShapeCallback.d.ts +7 -1
- package/dist/cjs/utilities/pointInShapeCallback.js +6 -1
- package/dist/cjs/utilities/pointInShapeCallback.js.map +1 -1
- package/dist/cjs/utilities/roundNumber.js +4 -2
- package/dist/cjs/utilities/roundNumber.js.map +1 -1
- package/dist/cjs/utilities/segmentation/brushSizeForToolGroup.d.ts +2 -2
- package/dist/cjs/utilities/segmentation/brushSizeForToolGroup.js +4 -4
- package/dist/cjs/utilities/segmentation/brushSizeForToolGroup.js.map +1 -1
- package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js +2 -1
- package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
- package/dist/cjs/utilities/segmentation/utilities.d.ts +1 -2
- package/dist/cjs/utilities/segmentation/utilities.js +4 -1
- package/dist/cjs/utilities/segmentation/utilities.js.map +1 -1
- package/dist/cjs/utilities/stackPrefetch/index.d.ts +3 -2
- package/dist/cjs/utilities/stackPrefetch/index.js +8 -6
- package/dist/cjs/utilities/stackPrefetch/index.js.map +1 -1
- package/dist/cjs/utilities/stackPrefetch/stackContextPrefetch.d.ts +16 -0
- package/dist/cjs/utilities/stackPrefetch/stackContextPrefetch.js +227 -0
- package/dist/cjs/utilities/stackPrefetch/stackContextPrefetch.js.map +1 -0
- package/dist/cjs/utilities/stackPrefetch/stackPrefetch.d.ts +7 -1
- package/dist/cjs/utilities/stackPrefetch/stackPrefetch.js +25 -95
- package/dist/cjs/utilities/stackPrefetch/stackPrefetch.js.map +1 -1
- package/dist/cjs/utilities/stackPrefetch/stackPrefetchUtils.d.ts +14 -0
- package/dist/cjs/utilities/stackPrefetch/stackPrefetchUtils.js +85 -0
- package/dist/cjs/utilities/stackPrefetch/stackPrefetchUtils.js.map +1 -0
- package/dist/esm/drawingSvg/drawCircle.js +9 -5
- package/dist/esm/drawingSvg/drawCircle.js.map +1 -1
- package/dist/esm/drawingSvg/drawEllipse.js +4 -4
- package/dist/esm/drawingSvg/drawEllipse.js.map +1 -1
- package/dist/esm/drawingSvg/drawHandles.js +4 -4
- package/dist/esm/drawingSvg/drawHandles.js.map +1 -1
- package/dist/esm/drawingSvg/drawLine.js +4 -4
- package/dist/esm/drawingSvg/drawLine.js.map +1 -1
- package/dist/esm/drawingSvg/drawPolyline.js +4 -4
- package/dist/esm/drawingSvg/drawPolyline.js.map +1 -1
- package/dist/esm/drawingSvg/drawRect.js +4 -4
- package/dist/esm/drawingSvg/drawRect.js.map +1 -1
- package/dist/esm/drawingSvg/drawTextBox.js +4 -4
- package/dist/esm/drawingSvg/drawTextBox.js.map +1 -1
- package/dist/esm/drawingSvg/getSvgDrawingHelper.js +1 -1
- package/dist/esm/drawingSvg/getSvgDrawingHelper.js.map +1 -1
- package/dist/esm/drawingSvg/index.d.ts +3 -1
- package/dist/esm/drawingSvg/index.js +3 -1
- package/dist/esm/drawingSvg/index.js.map +1 -1
- package/dist/esm/drawingSvg/setAttributesIfNecessary.d.ts +2 -0
- package/dist/esm/drawingSvg/{_setAttributesIfNecessary.js → setAttributesIfNecessary.js} +3 -3
- package/dist/esm/drawingSvg/setAttributesIfNecessary.js.map +1 -0
- package/dist/esm/drawingSvg/setNewAttributesIfValid.d.ts +2 -0
- package/dist/esm/drawingSvg/{_setNewAttributesIfValid.js → setNewAttributesIfValid.js} +3 -3
- package/dist/esm/drawingSvg/setNewAttributesIfValid.js.map +1 -0
- package/dist/esm/enums/Events.d.ts +2 -0
- package/dist/esm/enums/Events.js +2 -0
- package/dist/esm/enums/Events.js.map +1 -1
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js +6 -1
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js.map +1 -1
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.d.ts +2 -0
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js +35 -0
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js.map +1 -0
- package/dist/esm/eventDispatchers/shared/getMouseModifier.js +10 -5
- package/dist/esm/eventDispatchers/shared/getMouseModifier.js.map +1 -1
- package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.d.ts +3 -0
- package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +32 -0
- package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js.map +1 -0
- package/dist/esm/eventListeners/keyboard/keyDownListener.js +8 -0
- package/dist/esm/eventListeners/keyboard/keyDownListener.js.map +1 -1
- package/dist/esm/eventListeners/mouse/mouseDownListener.js +7 -2
- package/dist/esm/eventListeners/mouse/mouseDownListener.js.map +1 -1
- package/dist/esm/eventListeners/mouse/mouseMoveListener.js +5 -1
- package/dist/esm/eventListeners/mouse/mouseMoveListener.js.map +1 -1
- package/dist/esm/eventListeners/touch/touchStartListener.js +10 -5
- package/dist/esm/eventListeners/touch/touchStartListener.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/stateManagement/annotation/config/ToolStyle.js +1 -0
- package/dist/esm/stateManagement/annotation/config/ToolStyle.js.map +1 -1
- package/dist/esm/stateManagement/annotation/config/getState.js +6 -3
- package/dist/esm/stateManagement/annotation/config/getState.js.map +1 -1
- package/dist/esm/stateManagement/annotation/config/helpers.js +4 -2
- package/dist/esm/stateManagement/annotation/config/helpers.js.map +1 -1
- package/dist/esm/store/SynchronizerManager/Synchronizer.js +10 -2
- package/dist/esm/store/SynchronizerManager/Synchronizer.js.map +1 -1
- package/dist/esm/store/ToolGroupManager/ToolGroup.d.ts +5 -3
- package/dist/esm/store/ToolGroupManager/ToolGroup.js +45 -4
- package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js +2 -1
- package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -1
- package/dist/esm/synchronizers/callbacks/stackImageSyncCallback.js +26 -23
- package/dist/esm/synchronizers/callbacks/stackImageSyncCallback.js.map +1 -1
- package/dist/esm/synchronizers/callbacks/voiSyncCallback.js +1 -1
- package/dist/esm/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
- package/dist/esm/tools/AdvancedMagnifyTool.d.ts +36 -0
- package/dist/esm/tools/AdvancedMagnifyTool.js +440 -0
- package/dist/esm/tools/AdvancedMagnifyTool.js.map +1 -0
- package/dist/esm/tools/AdvancedMagnifyViewport.d.ts +76 -0
- package/dist/esm/tools/AdvancedMagnifyViewport.js +346 -0
- package/dist/esm/tools/AdvancedMagnifyViewport.js.map +1 -0
- package/dist/esm/tools/AdvancedMagnifyViewportManager.d.ts +36 -0
- package/dist/esm/tools/AdvancedMagnifyViewportManager.js +128 -0
- package/dist/esm/tools/AdvancedMagnifyViewportManager.js.map +1 -0
- package/dist/esm/tools/MIPJumpToClickTool.js +4 -2
- package/dist/esm/tools/MIPJumpToClickTool.js.map +1 -1
- package/dist/esm/tools/MagnifyTool.js +2 -2
- package/dist/esm/tools/MagnifyTool.js.map +1 -1
- package/dist/esm/tools/OrientationMarkerTool.d.ts +88 -0
- package/dist/esm/tools/OrientationMarkerTool.js +185 -0
- package/dist/esm/tools/OrientationMarkerTool.js.map +1 -0
- package/dist/esm/tools/OverlayGridTool.d.ts +31 -0
- package/dist/esm/tools/OverlayGridTool.js +165 -0
- package/dist/esm/tools/OverlayGridTool.js.map +1 -0
- package/dist/esm/tools/PlanarRotateTool.js +2 -1
- package/dist/esm/tools/PlanarRotateTool.js.map +1 -1
- package/dist/esm/tools/ReferenceCursors.js +58 -29
- package/dist/esm/tools/ReferenceCursors.js.map +1 -1
- package/dist/esm/tools/ReferenceLinesTool.d.ts +3 -0
- package/dist/esm/tools/ReferenceLinesTool.js +71 -2
- package/dist/esm/tools/ReferenceLinesTool.js.map +1 -1
- package/dist/esm/tools/ScaleOverlayTool.js +2 -1
- package/dist/esm/tools/ScaleOverlayTool.js.map +1 -1
- package/dist/esm/tools/annotation/AngleTool.d.ts +0 -1
- package/dist/esm/tools/annotation/AngleTool.js +33 -15
- package/dist/esm/tools/annotation/AngleTool.js.map +1 -1
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js +15 -1
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js.map +1 -1
- package/dist/esm/tools/annotation/BidirectionalTool.d.ts +0 -1
- package/dist/esm/tools/annotation/BidirectionalTool.js +30 -15
- package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/esm/tools/annotation/CircleROITool.d.ts +1 -3
- package/dist/esm/tools/annotation/CircleROITool.js +62 -60
- package/dist/esm/tools/annotation/CircleROITool.js.map +1 -1
- package/dist/esm/tools/annotation/CobbAngleTool.d.ts +31 -6
- package/dist/esm/tools/annotation/CobbAngleTool.js +301 -83
- package/dist/esm/tools/annotation/CobbAngleTool.js.map +1 -1
- package/dist/esm/tools/annotation/DragProbeTool.js +17 -4
- package/dist/esm/tools/annotation/DragProbeTool.js.map +1 -1
- package/dist/esm/tools/annotation/EllipticalROITool.d.ts +2 -4
- package/dist/esm/tools/annotation/EllipticalROITool.js +66 -61
- package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/esm/tools/annotation/LengthTool.d.ts +0 -1
- package/dist/esm/tools/annotation/LengthTool.js +27 -12
- package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
- package/dist/esm/tools/annotation/PlanarFreehandROITool.d.ts +1 -3
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js +71 -60
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/esm/tools/annotation/ProbeTool.d.ts +1 -3
- package/dist/esm/tools/annotation/ProbeTool.js +28 -22
- package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/esm/tools/annotation/RectangleROITool.d.ts +1 -2
- package/dist/esm/tools/annotation/RectangleROITool.js +54 -57
- package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/esm/tools/base/AnnotationDisplayTool.js +3 -0
- package/dist/esm/tools/base/AnnotationDisplayTool.js.map +1 -1
- package/dist/esm/tools/base/AnnotationTool.d.ts +3 -2
- package/dist/esm/tools/base/AnnotationTool.js +26 -16
- package/dist/esm/tools/base/AnnotationTool.js.map +1 -1
- package/dist/esm/tools/base/index.d.ts +2 -1
- package/dist/esm/tools/base/index.js +2 -1
- package/dist/esm/tools/base/index.js.map +1 -1
- package/dist/esm/tools/displayTools/Contour/contourDisplay.js +4 -1
- package/dist/esm/tools/displayTools/Contour/contourDisplay.js.map +1 -1
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +1 -1
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
- package/dist/esm/tools/displayTools/Labelmap/removeLabelmapFromElement.js +4 -1
- package/dist/esm/tools/displayTools/Labelmap/removeLabelmapFromElement.js.map +1 -1
- package/dist/esm/tools/displayTools/SegmentationDisplayTool.js +5 -6
- package/dist/esm/tools/displayTools/SegmentationDisplayTool.js.map +1 -1
- package/dist/esm/tools/index.d.ts +5 -2
- package/dist/esm/tools/index.js +5 -2
- package/dist/esm/tools/index.js.map +1 -1
- package/dist/esm/tools/segmentation/BrushTool.js +25 -18
- package/dist/esm/tools/segmentation/BrushTool.js.map +1 -1
- package/dist/esm/tools/segmentation/PaintFillTool.js +4 -2
- package/dist/esm/tools/segmentation/PaintFillTool.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/eraseSphere.d.ts +2 -0
- package/dist/esm/tools/segmentation/strategies/eraseSphere.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillCircle.js +1 -6
- package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillSphere.d.ts +3 -0
- package/dist/esm/tools/segmentation/strategies/fillSphere.js +33 -9
- package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +3 -0
- package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js +8 -0
- package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -0
- package/dist/esm/types/CINETypes.d.ts +2 -0
- package/dist/esm/types/CalculatorTypes.d.ts +6 -0
- package/dist/esm/types/CalculatorTypes.js +2 -0
- package/dist/esm/types/CalculatorTypes.js.map +1 -0
- package/dist/esm/types/EventTypes.d.ts +16 -1
- package/dist/esm/types/ISetToolModeOptions.d.ts +2 -2
- package/dist/esm/types/IToolGroup.d.ts +6 -2
- package/dist/esm/types/ToolAction.d.ts +8 -0
- package/dist/esm/types/ToolAction.js +2 -0
- package/dist/esm/types/ToolAction.js.map +1 -0
- package/dist/esm/types/ToolProps.d.ts +5 -1
- package/dist/esm/types/ToolSpecificAnnotationTypes.d.ts +55 -0
- package/dist/esm/types/index.d.ts +4 -2
- package/dist/esm/utilities/cine/playClip.js +13 -4
- package/dist/esm/utilities/cine/playClip.js.map +1 -1
- package/dist/esm/utilities/dynamicVolume/getDataInTime.js +7 -4
- package/dist/esm/utilities/dynamicVolume/getDataInTime.js.map +1 -1
- package/dist/esm/utilities/getCalibratedUnits.js +10 -5
- package/dist/esm/utilities/getCalibratedUnits.js.map +1 -1
- package/dist/esm/utilities/getModalityUnit.js +5 -2
- package/dist/esm/utilities/getModalityUnit.js.map +1 -1
- package/dist/esm/utilities/index.d.ts +2 -2
- package/dist/esm/utilities/index.js +2 -2
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/math/angle/angleBetweenLines.d.ts +3 -1
- package/dist/esm/utilities/math/angle/angleBetweenLines.js +19 -2
- package/dist/esm/utilities/math/angle/angleBetweenLines.js.map +1 -1
- package/dist/esm/utilities/math/basic/BasicStatsCalculator.d.ts +14 -0
- package/dist/esm/utilities/math/basic/BasicStatsCalculator.js +36 -0
- package/dist/esm/utilities/math/basic/BasicStatsCalculator.js.map +1 -0
- package/dist/esm/utilities/math/basic/Calculator.d.ts +8 -0
- package/dist/esm/utilities/math/basic/Calculator.js +4 -0
- package/dist/esm/utilities/math/basic/Calculator.js.map +1 -0
- package/dist/esm/utilities/math/basic/index.d.ts +3 -0
- package/dist/esm/utilities/math/basic/index.js +4 -0
- package/dist/esm/utilities/math/basic/index.js.map +1 -0
- package/dist/esm/utilities/math/index.d.ts +2 -1
- package/dist/esm/utilities/math/index.js +2 -1
- package/dist/esm/utilities/math/index.js.map +1 -1
- package/dist/esm/utilities/math/midPoint.js +2 -1
- package/dist/esm/utilities/math/midPoint.js.map +1 -1
- package/dist/esm/utilities/math/polyline/pointInPolyline.js +2 -1
- package/dist/esm/utilities/math/polyline/pointInPolyline.js.map +1 -1
- package/dist/esm/utilities/math/vec2/liangBarksyClip.d.ts +1 -1
- package/dist/esm/utilities/math/vec2/liangBarksyClip.js +10 -5
- package/dist/esm/utilities/math/vec2/liangBarksyClip.js.map +1 -1
- package/dist/esm/utilities/pointInShapeCallback.d.ts +7 -1
- package/dist/esm/utilities/pointInShapeCallback.js +6 -1
- package/dist/esm/utilities/pointInShapeCallback.js.map +1 -1
- package/dist/esm/utilities/roundNumber.js +4 -2
- package/dist/esm/utilities/roundNumber.js.map +1 -1
- package/dist/esm/utilities/segmentation/brushSizeForToolGroup.d.ts +2 -2
- package/dist/esm/utilities/segmentation/brushSizeForToolGroup.js +4 -4
- package/dist/esm/utilities/segmentation/brushSizeForToolGroup.js.map +1 -1
- package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js +2 -1
- package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
- package/dist/esm/utilities/segmentation/utilities.d.ts +1 -2
- package/dist/esm/utilities/segmentation/utilities.js +4 -1
- package/dist/esm/utilities/segmentation/utilities.js.map +1 -1
- package/dist/esm/utilities/stackPrefetch/index.d.ts +3 -2
- package/dist/esm/utilities/stackPrefetch/index.js +3 -2
- package/dist/esm/utilities/stackPrefetch/index.js.map +1 -1
- package/dist/esm/utilities/stackPrefetch/stackContextPrefetch.d.ts +16 -0
- package/dist/esm/utilities/stackPrefetch/stackContextPrefetch.js +220 -0
- package/dist/esm/utilities/stackPrefetch/stackContextPrefetch.js.map +1 -0
- package/dist/esm/utilities/stackPrefetch/stackPrefetch.d.ts +7 -1
- package/dist/esm/utilities/stackPrefetch/stackPrefetch.js +14 -81
- package/dist/esm/utilities/stackPrefetch/stackPrefetch.js.map +1 -1
- package/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.d.ts +14 -0
- package/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.js +77 -0
- package/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.js.map +1 -0
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -3
- package/src/drawingSvg/drawCircle.ts +17 -5
- package/src/drawingSvg/drawEllipse.ts +4 -4
- package/src/drawingSvg/drawHandles.ts +4 -4
- package/src/drawingSvg/drawLine.ts +4 -4
- package/src/drawingSvg/drawPolyline.ts +4 -4
- package/src/drawingSvg/drawRect.ts +4 -4
- package/src/drawingSvg/drawTextBox.ts +4 -4
- package/src/drawingSvg/getSvgDrawingHelper.ts +4 -1
- package/src/drawingSvg/index.ts +4 -0
- package/src/drawingSvg/{_setAttributesIfNecessary.ts → setAttributesIfNecessary.ts} +2 -2
- package/src/drawingSvg/{_setNewAttributesIfValid.ts → setNewAttributesIfValid.ts} +2 -2
- package/src/enums/Events.ts +22 -0
- package/src/eventDispatchers/mouseEventHandlers/mouseDown.ts +11 -2
- package/src/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.ts +72 -0
- package/src/eventDispatchers/shared/getMouseModifier.ts +15 -5
- package/src/eventDispatchers/shared/getToolsWithActionsForMouseEvent.ts +66 -0
- package/src/eventListeners/keyboard/keyDownListener.ts +13 -0
- package/src/eventListeners/mouse/mouseDownListener.ts +10 -2
- package/src/eventListeners/mouse/mouseMoveListener.ts +7 -1
- package/src/eventListeners/touch/touchStartListener.ts +15 -5
- package/src/index.ts +8 -0
- package/src/stateManagement/annotation/config/ToolStyle.ts +1 -0
- package/src/stateManagement/annotation/config/getState.ts +7 -3
- package/src/stateManagement/annotation/config/helpers.ts +6 -2
- package/src/store/SynchronizerManager/Synchronizer.ts +16 -8
- package/src/store/ToolGroupManager/ToolGroup.ts +99 -6
- package/src/store/ToolGroupManager/getToolGroupsWithToolName.ts +3 -1
- package/src/synchronizers/callbacks/stackImageSyncCallback.ts +63 -68
- package/src/synchronizers/callbacks/voiSyncCallback.ts +1 -1
- package/src/tools/AdvancedMagnifyTool.ts +725 -0
- package/src/tools/AdvancedMagnifyViewport.ts +624 -0
- package/src/tools/AdvancedMagnifyViewportManager.ts +291 -0
- package/src/tools/MIPJumpToClickTool.ts +6 -2
- package/src/tools/MagnifyTool.ts +2 -2
- package/src/tools/OrientationMarkerTool.ts +235 -0
- package/src/tools/OverlayGridTool.ts +357 -0
- package/src/tools/PlanarRotateTool.ts +3 -1
- package/src/tools/ReferenceCursors.ts +85 -29
- package/src/tools/ReferenceLinesTool.ts +131 -3
- package/src/tools/ScaleOverlayTool.ts +3 -1
- package/src/tools/annotation/AngleTool.ts +42 -20
- package/src/tools/annotation/ArrowAnnotateTool.ts +16 -1
- package/src/tools/annotation/BidirectionalTool.ts +38 -24
- package/src/tools/annotation/CircleROITool.ts +94 -107
- package/src/tools/annotation/CobbAngleTool.ts +452 -114
- package/src/tools/annotation/DragProbeTool.ts +25 -14
- package/src/tools/annotation/EllipticalROITool.ts +88 -97
- package/src/tools/annotation/LengthTool.ts +33 -18
- package/src/tools/annotation/PlanarFreehandROITool.ts +90 -78
- package/src/tools/annotation/ProbeTool.ts +43 -49
- package/src/tools/annotation/RectangleROITool.ts +80 -92
- package/src/tools/base/AnnotationDisplayTool.ts +4 -0
- package/src/tools/base/AnnotationTool.ts +41 -18
- package/src/tools/base/index.ts +2 -1
- package/src/tools/displayTools/Contour/contourDisplay.ts +8 -0
- package/src/tools/displayTools/Labelmap/labelmapDisplay.ts +4 -1
- package/src/tools/displayTools/Labelmap/removeLabelmapFromElement.ts +6 -1
- package/src/tools/displayTools/SegmentationDisplayTool.ts +12 -18
- package/src/tools/index.ts +8 -1
- package/src/tools/segmentation/BrushTool.ts +42 -19
- package/src/tools/segmentation/PaintFillTool.ts +10 -3
- package/src/tools/segmentation/strategies/eraseSphere.ts +2 -0
- package/src/tools/segmentation/strategies/fillCircle.ts +1 -13
- package/src/tools/segmentation/strategies/fillSphere.ts +56 -8
- package/src/tools/segmentation/strategies/utils/isWithinThreshold.ts +16 -0
- package/src/types/CINETypes.ts +8 -2
- package/src/types/CalculatorTypes.ts +7 -0
- package/src/types/EventTypes.ts +43 -0
- package/src/types/ISetToolModeOptions.ts +2 -2
- package/src/types/IToolGroup.ts +13 -3
- package/src/types/ToolAction.ts +54 -0
- package/src/types/ToolProps.ts +7 -1
- package/src/types/ToolSpecificAnnotationTypes.ts +58 -0
- package/src/types/index.ts +11 -1
- package/src/utilities/cine/playClip.ts +20 -3
- package/src/utilities/dynamicVolume/getDataInTime.ts +9 -6
- package/src/utilities/getCalibratedUnits.ts +15 -5
- package/src/utilities/getModalityUnit.ts +8 -2
- package/src/utilities/index.ts +2 -1
- package/src/utilities/math/angle/angleBetweenLines.ts +39 -9
- package/src/utilities/math/basic/BasicStatsCalculator.ts +60 -0
- package/src/utilities/math/basic/Calculator.ts +8 -0
- package/src/utilities/math/basic/index.ts +4 -0
- package/src/utilities/math/index.ts +10 -1
- package/src/utilities/math/midPoint.ts +3 -1
- package/src/utilities/math/polyline/pointInPolyline.ts +3 -1
- package/src/utilities/math/vec2/liangBarksyClip.ts +15 -5
- package/src/utilities/pointInShapeCallback.ts +15 -3
- package/src/utilities/roundNumber.ts +6 -2
- package/src/utilities/segmentation/brushSizeForToolGroup.ts +22 -4
- package/src/utilities/segmentation/thresholdVolumeByRange.ts +3 -1
- package/src/utilities/segmentation/utilities.ts +8 -1
- package/src/utilities/stackPrefetch/index.ts +3 -7
- package/src/utilities/stackPrefetch/stackContextPrefetch.ts +380 -0
- package/src/utilities/stackPrefetch/stackPrefetch.ts +37 -153
- package/src/utilities/stackPrefetch/stackPrefetchUtils.ts +114 -0
- package/dist/cjs/drawingSvg/_setAttributesIfNecessary.d.ts +0 -2
- package/dist/cjs/drawingSvg/_setAttributesIfNecessary.js.map +0 -1
- package/dist/cjs/drawingSvg/_setNewAttributesIfValid.d.ts +0 -2
- package/dist/cjs/drawingSvg/_setNewAttributesIfValid.js.map +0 -1
- package/dist/esm/drawingSvg/_setAttributesIfNecessary.d.ts +0 -2
- package/dist/esm/drawingSvg/_setAttributesIfNecessary.js.map +0 -1
- package/dist/esm/drawingSvg/_setNewAttributesIfValid.d.ts +0 -2
- package/dist/esm/drawingSvg/_setNewAttributesIfValid.js.map +0 -1
|
@@ -44,6 +44,7 @@ class DragProbeTool extends ProbeTool {
|
|
|
44
44
|
configuration: {
|
|
45
45
|
shadow: true,
|
|
46
46
|
preventHandleOutsideImage: false,
|
|
47
|
+
getTextLines: defaultGetTextLines,
|
|
47
48
|
},
|
|
48
49
|
}
|
|
49
50
|
) {
|
|
@@ -165,26 +166,19 @@ class DragProbeTool extends ProbeTool {
|
|
|
165
166
|
),
|
|
166
167
|
};
|
|
167
168
|
|
|
168
|
-
if (
|
|
169
|
+
if (
|
|
170
|
+
!data.cachedStats[targetId] ||
|
|
171
|
+
data.cachedStats[targetId].value == null
|
|
172
|
+
) {
|
|
169
173
|
data.cachedStats[targetId] = {
|
|
170
174
|
Modality: null,
|
|
171
175
|
index: null,
|
|
172
176
|
value: null,
|
|
173
177
|
};
|
|
174
178
|
|
|
175
|
-
this._calculateCachedStats(
|
|
176
|
-
annotation,
|
|
177
|
-
renderingEngine,
|
|
178
|
-
enabledElement,
|
|
179
|
-
modalityUnitOptions
|
|
180
|
-
);
|
|
179
|
+
this._calculateCachedStats(annotation, renderingEngine, enabledElement);
|
|
181
180
|
} else if (annotation.invalidated) {
|
|
182
|
-
this._calculateCachedStats(
|
|
183
|
-
annotation,
|
|
184
|
-
renderingEngine,
|
|
185
|
-
enabledElement,
|
|
186
|
-
modalityUnitOptions
|
|
187
|
-
);
|
|
181
|
+
this._calculateCachedStats(annotation, renderingEngine, enabledElement);
|
|
188
182
|
}
|
|
189
183
|
|
|
190
184
|
// If rendering engine has been destroyed while rendering
|
|
@@ -205,7 +199,7 @@ class DragProbeTool extends ProbeTool {
|
|
|
205
199
|
|
|
206
200
|
renderStatus = true;
|
|
207
201
|
|
|
208
|
-
const textLines = this.
|
|
202
|
+
const textLines = this.configuration.getTextLines(data, targetId);
|
|
209
203
|
if (textLines) {
|
|
210
204
|
const textCanvasCoordinates = [
|
|
211
205
|
canvasCoordinates[0] + 6,
|
|
@@ -227,5 +221,22 @@ class DragProbeTool extends ProbeTool {
|
|
|
227
221
|
};
|
|
228
222
|
}
|
|
229
223
|
|
|
224
|
+
function defaultGetTextLines(data, targetId): string[] {
|
|
225
|
+
const cachedVolumeStats = data.cachedStats[targetId];
|
|
226
|
+
const { index, value, modalityUnit } = cachedVolumeStats;
|
|
227
|
+
|
|
228
|
+
if (value === undefined) {
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
const textLines = [];
|
|
233
|
+
|
|
234
|
+
textLines.push(`(${index[0]}, ${index[1]}, ${index[2]})`);
|
|
235
|
+
|
|
236
|
+
textLines.push(`${value.toFixed(2)} ${modalityUnit}`);
|
|
237
|
+
|
|
238
|
+
return textLines;
|
|
239
|
+
}
|
|
240
|
+
|
|
230
241
|
DragProbeTool.toolName = 'DragProbe';
|
|
231
242
|
export default DragProbeTool;
|
|
@@ -47,7 +47,6 @@ import {
|
|
|
47
47
|
TextBoxHandle,
|
|
48
48
|
PublicToolProps,
|
|
49
49
|
ToolProps,
|
|
50
|
-
InteractionTypes,
|
|
51
50
|
SVGDrawingHelper,
|
|
52
51
|
} from '../../types';
|
|
53
52
|
import { EllipticalROIAnnotation } from '../../types/ToolSpecificAnnotationTypes';
|
|
@@ -55,8 +54,6 @@ import { EllipticalROIAnnotation } from '../../types/ToolSpecificAnnotationTypes
|
|
|
55
54
|
import {
|
|
56
55
|
AnnotationCompletedEventDetail,
|
|
57
56
|
AnnotationModifiedEventDetail,
|
|
58
|
-
MouseDragEventType,
|
|
59
|
-
MouseMoveEventType,
|
|
60
57
|
} from '../../types/EventTypes';
|
|
61
58
|
import triggerAnnotationRenderForViewportIds from '../../utilities/triggerAnnotationRenderForViewportIds';
|
|
62
59
|
import { pointInShapeCallback } from '../../utilities/';
|
|
@@ -66,6 +63,7 @@ import {
|
|
|
66
63
|
getModalityUnit,
|
|
67
64
|
} from '../../utilities/getModalityUnit';
|
|
68
65
|
import { isViewportPreScaled } from '../../utilities/viewport/isViewportPreScaled';
|
|
66
|
+
import { BasicStatsCalculator } from '../../utilities/math/basic';
|
|
69
67
|
|
|
70
68
|
const { transformWorldToIndex } = csUtils;
|
|
71
69
|
|
|
@@ -115,8 +113,10 @@ const { transformWorldToIndex } = csUtils;
|
|
|
115
113
|
*
|
|
116
114
|
* Read more in the Docs section of the website.
|
|
117
115
|
*/
|
|
116
|
+
|
|
118
117
|
class EllipticalROITool extends AnnotationTool {
|
|
119
118
|
static toolName;
|
|
119
|
+
|
|
120
120
|
touchDragCallback: any;
|
|
121
121
|
mouseDragCallback: any;
|
|
122
122
|
_throttledCalculateCachedStats: any;
|
|
@@ -125,7 +125,7 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
125
125
|
viewportIdsToRender: Array<string>;
|
|
126
126
|
handleIndex?: number;
|
|
127
127
|
movingTextBox?: boolean;
|
|
128
|
-
|
|
128
|
+
centerWorld?: Array<number>;
|
|
129
129
|
canvasWidth?: number;
|
|
130
130
|
canvasHeight?: number;
|
|
131
131
|
originalHandleCanvas?: Array<number>;
|
|
@@ -145,6 +145,8 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
145
145
|
// Radius of the circle to draw at the center point of the ellipse.
|
|
146
146
|
// Set this zero(0) in order not to draw the circle.
|
|
147
147
|
centerPointRadius: 0,
|
|
148
|
+
getTextLines: defaultGetTextLines,
|
|
149
|
+
statsCalculator: BasicStatsCalculator,
|
|
148
150
|
},
|
|
149
151
|
}
|
|
150
152
|
) {
|
|
@@ -236,7 +238,7 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
236
238
|
this.editData = {
|
|
237
239
|
annotation,
|
|
238
240
|
viewportIdsToRender,
|
|
239
|
-
|
|
241
|
+
centerWorld: worldPos,
|
|
240
242
|
newAnnotation: true,
|
|
241
243
|
hasMoved: false,
|
|
242
244
|
};
|
|
@@ -363,6 +365,7 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
363
365
|
let handleIndex;
|
|
364
366
|
|
|
365
367
|
let centerCanvas;
|
|
368
|
+
let centerWorld;
|
|
366
369
|
let canvasWidth;
|
|
367
370
|
let canvasHeight;
|
|
368
371
|
let originalHandleCanvas;
|
|
@@ -371,8 +374,8 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
371
374
|
movingTextBox = true;
|
|
372
375
|
} else {
|
|
373
376
|
const { points } = data.handles;
|
|
374
|
-
const
|
|
375
|
-
const { worldToCanvas } =
|
|
377
|
+
const { viewport } = getEnabledElement(element);
|
|
378
|
+
const { worldToCanvas, canvasToWorld } = viewport;
|
|
376
379
|
|
|
377
380
|
handleIndex = points.findIndex((p) => p === handle);
|
|
378
381
|
|
|
@@ -387,6 +390,8 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
387
390
|
(pointsCanvas[2][0] + pointsCanvas[3][0]) / 2,
|
|
388
391
|
(pointsCanvas[0][1] + pointsCanvas[1][1]) / 2,
|
|
389
392
|
];
|
|
393
|
+
|
|
394
|
+
centerWorld = canvasToWorld(centerCanvas);
|
|
390
395
|
}
|
|
391
396
|
|
|
392
397
|
// Find viewports to render on drag.
|
|
@@ -401,7 +406,7 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
401
406
|
handleIndex,
|
|
402
407
|
canvasWidth,
|
|
403
408
|
canvasHeight,
|
|
404
|
-
|
|
409
|
+
centerWorld,
|
|
405
410
|
originalHandleCanvas,
|
|
406
411
|
movingTextBox,
|
|
407
412
|
};
|
|
@@ -478,7 +483,8 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
478
483
|
const { canvasToWorld } = viewport;
|
|
479
484
|
|
|
480
485
|
//////
|
|
481
|
-
const { annotation, viewportIdsToRender,
|
|
486
|
+
const { annotation, viewportIdsToRender, centerWorld } = this.editData;
|
|
487
|
+
const centerCanvas = viewport.worldToCanvas(centerWorld as Types.Point3);
|
|
482
488
|
const { data } = annotation;
|
|
483
489
|
|
|
484
490
|
const dX = Math.abs(currentCanvasPoints[0] - centerCanvas[0]);
|
|
@@ -552,17 +558,18 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
552
558
|
_dragHandle = (evt: EventTypes.InteractionEventType): void => {
|
|
553
559
|
const eventDetail = evt.detail;
|
|
554
560
|
const { element } = eventDetail;
|
|
555
|
-
const
|
|
556
|
-
const { canvasToWorld } =
|
|
561
|
+
const { viewport } = getEnabledElement(element);
|
|
562
|
+
const { canvasToWorld, worldToCanvas } = viewport;
|
|
557
563
|
|
|
558
564
|
const {
|
|
559
565
|
annotation,
|
|
560
566
|
canvasWidth,
|
|
561
567
|
canvasHeight,
|
|
562
568
|
handleIndex,
|
|
563
|
-
|
|
569
|
+
centerWorld,
|
|
564
570
|
originalHandleCanvas,
|
|
565
571
|
} = this.editData;
|
|
572
|
+
const centerCanvas = viewport.worldToCanvas(centerWorld as Types.Point3);
|
|
566
573
|
const { data } = annotation;
|
|
567
574
|
const { points } = data.handles;
|
|
568
575
|
|
|
@@ -795,21 +802,11 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
795
802
|
|
|
796
803
|
const { centerPointRadius } = this.configuration;
|
|
797
804
|
|
|
798
|
-
const modalityUnitOptions = {
|
|
799
|
-
isPreScaled: isViewportPreScaled(viewport, targetId),
|
|
800
|
-
|
|
801
|
-
isSuvScaled: this.isSuvScaled(
|
|
802
|
-
viewport,
|
|
803
|
-
targetId,
|
|
804
|
-
annotation.metadata.referencedImageId
|
|
805
|
-
),
|
|
806
|
-
};
|
|
807
|
-
|
|
808
805
|
// If cachedStats does not exist, or the unit is missing (as part of import/hydration etc.),
|
|
809
806
|
// force to recalculate the stats from the points
|
|
810
807
|
if (
|
|
811
808
|
!data.cachedStats[targetId] ||
|
|
812
|
-
data.cachedStats[targetId].areaUnit
|
|
809
|
+
data.cachedStats[targetId].areaUnit == null
|
|
813
810
|
) {
|
|
814
811
|
data.cachedStats[targetId] = {
|
|
815
812
|
Modality: null,
|
|
@@ -824,16 +821,14 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
824
821
|
annotation,
|
|
825
822
|
viewport,
|
|
826
823
|
renderingEngine,
|
|
827
|
-
enabledElement
|
|
828
|
-
modalityUnitOptions
|
|
824
|
+
enabledElement
|
|
829
825
|
);
|
|
830
826
|
} else if (annotation.invalidated) {
|
|
831
827
|
this._throttledCalculateCachedStats(
|
|
832
828
|
annotation,
|
|
833
829
|
viewport,
|
|
834
830
|
renderingEngine,
|
|
835
|
-
enabledElement
|
|
836
|
-
modalityUnitOptions
|
|
831
|
+
enabledElement
|
|
837
832
|
);
|
|
838
833
|
// If the invalidated data is as a result of volumeViewport manipulation
|
|
839
834
|
// of the tools, we need to invalidate the related viewports data, so that
|
|
@@ -945,7 +940,22 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
945
940
|
|
|
946
941
|
renderStatus = true;
|
|
947
942
|
|
|
948
|
-
const
|
|
943
|
+
const options = this.getLinkedTextBoxStyle(styleSpecifier, annotation);
|
|
944
|
+
if (!options.visibility) {
|
|
945
|
+
data.handles.textBox = {
|
|
946
|
+
hasMoved: false,
|
|
947
|
+
worldPosition: <Types.Point3>[0, 0, 0],
|
|
948
|
+
worldBoundingBox: {
|
|
949
|
+
topLeft: <Types.Point3>[0, 0, 0],
|
|
950
|
+
topRight: <Types.Point3>[0, 0, 0],
|
|
951
|
+
bottomLeft: <Types.Point3>[0, 0, 0],
|
|
952
|
+
bottomRight: <Types.Point3>[0, 0, 0],
|
|
953
|
+
},
|
|
954
|
+
};
|
|
955
|
+
continue;
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
const textLines = this.configuration.getTextLines(data, targetId);
|
|
949
959
|
if (!textLines || textLines.length === 0) {
|
|
950
960
|
continue;
|
|
951
961
|
}
|
|
@@ -973,7 +983,7 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
973
983
|
textBoxPosition,
|
|
974
984
|
canvasCoordinates,
|
|
975
985
|
{},
|
|
976
|
-
|
|
986
|
+
options
|
|
977
987
|
);
|
|
978
988
|
|
|
979
989
|
const { x: left, y: top, width, height } = boundingBox;
|
|
@@ -989,41 +999,11 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
989
999
|
return renderStatus;
|
|
990
1000
|
};
|
|
991
1001
|
|
|
992
|
-
_getTextLines = (data, targetId: string): string[] => {
|
|
993
|
-
const cachedVolumeStats = data.cachedStats[targetId];
|
|
994
|
-
const { area, mean, stdDev, max, isEmptyArea, areaUnit, modalityUnit } =
|
|
995
|
-
cachedVolumeStats;
|
|
996
|
-
|
|
997
|
-
const textLines: string[] = [];
|
|
998
|
-
|
|
999
|
-
if (area) {
|
|
1000
|
-
const areaLine = isEmptyArea
|
|
1001
|
-
? `Area: Oblique not supported`
|
|
1002
|
-
: `Area: ${roundNumber(area)} ${areaUnit}`;
|
|
1003
|
-
textLines.push(areaLine);
|
|
1004
|
-
}
|
|
1005
|
-
|
|
1006
|
-
if (mean) {
|
|
1007
|
-
textLines.push(`Mean: ${roundNumber(mean)} ${modalityUnit}`);
|
|
1008
|
-
}
|
|
1009
|
-
|
|
1010
|
-
if (max) {
|
|
1011
|
-
textLines.push(`Max: ${roundNumber(max)} ${modalityUnit}`);
|
|
1012
|
-
}
|
|
1013
|
-
|
|
1014
|
-
if (stdDev) {
|
|
1015
|
-
textLines.push(`Std Dev: ${roundNumber(stdDev)} ${modalityUnit}`);
|
|
1016
|
-
}
|
|
1017
|
-
|
|
1018
|
-
return textLines;
|
|
1019
|
-
};
|
|
1020
|
-
|
|
1021
1002
|
_calculateCachedStats = (
|
|
1022
1003
|
annotation,
|
|
1023
1004
|
viewport,
|
|
1024
1005
|
renderingEngine,
|
|
1025
|
-
enabledElement
|
|
1026
|
-
modalityUnitOptions: ModalityUnitOptions
|
|
1006
|
+
enabledElement
|
|
1027
1007
|
) => {
|
|
1028
1008
|
const data = annotation.data;
|
|
1029
1009
|
const { viewportId, renderingEngineId } = enabledElement;
|
|
@@ -1116,57 +1096,39 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
1116
1096
|
scale /
|
|
1117
1097
|
scale;
|
|
1118
1098
|
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
let stdDev = 0;
|
|
1122
|
-
let max = -Infinity;
|
|
1123
|
-
|
|
1124
|
-
const meanMaxCalculator = ({ value: newValue }) => {
|
|
1125
|
-
if (newValue > max) {
|
|
1126
|
-
max = newValue;
|
|
1127
|
-
}
|
|
1099
|
+
const modalityUnitOptions = {
|
|
1100
|
+
isPreScaled: isViewportPreScaled(viewport, targetId),
|
|
1128
1101
|
|
|
1129
|
-
|
|
1130
|
-
|
|
1102
|
+
isSuvScaled: this.isSuvScaled(
|
|
1103
|
+
viewport,
|
|
1104
|
+
targetId,
|
|
1105
|
+
annotation.metadata.referencedImageId
|
|
1106
|
+
),
|
|
1131
1107
|
};
|
|
1132
1108
|
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
boundsIJK
|
|
1109
|
+
const modalityUnit = getModalityUnit(
|
|
1110
|
+
metadata.Modality,
|
|
1111
|
+
annotation.metadata.referencedImageId,
|
|
1112
|
+
modalityUnitOptions
|
|
1138
1113
|
);
|
|
1139
1114
|
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
const stdCalculator = ({ value }) => {
|
|
1143
|
-
const valueMinusMean = value - mean;
|
|
1144
|
-
|
|
1145
|
-
stdDev += valueMinusMean * valueMinusMean;
|
|
1146
|
-
};
|
|
1147
|
-
|
|
1148
|
-
pointInShapeCallback(
|
|
1115
|
+
const pointsInShape = pointInShapeCallback(
|
|
1149
1116
|
imageData,
|
|
1150
1117
|
(pointLPS, pointIJK) => pointInEllipse(ellipseObj, pointLPS),
|
|
1151
|
-
|
|
1118
|
+
this.configuration.statsCalculator.statsCallback,
|
|
1152
1119
|
boundsIJK
|
|
1153
1120
|
);
|
|
1154
1121
|
|
|
1155
|
-
|
|
1156
|
-
stdDev = Math.sqrt(stdDev);
|
|
1157
|
-
|
|
1158
|
-
const modalityUnit = getModalityUnit(
|
|
1159
|
-
metadata.Modality,
|
|
1160
|
-
annotation.metadata.referencedImageId,
|
|
1161
|
-
modalityUnitOptions
|
|
1162
|
-
);
|
|
1122
|
+
const stats = this.configuration.statsCalculator.getStatistics();
|
|
1163
1123
|
|
|
1164
1124
|
cachedStats[targetId] = {
|
|
1165
1125
|
Modality: metadata.Modality,
|
|
1166
1126
|
area,
|
|
1167
|
-
mean,
|
|
1168
|
-
max,
|
|
1169
|
-
stdDev,
|
|
1127
|
+
mean: stats[1]?.value,
|
|
1128
|
+
max: stats[0]?.value,
|
|
1129
|
+
stdDev: stats[2]?.value,
|
|
1130
|
+
statsArray: stats,
|
|
1131
|
+
pointsInShape: pointsInShape,
|
|
1170
1132
|
isEmptyArea,
|
|
1171
1133
|
areaUnit: getCalibratedAreaUnits(null, image),
|
|
1172
1134
|
modalityUnit,
|
|
@@ -1248,5 +1210,34 @@ class EllipticalROITool extends AnnotationTool {
|
|
|
1248
1210
|
}
|
|
1249
1211
|
}
|
|
1250
1212
|
|
|
1213
|
+
function defaultGetTextLines(data, targetId): string[] {
|
|
1214
|
+
const cachedVolumeStats = data.cachedStats[targetId];
|
|
1215
|
+
const { area, mean, stdDev, max, isEmptyArea, areaUnit, modalityUnit } =
|
|
1216
|
+
cachedVolumeStats;
|
|
1217
|
+
|
|
1218
|
+
const textLines: string[] = [];
|
|
1219
|
+
|
|
1220
|
+
if (area) {
|
|
1221
|
+
const areaLine = isEmptyArea
|
|
1222
|
+
? `Area: Oblique not supported`
|
|
1223
|
+
: `Area: ${roundNumber(area)} ${areaUnit}`;
|
|
1224
|
+
textLines.push(areaLine);
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
if (mean) {
|
|
1228
|
+
textLines.push(`Mean: ${roundNumber(mean)} ${modalityUnit}`);
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
if (max) {
|
|
1232
|
+
textLines.push(`Max: ${roundNumber(max)} ${modalityUnit}`);
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
if (stdDev) {
|
|
1236
|
+
textLines.push(`Std Dev: ${roundNumber(stdDev)} ${modalityUnit}`);
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1239
|
+
return textLines;
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1251
1242
|
EllipticalROITool.toolName = 'EllipticalROI';
|
|
1252
1243
|
export default EllipticalROITool;
|
|
@@ -113,6 +113,7 @@ class LengthTool extends AnnotationTool {
|
|
|
113
113
|
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
114
114
|
configuration: {
|
|
115
115
|
preventHandleOutsideImage: false,
|
|
116
|
+
getTextLines: defaultGetTextLines,
|
|
116
117
|
},
|
|
117
118
|
}
|
|
118
119
|
) {
|
|
@@ -661,7 +662,7 @@ class LengthTool extends AnnotationTool {
|
|
|
661
662
|
// force to recalculate the stats from the points
|
|
662
663
|
if (
|
|
663
664
|
!data.cachedStats[targetId] ||
|
|
664
|
-
data.cachedStats[targetId].unit
|
|
665
|
+
data.cachedStats[targetId].unit == null
|
|
665
666
|
) {
|
|
666
667
|
data.cachedStats[targetId] = {
|
|
667
668
|
length: null,
|
|
@@ -731,7 +732,22 @@ class LengthTool extends AnnotationTool {
|
|
|
731
732
|
return renderStatus;
|
|
732
733
|
}
|
|
733
734
|
|
|
734
|
-
const
|
|
735
|
+
const options = this.getLinkedTextBoxStyle(styleSpecifier, annotation);
|
|
736
|
+
if (!options.visibility) {
|
|
737
|
+
data.handles.textBox = {
|
|
738
|
+
hasMoved: false,
|
|
739
|
+
worldPosition: <Types.Point3>[0, 0, 0],
|
|
740
|
+
worldBoundingBox: {
|
|
741
|
+
topLeft: <Types.Point3>[0, 0, 0],
|
|
742
|
+
topRight: <Types.Point3>[0, 0, 0],
|
|
743
|
+
bottomLeft: <Types.Point3>[0, 0, 0],
|
|
744
|
+
bottomRight: <Types.Point3>[0, 0, 0],
|
|
745
|
+
},
|
|
746
|
+
};
|
|
747
|
+
continue;
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
const textLines = this.configuration.getTextLines(data, targetId);
|
|
735
751
|
|
|
736
752
|
// Need to update to sync with annotation while unlinked/not moved
|
|
737
753
|
if (!data.handles.textBox.hasMoved) {
|
|
@@ -754,7 +770,7 @@ class LengthTool extends AnnotationTool {
|
|
|
754
770
|
textBoxPosition,
|
|
755
771
|
canvasCoordinates,
|
|
756
772
|
{},
|
|
757
|
-
|
|
773
|
+
options
|
|
758
774
|
);
|
|
759
775
|
|
|
760
776
|
const { x: left, y: top, width, height } = boundingBox;
|
|
@@ -770,21 +786,6 @@ class LengthTool extends AnnotationTool {
|
|
|
770
786
|
return renderStatus;
|
|
771
787
|
};
|
|
772
788
|
|
|
773
|
-
// text line for the current active length annotation
|
|
774
|
-
_getTextLines(data, targetId) {
|
|
775
|
-
const cachedVolumeStats = data.cachedStats[targetId];
|
|
776
|
-
const { length, unit } = cachedVolumeStats;
|
|
777
|
-
|
|
778
|
-
// Can be null on load
|
|
779
|
-
if (length === undefined || length === null || isNaN(length)) {
|
|
780
|
-
return;
|
|
781
|
-
}
|
|
782
|
-
|
|
783
|
-
const textLines = [`${roundNumber(length)} ${unit}`];
|
|
784
|
-
|
|
785
|
-
return textLines;
|
|
786
|
-
}
|
|
787
|
-
|
|
788
789
|
_calculateLength(pos1, pos2) {
|
|
789
790
|
const dx = pos1[0] - pos2[0];
|
|
790
791
|
const dy = pos1[1] - pos2[1];
|
|
@@ -862,5 +863,19 @@ class LengthTool extends AnnotationTool {
|
|
|
862
863
|
}
|
|
863
864
|
}
|
|
864
865
|
|
|
866
|
+
function defaultGetTextLines(data, targetId): string[] {
|
|
867
|
+
const cachedVolumeStats = data.cachedStats[targetId];
|
|
868
|
+
const { length, unit } = cachedVolumeStats;
|
|
869
|
+
|
|
870
|
+
// Can be null on load
|
|
871
|
+
if (length === undefined || length === null || isNaN(length)) {
|
|
872
|
+
return;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
const textLines = [`${roundNumber(length)} ${unit}`];
|
|
876
|
+
|
|
877
|
+
return textLines;
|
|
878
|
+
}
|
|
879
|
+
|
|
865
880
|
LengthTool.toolName = 'Length';
|
|
866
881
|
export default LengthTool;
|