Make sure primary cornerstone extension has references to enabled elements

This commit is contained in:
dannyrb 2020-06-26 14:14:25 -04:00
parent 8607659501
commit c6ec439331
3 changed files with 31 additions and 2 deletions

View File

@ -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],

View File

@ -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(() => {

View File

@ -13,8 +13,6 @@ function ViewerViewportGrid(props) {
viewportGridService,
] = useViewportGrid();
debugger;
const setActiveViewportIndex = index => {
viewportGridService.setActiveViewportIndex(index);
};