diff --git a/LesionTracker/client/components/viewer/viewer.js b/LesionTracker/client/components/viewer/viewer.js index 48fcf2083..3908e3ccf 100644 --- a/LesionTracker/client/components/viewer/viewer.js +++ b/LesionTracker/client/components/viewer/viewer.js @@ -236,4 +236,6 @@ Template.viewer.onDestroyed(() => { Session.set('ViewerMainReady', false); Session.set('TimepointsReady', false); Session.set('MeasurementsReady', false); + + OHIF.viewer.stackImagePositionOffsetSynchronizer.deactivate(); }); diff --git a/Packages/ohif-measurements/client/lib/jumpToRowItem.js b/Packages/ohif-measurements/client/lib/jumpToRowItem.js index 9a22e0e5b..f2fd1adc4 100644 --- a/Packages/ohif-measurements/client/lib/jumpToRowItem.js +++ b/Packages/ohif-measurements/client/lib/jumpToRowItem.js @@ -77,7 +77,6 @@ OHIF.measurements.jumpToRowItem = (rowItem, timepoints) => { const activateMeasurements = OHIF.measurements.activateMeasurements; const activatedViewportIndexes = []; - const syncViewportsByIndexesOnce = _.once(syncViewports); let syncViewportsCaller = syncViewports; let renderCount = 0; @@ -143,7 +142,8 @@ OHIF.measurements.jumpToRowItem = (rowItem, timepoints) => { } } - syncViewportsCaller = _.after(++renderCount, syncViewportsCaller); + // The sync will be called only after loading all series on viewports + syncViewportsCaller = _.after(++renderCount, syncViewports); // Otherwise, re-render the viewport with the required study/series, then // add an onRendered callback to activate the measurements @@ -160,7 +160,8 @@ OHIF.measurements.jumpToRowItem = (rowItem, timepoints) => { renderedCallback); } - if(!renderCount) { + // If all viewports are already rendered then sync them + if (!renderCount) { syncViewportsCaller(activatedViewportIndexes); } }; diff --git a/Packages/ohif-viewerbase/client/components/studyBrowser/thumbnailEntry/thumbnailEntry.js b/Packages/ohif-viewerbase/client/components/studyBrowser/thumbnailEntry/thumbnailEntry.js index f2e37d444..e0c7d15f6 100644 --- a/Packages/ohif-viewerbase/client/components/studyBrowser/thumbnailEntry/thumbnailEntry.js +++ b/Packages/ohif-viewerbase/client/components/studyBrowser/thumbnailEntry/thumbnailEntry.js @@ -8,8 +8,8 @@ import { thumbnailDragHandlers } from '../../../lib/thumbnailDragHandlers'; Template.thumbnailEntry.onCreated(() => { const instance = Template.instance(); - // Check if the thumbnails will be draggable or clickable - instance.isDragAndDrop = _.isUndefined(instance.data.viewportIndex); +// Check if the thumbnails will be draggable or clickable +instance.isDragAndDrop = _.isUndefined(instance.data.viewportIndex); }); Template.thumbnailEntry.events({ @@ -41,19 +41,20 @@ Template.thumbnailEntry.events({ // Event handlers for double click 'dblclick .thumbnailEntry'(event, instance) { + if (instance.isDragAndDrop) { + // Get the active viewport index and total number of viewports... + const viewportCount = OHIF.viewerbase.layoutManager.getNumberOfViewports(); + let viewportIndex = Session.get('activeViewport') || 0; + if (viewportIndex >= viewportCount) { + viewportIndex = viewportCount > 0 ? viewportCount - 1 : 0; + } - // Get the active viewport index and total number of viewports... - const viewportCount = OHIF.viewerbase.layoutManager.getNumberOfViewports(); - let viewportIndex = Session.get('activeViewport') || 0; - if (viewportIndex >= viewportCount) { - viewportIndex = viewportCount > 0 ? viewportCount - 1 : 0; + // Get the thumbnail stack data + const data = instance.data.thumbnail.stack; + + // Rerender the viewport using the clicked thumbnail data + OHIF.viewerbase.layoutManager.rerenderViewportWithNewDisplaySet(viewportIndex, data); } - - // Get the thumbnail stack data - const data = instance.data.thumbnail.stack; - - // Rerender the viewport using the clicked thumbnail data - OHIF.viewerbase.layoutManager.rerenderViewportWithNewDisplaySet(viewportIndex, data); } }); diff --git a/Packages/ohif-viewerbase/client/lib/classes/StackImagePositionOffsetSynchronizer.js b/Packages/ohif-viewerbase/client/lib/classes/StackImagePositionOffsetSynchronizer.js index 74e86866a..0a75ece76 100644 --- a/Packages/ohif-viewerbase/client/lib/classes/StackImagePositionOffsetSynchronizer.js +++ b/Packages/ohif-viewerbase/client/lib/classes/StackImagePositionOffsetSynchronizer.js @@ -39,7 +39,7 @@ export class StackImagePositionOffsetSynchronizer { } this.active = false; - toolManager.deactivateCommandButton('link'); + toolManager.deactivateCommandButton('linkStackScroll'); } update() { @@ -73,7 +73,7 @@ export class StackImagePositionOffsetSynchronizer { }); this.active = true; - toolManager.activateCommandButton('link'); + toolManager.activateCommandButton('linkStackScroll'); Session.set('StackImagePositionOffsetSynchronizerLinkedViewports', viewportIndexes); } diff --git a/Packages/ohif-viewerbase/client/lib/toolManager.js b/Packages/ohif-viewerbase/client/lib/toolManager.js index 3d5269b8a..13ec222b8 100644 --- a/Packages/ohif-viewerbase/client/lib/toolManager.js +++ b/Packages/ohif-viewerbase/client/lib/toolManager.js @@ -447,7 +447,7 @@ export const toolManager = { const activeCommandButtons = Session.get('ToolManagerActiveCommandButtons') || []; if(activeCommandButtons.indexOf(button) === -1) { - activeCommandButtons.push('link'); + activeCommandButtons.push(button); Session.set('ToolManagerActiveCommandButtons', activeCommandButtons); } }, diff --git a/Packages/ohif-viewerbase/client/lib/viewportUtils.js b/Packages/ohif-viewerbase/client/lib/viewportUtils.js index fafbcc565..9822d6072 100644 --- a/Packages/ohif-viewerbase/client/lib/viewportUtils.js +++ b/Packages/ohif-viewerbase/client/lib/viewportUtils.js @@ -255,7 +255,7 @@ const stopAllClips = () => { const isStackScrollLinkingDisabled = () => { // Its called everytime active viewport and/or layout change - Session.get('activeViewport'); + Session.get('viewportActivated'); Session.get('LayoutManagerUpdated'); const synchronizer = OHIF.viewer.stackImagePositionOffsetSynchronizer;