diff --git a/extensions/cornerstone/src/init.js b/extensions/cornerstone/src/init.js index 5f80a9d6f..a3fdf065c 100644 --- a/extensions/cornerstone/src/init.js +++ b/extensions/cornerstone/src/init.js @@ -6,6 +6,8 @@ import merge from 'lodash.merge'; import initCornerstoneTools from './initCornerstoneTools.js'; import initWADOImageLoader from './initWADOImageLoader.js'; import measurementServiceMappingsFactory from './utils/measurementServiceMappings/measurementServiceMappingsFactory'; +// +import { setEnabledElement } from './state'; /** * @@ -54,6 +56,23 @@ export default function init({ servicesManager, configuration }) { }; initCornerstoneTools(defaultCsToolsConfig); + // TODO: Extensions are still registered at time of registration globally + // These should be registered as a part of mode route spin up, + // and they need to self-clean on mode route destroy + // THIS + // is a way for extensions that "depend" on this extension to notify it of + // new cornerstone enabled elements so it's commands continue to work. + const handleOhifCornerstoneEnabledElementEvent = function(evt) { + const { viewportIndex, enabledElement } = evt.detail; + + console.log(evt, viewportIndex, enabledElement); + setEnabledElement(viewportIndex, enabledElement); + }; + + document.addEventListener( + 'ohif-cornerstone-enabled-element-event', + handleOhifCornerstoneEnabledElementEvent + ); const toolsGroupedByType = { touch: [csTools.PanMultiTouchTool, csTools.ZoomTouchPinchTool], diff --git a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js index 224e3bb4a..c76efba79 100644 --- a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js +++ b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js @@ -122,6 +122,18 @@ function TrackedCornerstoneViewport({ } setElement(targetElement); + + const OHIFCornerstoneEnabledElementEvent = new CustomEvent( + 'ohif-cornerstone-enabled-element-event', + { + detail: { + enabledElement: targetElement, + viewportIndex, + }, + } + ); + + document.dispatchEvent(OHIFCornerstoneEnabledElementEvent); }; useEffect(() => { diff --git a/platform/viewer/src/components/ViewportGrid.jsx b/platform/viewer/src/components/ViewportGrid.jsx index 50dfab8bb..c9300381f 100644 --- a/platform/viewer/src/components/ViewportGrid.jsx +++ b/platform/viewer/src/components/ViewportGrid.jsx @@ -13,8 +13,6 @@ function ViewerViewportGrid(props) { viewportGridService, ] = useViewportGrid(); - debugger; - const setActiveViewportIndex = index => { viewportGridService.setActiveViewportIndex(index); };