From dd6d9768bbca1d3cc472e8c1e6d85822500b96ef Mon Sep 17 00:00:00 2001 From: Bill Wallace Date: Wed, 25 Oct 2023 13:08:12 -0400 Subject: [PATCH 1/3] fix(toolbar): allow customizable toolbar for active viewport and allow active tool to be deactivated via a click (#3608) Co-authored-by: Joe Boccanfuso --- extensions/cornerstone/src/commandsModule.ts | 9 +- extensions/default/src/Toolbar/Toolbar.tsx | 25 +- .../src/Toolbar/ToolbarButtonWithServices.tsx | 2 +- modes/basic-test-mode/src/index.ts | 49 ++- modes/basic-test-mode/src/moreTools.ts | 231 +++++++++++++ modes/basic-test-mode/src/moreToolsMpr.ts | 142 ++++++++ modes/basic-test-mode/src/toolbarButtons.ts | 253 +------------- modes/longitudinal/src/index.js | 49 ++- modes/longitudinal/src/moreTools.ts | 298 +++++++++++++++++ modes/longitudinal/src/moreToolsMpr.ts | 242 ++++++++++++++ modes/longitudinal/src/toolbarButtons.ts | 311 +----------------- .../OHIFMeasurementPanel.spec.js | 1 + .../cypress/integration/volume/MPR.spec.js | 29 +- platform/app/cypress/support/commands.js | 9 +- .../services/ToolBarService/ToolbarService.ts | 65 ++-- .../platform/services/data/ToolbarService.md | 2 + .../services/ui/viewport-grid-service.md | 1 + .../contextProviders/ViewportGridProvider.tsx | 6 + 18 files changed, 1096 insertions(+), 628 deletions(-) create mode 100644 modes/basic-test-mode/src/moreTools.ts create mode 100644 modes/basic-test-mode/src/moreToolsMpr.ts create mode 100644 modes/longitudinal/src/moreTools.ts create mode 100644 modes/longitudinal/src/moreToolsMpr.ts diff --git a/extensions/cornerstone/src/commandsModule.ts b/extensions/cornerstone/src/commandsModule.ts index 9ca0dbb335f..4c443c243f2 100644 --- a/extensions/cornerstone/src/commandsModule.ts +++ b/extensions/cornerstone/src/commandsModule.ts @@ -456,13 +456,8 @@ function commandsModule({ const { viewport } = enabledElement; - if (viewport instanceof StackViewport) { - viewport.resetProperties(); - viewport.resetCamera(); - } else { - viewport.resetProperties(); - viewport.resetCamera(); - } + viewport.resetProperties?.(); + viewport.resetCamera(); viewport.render(); }, diff --git a/extensions/default/src/Toolbar/Toolbar.tsx b/extensions/default/src/Toolbar/Toolbar.tsx index c714968a1d0..f3812ff5b6c 100644 --- a/extensions/default/src/Toolbar/Toolbar.tsx +++ b/extensions/default/src/Toolbar/Toolbar.tsx @@ -1,19 +1,34 @@ -import React, { useEffect, useState, useCallback } from 'react'; +import React, { useCallback, useEffect, useState } from 'react'; import classnames from 'classnames'; +import { useViewportGrid } from '@ohif/ui'; -export default function Toolbar({ servicesManager }) { +export default function Toolbar({ + servicesManager, +}: Types.Extensions.ExtensionParams): React.ReactElement { const { toolbarService } = servicesManager.services; + + const [viewportGrid, viewportGridService] = useViewportGrid(); + const [toolbarButtons, setToolbarButtons] = useState([]); useEffect(() => { - const { unsubscribe } = toolbarService.subscribe(toolbarService.EVENTS.TOOL_BAR_MODIFIED, () => - setToolbarButtons(toolbarService.getButtonSection('primary')) + const updateToolbar = () => { + const toolGroupId = + viewportGridService.getActiveViewportOptionByKey('toolGroupId') ?? 'default'; + setToolbarButtons(toolbarService.getButtonSection(toolGroupId)); + }; + + const { unsubscribe } = toolbarService.subscribe( + toolbarService.EVENTS.TOOL_BAR_MODIFIED, + updateToolbar ); + updateToolbar(); + return () => { unsubscribe(); }; - }, [toolbarService]); + }, [toolbarService, viewportGrid]); const onInteraction = useCallback( args => toolbarService.recordInteraction(args), diff --git a/extensions/default/src/Toolbar/ToolbarButtonWithServices.tsx b/extensions/default/src/Toolbar/ToolbarButtonWithServices.tsx index 24dda712b4d..32b7fb51e98 100644 --- a/extensions/default/src/Toolbar/ToolbarButtonWithServices.tsx +++ b/extensions/default/src/Toolbar/ToolbarButtonWithServices.tsx @@ -65,7 +65,7 @@ ToolbarButtonWithServices.propTypes = { state: PropTypes.shape({ primaryToolId: PropTypes.string, toggles: PropTypes.objectOf(PropTypes.bool), - groups: PropTypes.objectOf(PropTypes.object), + groups: PropTypes.objectOf(PropTypes.any), }).isRequired, }).isRequired, }).isRequired, diff --git a/modes/basic-test-mode/src/index.ts b/modes/basic-test-mode/src/index.ts index 3d51b06f15a..1c8d5fc8bb9 100644 --- a/modes/basic-test-mode/src/index.ts +++ b/modes/basic-test-mode/src/index.ts @@ -2,11 +2,16 @@ import { hotkeys } from '@ohif/core'; import toolbarButtons from './toolbarButtons'; import { id } from './id'; import initToolGroups from './initToolGroups'; +import moreTools from './moreTools'; +import moreToolsMpr from './moreToolsMpr'; // Allow this mode by excluding non-imaging modalities such as SR, SEG // Also, SM is not a simple imaging modalities, so exclude it. const NON_IMAGE_MODALITIES = ['SM', 'ECG', 'SR', 'SEG']; +const DEFAULT_TOOL_GROUP_ID = 'default'; +const MPR_TOOL_GROUP_ID = 'mpr'; + const ohif = { layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout', sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack', @@ -77,21 +82,23 @@ function modeFactory() { ]); let unsubscribe; + toolbarService.setDefaultTool({ + groupId: 'WindowLevel', + itemId: 'WindowLevel', + interactionType: 'tool', + commands: [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'WindowLevel', + }, + context: 'CORNERSTONE', + }, + ], + }); const activateTool = () => { - toolbarService.recordInteraction({ - groupId: 'WindowLevel', - interactionType: 'tool', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - }); + toolbarService.recordInteraction(toolbarService.getDefaultTool()); // We don't need to reset the active tool whenever a viewport is getting // added to the toolGroup. @@ -106,8 +113,8 @@ function modeFactory() { )); toolbarService.init(extensionManager); - toolbarService.addButtons(toolbarButtons); - toolbarService.createButtonSection('primary', [ + toolbarService.addButtons([...toolbarButtons, ...moreTools, ...moreToolsMpr]); + toolbarService.createButtonSection(DEFAULT_TOOL_GROUP_ID, [ 'MeasurementTools', 'Zoom', 'WindowLevel', @@ -115,9 +122,19 @@ function modeFactory() { 'Capture', 'Layout', 'MPR', - 'Crosshairs', 'MoreTools', ]); + toolbarService.createButtonSection(MPR_TOOL_GROUP_ID, [ + 'MeasurementTools', + 'Zoom', + 'WindowLevel', + 'Pan', + 'Capture', + 'Layout', + 'MPR', + 'Crosshairs', + 'MoreToolsMpr', + ]); }, onModeExit: ({ servicesManager }) => { const { diff --git a/modes/basic-test-mode/src/moreTools.ts b/modes/basic-test-mode/src/moreTools.ts new file mode 100644 index 00000000000..1baa17118ca --- /dev/null +++ b/modes/basic-test-mode/src/moreTools.ts @@ -0,0 +1,231 @@ +import type { RunCommand } from '@ohif/core/types'; +import { EVENTS } from '@cornerstonejs/core'; +import { ToolbarService } from '@ohif/core'; + +const ReferenceLinesCommands: RunCommand = [ + { + commandName: 'setSourceViewportForReferenceLinesTool', + context: 'CORNERSTONE', + }, + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'ReferenceLines', + }, + context: 'CORNERSTONE', + }, +]; + +const moreTools = [ + { + id: 'MoreTools', + type: 'ohif.splitButton', + props: { + isRadio: true, // ? + groupId: 'MoreTools', + primary: ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + }, + ], + 'Reset' + ), + secondary: { + icon: 'chevron-down', + label: '', + isActive: true, + tooltip: 'More Tools', + }, + items: [ + ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + }, + ], + 'Reset' + ), + ToolbarService._createActionButton( + 'rotate-right', + 'tool-rotate-right', + 'Rotate Right', + [ + { + commandName: 'rotateViewportCW', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Rotate +90' + ), + ToolbarService._createActionButton( + 'flip-horizontal', + 'tool-flip-horizontal', + 'Flip Horizontally', + [ + { + commandName: 'flipViewportHorizontal', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Flip Horizontally' + ), + ToolbarService._createToggleButton( + 'StackImageSync', + 'link', + 'Stack Image Sync', + [ + { + commandName: 'toggleStackImageSync', + }, + ], + 'Enable position synchronization on stack viewports', + { + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: { + commandName: 'toggleStackImageSync', + commandOptions: { toggledState: true }, + }, + }, + } + ), + ToolbarService._createToggleButton( + 'ReferenceLines', + 'tool-referenceLines', // change this with the new icon + 'Reference Lines', + ReferenceLinesCommands, + 'Show Reference Lines', + { + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands, + [EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands, + }, + } + ), + ToolbarService._createToolButton( + 'StackScroll', + 'tool-stack-scroll', + 'Stack Scroll', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'StackScroll', + }, + context: 'CORNERSTONE', + }, + ], + 'Stack Scroll' + ), + ToolbarService._createActionButton( + 'invert', + 'tool-invert', + 'Invert', + [ + { + commandName: 'invertViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Invert Colors' + ), + ToolbarService._createToolButton( + 'Probe', + 'tool-probe', + 'Probe', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'DragProbe', + }, + context: 'CORNERSTONE', + }, + ], + 'Probe' + ), + ToolbarService._createToggleButton( + 'cine', + 'tool-cine', + 'Cine', + [ + { + commandName: 'toggleCine', + context: 'CORNERSTONE', + }, + ], + 'Cine' + ), + ToolbarService._createToolButton( + 'Angle', + 'tool-angle', + 'Angle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Angle', + }, + context: 'CORNERSTONE', + }, + ], + 'Angle' + ), + ToolbarService._createToolButton( + 'Magnify', + 'tool-magnify', + 'Magnify', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Magnify', + }, + context: 'CORNERSTONE', + }, + ], + 'Magnify' + ), + ToolbarService._createToolButton( + 'Rectangle', + 'tool-rectangle', + 'Rectangle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'RectangleROI', + }, + context: 'CORNERSTONE', + }, + ], + 'Rectangle' + ), + ToolbarService._createActionButton( + 'TagBrowser', + 'list-bullets', + 'Dicom Tag Browser', + [ + { + commandName: 'openDICOMTagViewer', + commandOptions: {}, + context: 'DEFAULT', + }, + ], + 'Dicom Tag Browser' + ), + ], + }, + }, +]; + +export default moreTools; diff --git a/modes/basic-test-mode/src/moreToolsMpr.ts b/modes/basic-test-mode/src/moreToolsMpr.ts new file mode 100644 index 00000000000..0672170a3c7 --- /dev/null +++ b/modes/basic-test-mode/src/moreToolsMpr.ts @@ -0,0 +1,142 @@ +import { ToolbarService } from '@ohif/core'; + +const moreToolsMpr = [ + { + id: 'MoreToolsMpr', + type: 'ohif.splitButton', + props: { + isRadio: true, // ? + groupId: 'MoreTools', + primary: ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + }, + ], + 'Reset' + ), + secondary: { + icon: 'chevron-down', + label: '', + isActive: true, + tooltip: 'More Tools', + }, + items: [ + ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + }, + ], + 'Reset' + ), + ToolbarService._createToolButton( + 'StackScroll', + 'tool-stack-scroll', + 'Stack Scroll', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'StackScroll', + }, + context: 'CORNERSTONE', + }, + ], + 'Stack Scroll' + ), + ToolbarService._createActionButton( + 'invert', + 'tool-invert', + 'Invert', + [ + { + commandName: 'invertViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Invert Colors' + ), + ToolbarService._createToolButton( + 'Probe', + 'tool-probe', + 'Probe', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'DragProbe', + }, + context: 'CORNERSTONE', + }, + ], + 'Probe' + ), + ToolbarService._createToggleButton( + 'cine', + 'tool-cine', + 'Cine', + [ + { + commandName: 'toggleCine', + context: 'CORNERSTONE', + }, + ], + 'Cine' + ), + ToolbarService._createToolButton( + 'Angle', + 'tool-angle', + 'Angle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Angle', + }, + context: 'CORNERSTONE', + }, + ], + 'Angle' + ), + ToolbarService._createToolButton( + 'Rectangle', + 'tool-rectangle', + 'Rectangle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'RectangleROI', + }, + context: 'CORNERSTONE', + }, + ], + 'Rectangle' + ), + ToolbarService._createActionButton( + 'TagBrowser', + 'list-bullets', + 'Dicom Tag Browser', + [ + { + commandName: 'openDICOMTagViewer', + commandOptions: {}, + context: 'DEFAULT', + }, + ], + 'Dicom Tag Browser' + ), + ], + }, + }, +]; + +export default moreToolsMpr; diff --git a/modes/basic-test-mode/src/toolbarButtons.ts b/modes/basic-test-mode/src/toolbarButtons.ts index 5d540b39c50..391aef110aa 100644 --- a/modes/basic-test-mode/src/toolbarButtons.ts +++ b/modes/basic-test-mode/src/toolbarButtons.ts @@ -5,16 +5,11 @@ import { // ListMenu, WindowLevelMenuItem, } from '@ohif/ui'; -import { defaults, ToolbarService } from '@ohif/core'; -import type { Button, RunCommand } from '@ohif/core/types'; -import { EVENTS } from '@cornerstonejs/core'; +import { ToolbarService, defaults } from '@ohif/core'; +import type { Button } from '@ohif/core/types'; const { windowLevelPresets } = defaults; -const _createActionButton = ToolbarService._createButton.bind(null, 'action'); -const _createToggleButton = ToolbarService._createButton.bind(null, 'toggle'); -const _createToolButton = ToolbarService._createButton.bind(null, 'tool'); - /** * * @param {*} preset - preset number (from above import) @@ -39,20 +34,6 @@ function _createWwwcPreset(preset, title, subtitle) { }; } -const ReferenceLinesCommands: RunCommand = [ - { - commandName: 'setSourceViewportForReferenceLinesTool', - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'ReferenceLines', - }, - context: 'CORNERSTONE', - }, -]; - const toolbarButtons: Button[] = [ // Measurement { @@ -62,7 +43,7 @@ const toolbarButtons: Button[] = [ groupId: 'MeasurementTools', isRadio: true, // ? // Switch? - primary: _createToolButton( + primary: ToolbarService._createToolButton( 'Length', 'tool-length', 'Length', @@ -93,7 +74,7 @@ const toolbarButtons: Button[] = [ tooltip: 'More Measure Tools', }, items: [ - _createToolButton( + ToolbarService._createToolButton( 'Length', 'tool-length', 'Length', @@ -117,7 +98,7 @@ const toolbarButtons: Button[] = [ ], 'Length Tool' ), - _createToolButton( + ToolbarService._createToolButton( 'Bidirectional', 'tool-bidirectional', 'Bidirectional', @@ -140,7 +121,7 @@ const toolbarButtons: Button[] = [ ], 'Bidirectional Tool' ), - _createToolButton( + ToolbarService._createToolButton( 'ArrowAnnotate', 'tool-annotate', 'Annotation', @@ -163,7 +144,7 @@ const toolbarButtons: Button[] = [ ], 'Arrow Annotate' ), - _createToolButton( + ToolbarService._createToolButton( 'EllipticalROI', 'tool-elipse', 'Ellipse', @@ -186,7 +167,7 @@ const toolbarButtons: Button[] = [ ], 'Ellipse Tool' ), - _createToolButton( + ToolbarService._createToolButton( 'CircleROI', 'tool-circle', 'Circle', @@ -237,7 +218,7 @@ const toolbarButtons: Button[] = [ type: 'ohif.splitButton', props: { groupId: 'WindowLevel', - primary: _createToolButton( + primary: ToolbarService._createToolButton( 'WindowLevel', 'tool-window-level', 'Window Level', @@ -411,7 +392,6 @@ const toolbarButtons: Button[] = [ commandOptions: { protocolId: 'mpr', }, - context: 'DEFAULT', }, ], }, @@ -430,225 +410,10 @@ const toolbarButtons: Button[] = [ toolGroupId: 'mpr', toolName: 'Crosshairs', }, - context: 'CORNERSTONE', }, ], }, }, - // More... - { - id: 'MoreTools', - type: 'ohif.splitButton', - props: { - isRadio: true, // ? - groupId: 'MoreTools', - primary: _createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Reset' - ), - secondary: { - icon: 'chevron-down', - label: '', - isActive: true, - tooltip: 'More Tools', - }, - items: [ - _createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Reset' - ), - _createActionButton( - 'rotate-right', - 'tool-rotate-right', - 'Rotate Right', - [ - { - commandName: 'rotateViewportCW', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Rotate +90' - ), - _createActionButton( - 'flip-horizontal', - 'tool-flip-horizontal', - 'Flip Horizontally', - [ - { - commandName: 'flipViewportHorizontal', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Flip Horizontally' - ), - _createToggleButton( - 'StackImageSync', - 'link', - 'Stack Image Sync', - [ - { - commandName: 'toggleStackImageSync', - }, - ], - 'Enable position synchronization on stack viewports', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: { - commandName: 'toggleStackImageSync', - commandOptions: { toggledState: true }, - }, - }, - } - ), - _createToggleButton( - 'ReferenceLines', - 'tool-referenceLines', // change this with the new icon - 'Reference Lines', - ReferenceLinesCommands, - 'Show Reference Lines', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands, - [EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands, - }, - } - ), - _createToolButton( - 'StackScroll', - 'tool-stack-scroll', - 'Stack Scroll', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'StackScroll', - }, - context: 'CORNERSTONE', - }, - ], - 'Stack Scroll' - ), - _createActionButton( - 'invert', - 'tool-invert', - 'Invert', - [ - { - commandName: 'invertViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Invert Colors' - ), - _createToolButton( - 'Probe', - 'tool-probe', - 'Probe', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'DragProbe', - }, - context: 'CORNERSTONE', - }, - ], - 'Probe' - ), - _createToggleButton( - 'cine', - 'tool-cine', - 'Cine', - [ - { - commandName: 'toggleCine', - context: 'CORNERSTONE', - }, - ], - 'Cine' - ), - _createToolButton( - 'Angle', - 'tool-angle', - 'Angle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Angle', - }, - context: 'CORNERSTONE', - }, - ], - 'Angle' - ), - _createToolButton( - 'Magnify', - 'tool-magnify', - 'Magnify', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Magnify', - }, - context: 'CORNERSTONE', - }, - ], - 'Magnify' - ), - _createToolButton( - 'Rectangle', - 'tool-rectangle', - 'Rectangle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'RectangleROI', - }, - context: 'CORNERSTONE', - }, - ], - 'Rectangle' - ), - _createActionButton( - 'TagBrowser', - 'list-bullets', - 'Dicom Tag Browser', - [ - { - commandName: 'openDICOMTagViewer', - commandOptions: {}, - context: 'DEFAULT', - }, - ], - 'Dicom Tag Browser' - ), - ], - }, - }, ]; export default toolbarButtons; diff --git a/modes/longitudinal/src/index.js b/modes/longitudinal/src/index.js index 25397a2cf74..03f7fce9c91 100644 --- a/modes/longitudinal/src/index.js +++ b/modes/longitudinal/src/index.js @@ -2,11 +2,16 @@ import { hotkeys } from '@ohif/core'; import toolbarButtons from './toolbarButtons'; import { id } from './id'; import initToolGroups from './initToolGroups'; +import moreTools from './moreTools'; +import moreToolsMpr from './moreToolsMpr'; // Allow this mode by excluding non-imaging modalities such as SR, SEG // Also, SM is not a simple imaging modalities, so exclude it. const NON_IMAGE_MODALITIES = ['SM', 'ECG', 'SR', 'SEG', 'RTSTRUCT']; +const DEFAULT_TOOL_GROUP_ID = 'default'; +const MPR_TOOL_GROUP_ID = 'mpr'; + const ohif = { layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout', sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack', @@ -83,21 +88,23 @@ function modeFactory({ modeConfiguration }) { initToolGroups(extensionManager, toolGroupService, commandsManager); let unsubscribe; + toolbarService.setDefaultTool({ + groupId: 'WindowLevel', + itemId: 'WindowLevel', + interactionType: 'tool', + commands: [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'WindowLevel', + }, + context: 'CORNERSTONE', + }, + ], + }); const activateTool = () => { - toolbarService.recordInteraction({ - groupId: 'WindowLevel', - interactionType: 'tool', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - }); + toolbarService.recordInteraction(toolbarService.getDefaultTool()); // We don't need to reset the active tool whenever a viewport is getting // added to the toolGroup. @@ -112,8 +119,8 @@ function modeFactory({ modeConfiguration }) { )); toolbarService.init(extensionManager); - toolbarService.addButtons(toolbarButtons); - toolbarService.createButtonSection('primary', [ + toolbarService.addButtons([...toolbarButtons, ...moreTools, ...moreToolsMpr]); + toolbarService.createButtonSection(DEFAULT_TOOL_GROUP_ID, [ 'MeasurementTools', 'Zoom', 'WindowLevel', @@ -121,9 +128,19 @@ function modeFactory({ modeConfiguration }) { 'Capture', 'Layout', 'MPR', - 'Crosshairs', 'MoreTools', ]); + toolbarService.createButtonSection(MPR_TOOL_GROUP_ID, [ + 'MeasurementTools', + 'Zoom', + 'WindowLevel', + 'Pan', + 'Capture', + 'Layout', + 'MPR', + 'Crosshairs', + 'MoreToolsMpr', + ]); customizationService.addModeCustomizations([ { diff --git a/modes/longitudinal/src/moreTools.ts b/modes/longitudinal/src/moreTools.ts new file mode 100644 index 00000000000..5a20d1cbe44 --- /dev/null +++ b/modes/longitudinal/src/moreTools.ts @@ -0,0 +1,298 @@ +import type { RunCommand } from '@ohif/core/types'; +import { EVENTS } from '@cornerstonejs/core'; +import { ToolbarService } from '@ohif/core'; + +const ReferenceLinesCommands: RunCommand = [ + { + commandName: 'setSourceViewportForReferenceLinesTool', + context: 'CORNERSTONE', + }, + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'ReferenceLines', + }, + context: 'CORNERSTONE', + }, +]; + +const moreTools = [ + { + id: 'MoreTools', + type: 'ohif.splitButton', + props: { + isRadio: true, // ? + groupId: 'MoreTools', + primary: ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Reset' + ), + secondary: { + icon: 'chevron-down', + label: '', + isActive: true, + tooltip: 'More Tools', + }, + items: [ + ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Reset' + ), + ToolbarService._createActionButton( + 'rotate-right', + 'tool-rotate-right', + 'Rotate Right', + [ + { + commandName: 'rotateViewportCW', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Rotate +90' + ), + ToolbarService._createActionButton( + 'flip-horizontal', + 'tool-flip-horizontal', + 'Flip Horizontally', + [ + { + commandName: 'flipViewportHorizontal', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Flip Horizontal' + ), + ToolbarService._createToggleButton( + 'StackImageSync', + 'link', + 'Stack Image Sync', + [ + { + commandName: 'toggleStackImageSync', + }, + ], + 'Enable position synchronization on stack viewports', + { + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: { + commandName: 'toggleStackImageSync', + commandOptions: { toggledState: true }, + }, + }, + } + ), + ToolbarService._createToggleButton( + 'ReferenceLines', + 'tool-referenceLines', // change this with the new icon + 'Reference Lines', + ReferenceLinesCommands, + 'Show Reference Lines', + { + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands, + [EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands, + }, + } + ), + ToolbarService._createToggleButton( + 'ImageOverlayViewer', + 'toggle-dicom-overlay', + 'Image Overlay', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'ImageOverlayViewer', + }, + context: 'CORNERSTONE', + }, + ], + 'Image Overlay', + { isActive: true } + ), + ToolbarService._createToolButton( + 'StackScroll', + 'tool-stack-scroll', + 'Stack Scroll', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'StackScroll', + }, + context: 'CORNERSTONE', + }, + ], + 'Stack Scroll' + ), + ToolbarService._createActionButton( + 'invert', + 'tool-invert', + 'Invert', + [ + { + commandName: 'invertViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Invert Colors' + ), + ToolbarService._createToolButton( + 'Probe', + 'tool-probe', + 'Probe', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'DragProbe', + }, + context: 'CORNERSTONE', + }, + ], + 'Probe' + ), + ToolbarService._createToggleButton( + 'cine', + 'tool-cine', + 'Cine', + [ + { + commandName: 'toggleCine', + context: 'CORNERSTONE', + }, + ], + 'Cine' + ), + ToolbarService._createToolButton( + 'Angle', + 'tool-angle', + 'Angle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Angle', + }, + context: 'CORNERSTONE', + }, + ], + 'Angle' + ), + + // Next two tools can be added once icons are added + // ToolbarService._createToolButton( + // 'Cobb Angle', + // 'tool-cobb-angle', + // 'Cobb Angle', + // [ + // { + // commandName: 'setToolActive', + // commandOptions: { + // toolName: 'CobbAngle', + // }, + // context: 'CORNERSTONE', + // }, + // ], + // 'Cobb Angle' + // ), + // ToolbarService._createToolButton( + // 'Planar Freehand ROI', + // 'tool-freehand', + // 'PlanarFreehandROI', + // [ + // { + // commandName: 'setToolActive', + // commandOptions: { + // toolName: 'PlanarFreehandROI', + // }, + // context: 'CORNERSTONE', + // }, + // ], + // 'Planar Freehand ROI' + // ), + ToolbarService._createToolButton( + 'Magnify', + 'tool-magnify', + 'Magnify', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Magnify', + }, + context: 'CORNERSTONE', + }, + ], + 'Magnify' + ), + ToolbarService._createToolButton( + 'Rectangle', + 'tool-rectangle', + 'Rectangle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'RectangleROI', + }, + context: 'CORNERSTONE', + }, + ], + 'Rectangle' + ), + ToolbarService._createToolButton( + 'CalibrationLine', + 'tool-calibration', + 'Calibration', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'CalibrationLine', + }, + context: 'CORNERSTONE', + }, + ], + 'Calibration Line' + ), + ToolbarService._createActionButton( + 'TagBrowser', + 'list-bullets', + 'Dicom Tag Browser', + [ + { + commandName: 'openDICOMTagViewer', + commandOptions: {}, + context: 'DEFAULT', + }, + ], + 'Dicom Tag Browser' + ), + ], + }, + }, +]; + +export default moreTools; diff --git a/modes/longitudinal/src/moreToolsMpr.ts b/modes/longitudinal/src/moreToolsMpr.ts new file mode 100644 index 00000000000..7930068dca0 --- /dev/null +++ b/modes/longitudinal/src/moreToolsMpr.ts @@ -0,0 +1,242 @@ +import type { RunCommand } from '@ohif/core/types'; +import { EVENTS } from '@cornerstonejs/core'; +import { ToolbarService } from '@ohif/core'; + +const ReferenceLinesCommands: RunCommand = [ + { + commandName: 'setSourceViewportForReferenceLinesTool', + context: 'CORNERSTONE', + }, + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'ReferenceLines', + }, + context: 'CORNERSTONE', + }, +]; + +const moreToolsMpr = [ + { + id: 'MoreToolsMpr', + type: 'ohif.splitButton', + props: { + isRadio: true, // ? + groupId: 'MoreTools', + primary: ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Reset' + ), + secondary: { + icon: 'chevron-down', + label: '', + isActive: true, + tooltip: 'More Tools', + }, + items: [ + ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Reset' + ), + ToolbarService._createToggleButton( + 'StackImageSync', + 'link', + 'Stack Image Sync', + [ + { + commandName: 'toggleStackImageSync', + }, + ], + 'Enable position synchronization on stack viewports', + { + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: { + commandName: 'toggleStackImageSync', + commandOptions: { toggledState: true }, + }, + }, + } + ), + ToolbarService._createToggleButton( + 'ReferenceLines', + 'tool-referenceLines', // change this with the new icon + 'Reference Lines', + ReferenceLinesCommands, + 'Show Reference Lines', + { + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands, + [EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands, + }, + } + ), + ToolbarService._createToggleButton( + 'ImageOverlayViewer', + 'toggle-dicom-overlay', + 'Image Overlay', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'ImageOverlayViewer', + }, + context: 'CORNERSTONE', + }, + ], + 'Image Overlay', + { isActive: true } + ), + ToolbarService._createToolButton( + 'StackScroll', + 'tool-stack-scroll', + 'Stack Scroll', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'StackScroll', + }, + context: 'CORNERSTONE', + }, + ], + 'Stack Scroll' + ), + ToolbarService._createActionButton( + 'invert', + 'tool-invert', + 'Invert', + [ + { + commandName: 'invertViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Invert Colors' + ), + ToolbarService._createToolButton( + 'Probe', + 'tool-probe', + 'Probe', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'DragProbe', + }, + context: 'CORNERSTONE', + }, + ], + 'Probe' + ), + ToolbarService._createToggleButton( + 'cine', + 'tool-cine', + 'Cine', + [ + { + commandName: 'toggleCine', + context: 'CORNERSTONE', + }, + ], + 'Cine' + ), + ToolbarService._createToolButton( + 'Angle', + 'tool-angle', + 'Angle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Angle', + }, + context: 'CORNERSTONE', + }, + ], + 'Angle' + ), + + // Next two tools can be added once icons are added + // ToolbarService._createToolButton( + // 'Cobb Angle', + // 'tool-cobb-angle', + // 'Cobb Angle', + // [ + // { + // commandName: 'setToolActive', + // commandOptions: { + // toolName: 'CobbAngle', + // }, + // context: 'CORNERSTONE', + // }, + // ], + // 'Cobb Angle' + // ), + // ToolbarService._createToolButton( + // 'Planar Freehand ROI', + // 'tool-freehand', + // 'PlanarFreehandROI', + // [ + // { + // commandName: 'setToolActive', + // commandOptions: { + // toolName: 'PlanarFreehandROI', + // }, + // context: 'CORNERSTONE', + // }, + // ], + // 'Planar Freehand ROI' + // ), + ToolbarService._createToolButton( + 'Rectangle', + 'tool-rectangle', + 'Rectangle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'RectangleROI', + }, + context: 'CORNERSTONE', + }, + ], + 'Rectangle' + ), + ToolbarService._createActionButton( + 'TagBrowser', + 'list-bullets', + 'Dicom Tag Browser', + [ + { + commandName: 'openDICOMTagViewer', + commandOptions: {}, + context: 'DEFAULT', + }, + ], + 'Dicom Tag Browser' + ), + ], + }, + }, +]; + +export default moreToolsMpr; diff --git a/modes/longitudinal/src/toolbarButtons.ts b/modes/longitudinal/src/toolbarButtons.ts index e7842c56521..2237edd2b36 100644 --- a/modes/longitudinal/src/toolbarButtons.ts +++ b/modes/longitudinal/src/toolbarButtons.ts @@ -6,15 +6,10 @@ import { WindowLevelMenuItem, } from '@ohif/ui'; import { defaults, ToolbarService } from '@ohif/core'; -import type { Button, RunCommand } from '@ohif/core/types'; -import { EVENTS } from '@cornerstonejs/core'; +import type { Button } from '@ohif/core/types'; const { windowLevelPresets } = defaults; -const _createActionButton = ToolbarService._createButton.bind(null, 'action'); -const _createToggleButton = ToolbarService._createButton.bind(null, 'toggle'); -const _createToolButton = ToolbarService._createButton.bind(null, 'tool'); - /** * * @param {*} preset - preset number (from above import) @@ -59,20 +54,6 @@ function _createSetToolActiveCommands(toolName) { return temp; } -const ReferenceLinesCommands: RunCommand = [ - { - commandName: 'setSourceViewportForReferenceLinesTool', - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'ReferenceLines', - }, - context: 'CORNERSTONE', - }, -]; - const toolbarButtons: Button[] = [ // Measurement { @@ -82,7 +63,7 @@ const toolbarButtons: Button[] = [ groupId: 'MeasurementTools', isRadio: true, // ? // Switch? - primary: _createToolButton( + primary: ToolbarService._createToolButton( 'Length', 'tool-length', 'Length', @@ -113,7 +94,7 @@ const toolbarButtons: Button[] = [ tooltip: 'More Measure Tools', }, items: [ - _createToolButton( + ToolbarService._createToolButton( 'Length', 'tool-length', 'Length', @@ -137,7 +118,7 @@ const toolbarButtons: Button[] = [ ], 'Length Tool' ), - _createToolButton( + ToolbarService._createToolButton( 'Bidirectional', 'tool-bidirectional', 'Bidirectional', @@ -160,7 +141,7 @@ const toolbarButtons: Button[] = [ ], 'Bidirectional Tool' ), - _createToolButton( + ToolbarService._createToolButton( 'ArrowAnnotate', 'tool-annotate', 'Annotation', @@ -183,7 +164,7 @@ const toolbarButtons: Button[] = [ ], 'Arrow Annotate' ), - _createToolButton( + ToolbarService._createToolButton( 'EllipticalROI', 'tool-elipse', 'Ellipse', @@ -206,7 +187,7 @@ const toolbarButtons: Button[] = [ ], 'Ellipse Tool' ), - _createToolButton( + ToolbarService._createToolButton( 'CircleROI', 'tool-circle', 'Circle', @@ -249,7 +230,7 @@ const toolbarButtons: Button[] = [ type: 'ohif.splitButton', props: { groupId: 'WindowLevel', - primary: _createToolButton( + primary: ToolbarService._createToolButton( 'WindowLevel', 'tool-window-level', 'Window Level', @@ -354,282 +335,6 @@ const toolbarButtons: Button[] = [ }, }, // More... - { - id: 'MoreTools', - type: 'ohif.splitButton', - props: { - isRadio: true, // ? - groupId: 'MoreTools', - primary: _createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Reset' - ), - secondary: { - icon: 'chevron-down', - label: '', - isActive: true, - tooltip: 'More Tools', - }, - items: [ - _createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Reset' - ), - _createActionButton( - 'rotate-right', - 'tool-rotate-right', - 'Rotate Right', - [ - { - commandName: 'rotateViewportCW', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Rotate +90' - ), - _createActionButton( - 'flip-horizontal', - 'tool-flip-horizontal', - 'Flip Horizontally', - [ - { - commandName: 'flipViewportHorizontal', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Flip Horizontal' - ), - _createToggleButton( - 'StackImageSync', - 'link', - 'Stack Image Sync', - [ - { - commandName: 'toggleStackImageSync', - }, - ], - 'Enable position synchronization on stack viewports', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: { - commandName: 'toggleStackImageSync', - commandOptions: { toggledState: true }, - }, - }, - } - ), - _createToggleButton( - 'ReferenceLines', - 'tool-referenceLines', // change this with the new icon - 'Reference Lines', - ReferenceLinesCommands, - 'Show Reference Lines', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands, - [EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands, - }, - } - ), - _createToggleButton( - 'ImageOverlayViewer', - 'toggle-dicom-overlay', - 'Image Overlay', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'ImageOverlayViewer', - }, - context: 'CORNERSTONE', - }, - ], - 'Image Overlay', - { isActive: true } - ), - _createToolButton( - 'StackScroll', - 'tool-stack-scroll', - 'Stack Scroll', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'StackScroll', - }, - context: 'CORNERSTONE', - }, - ], - 'Stack Scroll' - ), - _createActionButton( - 'invert', - 'tool-invert', - 'Invert', - [ - { - commandName: 'invertViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Invert Colors' - ), - _createToolButton( - 'Probe', - 'tool-probe', - 'Probe', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'DragProbe', - }, - context: 'CORNERSTONE', - }, - ], - 'Probe' - ), - _createToggleButton( - 'cine', - 'tool-cine', - 'Cine', - [ - { - commandName: 'toggleCine', - context: 'CORNERSTONE', - }, - ], - 'Cine' - ), - _createToolButton( - 'Angle', - 'tool-angle', - 'Angle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Angle', - }, - context: 'CORNERSTONE', - }, - ], - 'Angle' - ), - - // Next two tools can be added once icons are added - // _createToolButton( - // 'Cobb Angle', - // 'tool-cobb-angle', - // 'Cobb Angle', - // [ - // { - // commandName: 'setToolActive', - // commandOptions: { - // toolName: 'CobbAngle', - // }, - // context: 'CORNERSTONE', - // }, - // ], - // 'Cobb Angle' - // ), - // _createToolButton( - // 'Planar Freehand ROI', - // 'tool-freehand', - // 'PlanarFreehandROI', - // [ - // { - // commandName: 'setToolActive', - // commandOptions: { - // toolName: 'PlanarFreehandROI', - // }, - // context: 'CORNERSTONE', - // }, - // ], - // 'Planar Freehand ROI' - // ), - _createToolButton( - 'Magnify', - 'tool-magnify', - 'Magnify', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Magnify', - }, - context: 'CORNERSTONE', - }, - ], - 'Magnify' - ), - _createToolButton( - 'Rectangle', - 'tool-rectangle', - 'Rectangle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'RectangleROI', - }, - context: 'CORNERSTONE', - }, - ], - 'Rectangle' - ), - _createToolButton( - 'CalibrationLine', - 'tool-calibration', - 'Calibration', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'CalibrationLine', - }, - context: 'CORNERSTONE', - }, - ], - 'Calibration Line' - ), - _createActionButton( - 'TagBrowser', - 'list-bullets', - 'Dicom Tag Browser', - [ - { - commandName: 'openDICOMTagViewer', - commandOptions: {}, - context: 'DEFAULT', - }, - ], - 'Dicom Tag Browser' - ), - ], - }, - }, ]; export default toolbarButtons; diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js index 9f0e8b0c8d9..623c58ec65d 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js @@ -48,6 +48,7 @@ describe('OHIF Measurement Panel', function () { cy.scrollToIndex(13); + // Reset to default tool so that the new add length works cy.addLengthMeasurement([100, 100], [200, 200]); //Adding measurement in the viewport cy.get('@viewportInfoTopRight').should('contains.text', '(14/'); diff --git a/platform/app/cypress/integration/volume/MPR.spec.js b/platform/app/cypress/integration/volume/MPR.spec.js index c2f8d94ccde..2f2cb05cb28 100644 --- a/platform/app/cypress/integration/volume/MPR.spec.js +++ b/platform/app/cypress/integration/volume/MPR.spec.js @@ -88,19 +88,7 @@ describe('OHIF MPR', () => { }); it('should correctly render Crosshairs for MPR', () => { - cy.wait(250); - - cy.get('[data-cy="Crosshairs"]').click(); - cy.window() - .its('cornerstoneTools') - .then(cornerstoneTools => { - const state = cornerstoneTools.annotation.state.getAnnotationManager(); - - const fORMap = state.annotations; - // it should not have crosshairs yet - expect(Object.keys(fORMap)).to.have.length(0); - }); - + cy.get('[data-cy="Crosshairs"]').should('not.exist'); cy.get(':nth-child(3) > [data-cy="study-browser-thumbnail"]').dblclick(); cy.get('[data-cy="MPR"]').click(); cy.get('[data-cy="Crosshairs"]').click(); @@ -131,4 +119,19 @@ describe('OHIF MPR', () => { ); }); }); + + it('should activate window level when the active Crosshairs tool for MPR is clicked', () => { + cy.get(':nth-child(3) > [data-cy="study-browser-thumbnail"]').dblclick(); + cy.get('[data-cy="MPR"]').click(); + cy.get('[data-cy="Crosshairs"]').click(); + + // wait for the crosshairs tool to be active + cy.get('[data-cy="Crosshairs"].active'); + + // Click the crosshairs button to deactivate it. + cy.get('[data-cy="Crosshairs"]').click(); + + // wait for the window level button to be active + cy.get('[data-cy="WindowLevel-split-button-primary"].active'); + }); }); diff --git a/platform/app/cypress/support/commands.js b/platform/app/cypress/support/commands.js index 83b2df9193a..f1351eb0d64 100644 --- a/platform/app/cypress/support/commands.js +++ b/platform/app/cypress/support/commands.js @@ -262,7 +262,14 @@ Cypress.Commands.add( cy.get('@measurementToolsBtnPrimary').as('lengthButton'); cy.get('@lengthButton').should('have.attr', 'data-tool', 'Length'); - cy.get('@lengthButton').click(); + + cy.get('@lengthButton').then(button => { + // Only click the length tool if it is not active, in case the length tool is set up to + // toggle to inactive. + if (!button.is('.active')) { + cy.wrap(button).click(); + } + }); cy.get('@lengthButton').should('have.class', 'active'); diff --git a/platform/core/src/services/ToolBarService/ToolbarService.ts b/platform/core/src/services/ToolBarService/ToolbarService.ts index a39d3eca58b..269f93da417 100644 --- a/platform/core/src/services/ToolBarService/ToolbarService.ts +++ b/platform/core/src/services/ToolBarService/ToolbarService.ts @@ -63,12 +63,17 @@ export default class ToolbarService extends PubSubService { }; } + public static _createActionButton = ToolbarService._createButton.bind(null, 'action'); + public static _createToggleButton = ToolbarService._createButton.bind(null, 'toggle'); + public static _createToolButton = ToolbarService._createButton.bind(null, 'tool'); + buttons: Record = {}; state: { primaryToolId: string; toggles: Record; groups: Record; - } = { primaryToolId: 'WindowLevel', toggles: {}, groups: {} }; + } = { primaryToolId: '', toggles: {}, groups: {} }; + buttonSections: Record = { /** * primary: ['Zoom', 'Wwwc'], @@ -78,6 +83,8 @@ export default class ToolbarService extends PubSubService { _commandsManager: CommandsManager; extensionManager: ExtensionManager; + defaultTool: Record; + constructor(commandsManager: CommandsManager) { super(EVENTS); this._commandsManager = commandsManager; @@ -103,6 +110,19 @@ export default class ToolbarService extends PubSubService { this.reset(); } + /** + * Sets the default tool that will be activated whenever the primary tool is + * deactivated without activating another/different tool. + * @param interaction the interaction command that will set the default tool active + */ + public setDefaultTool(interaction) { + this.defaultTool = interaction; + } + + public getDefaultTool() { + return this.defaultTool; + } + /** * * @param {*} interaction - can be undefined to run nothing @@ -125,25 +145,20 @@ export default class ToolbarService extends PubSubService { switch (interactionType) { case 'action': { - commands.forEach(({ commandName, commandOptions, context }) => { - if (commandName) { - commandsManager.runCommand( - commandName, - { - ...commandOptions, - ...options, - }, - context - ); - } - }); + commandsManager.run(commands, options); break; } case 'tool': { try { - commands.forEach(({ commandName = 'setToolActive', commandOptions, context }) => { - commandsManager.runCommand(commandName, commandOptions, context); - }); + const alternateInteraction = + this.state.primaryToolId === itemId && + this.defaultTool?.itemId !== itemId && + this.getDefaultTool(); + if (alternateInteraction) { + // Allow toggling the mode off + return this.recordInteraction(alternateInteraction, options); + } + commandsManager.run(commands, options); // only set the primary tool if no error was thrown. // if the itemId is not undefined use it; otherwise, set the first tool in @@ -312,21 +327,27 @@ export default class ToolbarService extends PubSubService { /** * - * Finds a button section by it's name, then maps the list of string name + * Finds a button section by it's name/tool group id, then maps the list of string name * identifiers to schema/values that can be used to render the buttons. * - * @param {string} key - * @param {*} props + * @param toolGroupId - the tool group id + * @param props - optional properties to apply to every button of the section + * @param defaultToolGroupId - the fallback section to return if the given toolGroupId section is not available */ - getButtonSection(key, props) { - const buttonSectionIds = this.buttonSections[key]; + getButtonSection( + toolGroupId: string, + props?: Record, + defaultToolGroupId = 'primary' + ) { + const buttonSectionIds = + this.buttonSections[toolGroupId] || this.buttonSections[defaultToolGroupId]; const buttonsInSection = []; if (buttonSectionIds && buttonSectionIds.length !== 0) { buttonSectionIds.forEach(btnId => { const btn = this.buttons[btnId]; const metadata = {}; - const mappedBtn = this._mapButtonToDisplay(btn, key, metadata, props); + const mappedBtn = this._mapButtonToDisplay(btn, toolGroupId, metadata, props); buttonsInSection.push(mappedBtn); }); diff --git a/platform/docs/docs/platform/services/data/ToolbarService.md b/platform/docs/docs/platform/services/data/ToolbarService.md index f92cc385fb0..3acfb3e2d12 100644 --- a/platform/docs/docs/platform/services/data/ToolbarService.md +++ b/platform/docs/docs/platform/services/data/ToolbarService.md @@ -46,6 +46,8 @@ button is clicked by the user. - `getActiveTools`: returns the active tool + all the toggled-on tools +- `setDefaultTool`: sets the default tool that will be activated whenever the primary tool is deactivated without activating another/different tool + ## State ToolBarService has an internal state that gets updated per tool interaction and diff --git a/platform/docs/docs/platform/services/ui/viewport-grid-service.md b/platform/docs/docs/platform/services/ui/viewport-grid-service.md index ee610a98c82..6f8435905a2 100644 --- a/platform/docs/docs/platform/services/ui/viewport-grid-service.md +++ b/platform/docs/docs/platform/services/ui/viewport-grid-service.md @@ -33,6 +33,7 @@ is expected to support, [check out it's interface in `@ohif/core`][interface] | `getNumViewportPanes()` | Gets the number of visible viewport panes | | `getLayoutOptionsFromState(gridState)` | Utility method that produces a `ViewportLayoutOptions` based on the passed in state| | `getActiveViewportId()` | Returns the viewport Id of the active viewport in the grid| +| `getActiveViewportOptionByKey(key)` | Gets the specified viewport option field (key) for the active viewport | ## Implementations diff --git a/platform/ui/src/contextProviders/ViewportGridProvider.tsx b/platform/ui/src/contextProviders/ViewportGridProvider.tsx index 67d95134739..c5eee312b4a 100644 --- a/platform/ui/src/contextProviders/ViewportGridProvider.tsx +++ b/platform/ui/src/contextProviders/ViewportGridProvider.tsx @@ -300,6 +300,11 @@ export function ViewportGridProvider({ children, service }) { return viewportGridState; }, [viewportGridState]); + const getActiveViewportOptionByKey = (key: string) => { + const { viewports, activeViewportId } = viewportGridState; + return viewports.get(activeViewportId)?.viewportOptions?.[key]; + }; + const setActiveViewportId = useCallback( index => dispatch({ type: 'SET_ACTIVE_VIEWPORT_ID', payload: index }), [dispatch] @@ -400,6 +405,7 @@ export function ViewportGridProvider({ children, service }) { reset: () => service.reset(), set: gridLayoutState => service.setState(gridLayoutState), // run it through the service itself since we want to publish events getNumViewportPanes, + getActiveViewportOptionByKey, }; return ( From cafba997bf19c0233826822c3b27b89d43d0eff1 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 25 Oct 2023 17:17:47 +0000 Subject: [PATCH 2/3] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index aa411aaa34e..a0a23d55044 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -d98439fe7f3825076dbc87b664a1d1480ff414d3 \ No newline at end of file +dd6d9768bbca1d3cc472e8c1e6d85822500b96ef \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index fd66a3b871b..9344b1ffae8 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/i18n": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/i18n": "3.8.0-beta.6", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index dbebe8244d8..6592a5702ad 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/i18n": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/i18n": "3.8.0-beta.6", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index ee70029e06d..4c94cfde29e 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-measurement-tracking": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-measurement-tracking": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 9ae76b620cf..dff9f2dd957 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 6ad7b32349d..9a20722f60f 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/i18n": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/i18n": "3.8.0-beta.6", "dcmjs": "^0.29.11", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index ac7114ea1da..b8bc44c24f6 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/i18n": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/i18n": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 0e19dd610b8..f625fa57050 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 599ff0da874..4977ff6d08a 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index fcfebc51c14..b91bf008c46 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.20.3", "@cornerstonejs/tools": "^1.20.3", - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "classnames": "^2.3.2", "dcmjs": "^0.29.11", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index a0c9dd9a20d..999be65e5d2 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 055cbcdea8c..98a51022e57 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index b2fb352884a..c50c2d2ad00 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/extension-dicom-pdf": "3.8.0-beta.5", - "@ohif/extension-dicom-video": "3.8.0-beta.5" + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/extension-dicom-pdf": "3.8.0-beta.6", + "@ohif/extension-dicom-video": "3.8.0-beta.6" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 1f0e02f6eb3..2dec039752a 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/extension-dicom-pdf": "3.8.0-beta.5", - "@ohif/extension-dicom-video": "3.8.0-beta.5", - "@ohif/extension-measurement-tracking": "3.8.0-beta.5", - "@ohif/extension-test": "3.8.0-beta.5" + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/extension-dicom-pdf": "3.8.0-beta.6", + "@ohif/extension-dicom-video": "3.8.0-beta.6", + "@ohif/extension-measurement-tracking": "3.8.0-beta.6", + "@ohif/extension-test": "3.8.0-beta.6" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 7af38b9a96a..0914332db23 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/extension-dicom-pdf": "3.8.0-beta.5", - "@ohif/extension-dicom-video": "3.8.0-beta.5", - "@ohif/extension-measurement-tracking": "3.8.0-beta.5" + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/extension-dicom-pdf": "3.8.0-beta.6", + "@ohif/extension-dicom-video": "3.8.0-beta.6", + "@ohif/extension-measurement-tracking": "3.8.0-beta.6" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index c569e3c5d4d..86e6f1493a1 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.5" + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.6" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index f5ca2b48e93..358414303ea 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5" + "@ohif/core": "3.8.0-beta.6" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 5ca6932a661..76176e66bb0 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/extension-dicom-pdf": "3.8.0-beta.5", - "@ohif/extension-dicom-video": "3.8.0-beta.5", - "@ohif/extension-measurement-tracking": "3.8.0-beta.5" + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/extension-dicom-pdf": "3.8.0-beta.6", + "@ohif/extension-dicom-video": "3.8.0-beta.6", + "@ohif/extension-measurement-tracking": "3.8.0-beta.6" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/platform/core/package.json b/platform/core/package.json index 108279b9e33..8cadafef292 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/ui": "3.8.0-beta.6", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index b2bb2964a70..578860d76d3 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.5", - "commit": "d98439fe7f3825076dbc87b664a1d1480ff414d3" + "version": "3.8.0-beta.6", + "commit": "dd6d9768bbca1d3cc472e8c1e6d85822500b96ef" } \ No newline at end of file diff --git a/version.txt b/version.txt index 014889d9826..0d15057641b 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.5 \ No newline at end of file +3.8.0-beta.6 \ No newline at end of file From 423ba7c2694e9d993b8d896a6649eef6ca07a6d4 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 25 Oct 2023 17:17:55 +0000 Subject: [PATCH 3/3] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 11 ++++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 11 ++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 260 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79ba4094aa4..7965d5fa650 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 67dcbc9f1e5..0ee4514a815 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 9344b1ffae8..b4ef32e5c88 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 73badb358d5..3c470de4ec0 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 6592a5702ad..bd79e4ed410 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 54c5e10b249..129d5b5d58e 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 4c94cfde29e..9cd193b1224 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 6c61586602c..e642c2098a5 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index dff9f2dd957..8d276e3f5ce 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 330e9c1a570..f153f9f604a 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/default/package.json b/extensions/default/package.json index 9a20722f60f..19cfb569c8d 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index caad71fd2c2..e8aa769ac20 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index b8bc44c24f6..57a3d81a664 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index ee6f31228fa..8403e705583 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index f625fa57050..897b468087b 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 3af3f0f9f97..a5ea4bc54b9 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 4977ff6d08a..15e63963f6d 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 96ad9351e78..eb488d4aef1 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index b91bf008c46..f44c7f6252b 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/ui": "3.8.0-beta.6", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index c2a5a961ce9..5a61fc7ff2c 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 999be65e5d2..308cf881f2c 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 8b960e287c8..0939b1b33ba 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 98a51022e57..9e201040238 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index c5191880199..3a678dad4cb 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 3c17ad4f568..61f3a05148d 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index c50c2d2ad00..79f01765313 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 9b46ebbb1cf..86911cc3362 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 2dec039752a..2d5b37d621b 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 3d8a965b2d0..4d9bd3e043a 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 0914332db23..abac9be3236 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 2535bb214b6..e76f4d5eb2b 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 86e6f1493a1..5978daaa82f 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 4bc2282a014..beac594dac6 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 358414303ea..07608f3436d 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 9ba06cb8452..1fe6396e661 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 76176e66bb0..aea07114390 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 0306a782bac..e31bd3b851f 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/platform/app/package.json b/platform/app/package.json index e2ed43ebab4..fcbebfc7b74 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.5", - "@ohif/extension-dicom-pdf": "3.8.0-beta.5", - "@ohif/extension-dicom-video": "3.8.0-beta.5", - "@ohif/extension-test": "3.8.0-beta.5", - "@ohif/i18n": "3.8.0-beta.5", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.5", - "@ohif/mode-longitudinal": "3.8.0-beta.5", - "@ohif/mode-microscopy": "3.8.0-beta.5", - "@ohif/mode-test": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.6", + "@ohif/extension-dicom-pdf": "3.8.0-beta.6", + "@ohif/extension-dicom-video": "3.8.0-beta.6", + "@ohif/extension-test": "3.8.0-beta.6", + "@ohif/i18n": "3.8.0-beta.6", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.6", + "@ohif/mode-longitudinal": "3.8.0-beta.6", + "@ohif/mode-microscopy": "3.8.0-beta.6", + "@ohif/mode-test": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 8c6a39112f5..75edd9c843e 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index d2fdcd30549..44c17bfb6a1 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index a402973e12a..0a4deb10386 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/platform/core/package.json b/platform/core/package.json index 8cadafef292..ea3102519db 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index dc1e2ab4739..d6be7b59062 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/platform/docs/package.json b/platform/docs/package.json index c23ab9a13d0..bf456e0a26a 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 7206b8b4b31..380ab8138a1 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 72308320a9c..4604cdd6bc2 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 998d1656d85..4cddb0f2db7 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index a90b8c84948..802bd8b1ede 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT",