diff --git a/Packages/hangingprotocols/client/components/nextPresentationGroupButton/nextPresentationGroupButton.js b/Packages/hangingprotocols/client/components/nextPresentationGroupButton/nextPresentationGroupButton.js index d8e5cb80e..a4c5f51f6 100644 --- a/Packages/hangingprotocols/client/components/nextPresentationGroupButton/nextPresentationGroupButton.js +++ b/Packages/hangingprotocols/client/components/nextPresentationGroupButton/nextPresentationGroupButton.js @@ -30,6 +30,11 @@ Template.nextPresentationGroupButton.events({ return; } + // Stop here if the tool is disabled + if ($(event.currentTarget).hasClass('disabled')) { + return; + } + // Hide the button's Bootstrap tooltip in case it was shown $(event.currentTarget).tooltip('hide'); diff --git a/Packages/hangingprotocols/client/components/previousPresentationGroupButton/previousPresentationGroupButton.js b/Packages/hangingprotocols/client/components/previousPresentationGroupButton/previousPresentationGroupButton.js index 4b626e09b..c59a663f3 100644 --- a/Packages/hangingprotocols/client/components/previousPresentationGroupButton/previousPresentationGroupButton.js +++ b/Packages/hangingprotocols/client/components/previousPresentationGroupButton/previousPresentationGroupButton.js @@ -30,6 +30,11 @@ Template.previousPresentationGroupButton.events({ return; } + // Stop here if the tool is disabled + if ($(event.currentTarget).hasClass('disabled')) { + return; + } + // Hide the button's Bootstrap tooltip in case it was shown $(event.currentTarget).tooltip('hide'); diff --git a/Packages/hangingprotocols/client/protocolEngine.js b/Packages/hangingprotocols/client/protocolEngine.js index 94f365b99..d197b585b 100644 --- a/Packages/hangingprotocols/client/protocolEngine.js +++ b/Packages/hangingprotocols/client/protocolEngine.js @@ -466,8 +466,8 @@ HP.ProtocolEngine = class ProtocolEngine { sortingInfo: { score: totalMatchScore, study: study.studyDate + study.studyTime, - series: series.seriesNumber, // TODO: change for seriesDateTime - instance: instance.instanceNumber // TODO: change for acquisitionTime + series: parseInt(series.seriesNumber), // TODO: change for seriesDateTime + instance: parseInt(instance.instanceNumber) // TODO: change for acquisitionTime } }; @@ -500,10 +500,10 @@ HP.ProtocolEngine = class ProtocolEngine { }, { name: 'study', reverse: true - }, { - name: 'series' }, { name: 'instance' + }, { + name: 'series' }); matchingScores.sort((a, b) => sortingFunction(a.sortingInfo, b.sortingInfo)); diff --git a/Packages/ohif-core/client/lib/viewer.js b/Packages/ohif-core/client/lib/viewer.js index 2244618ca..bd14b6497 100644 --- a/Packages/ohif-core/client/lib/viewer.js +++ b/Packages/ohif-core/client/lib/viewer.js @@ -111,7 +111,12 @@ OHIF.viewer.canMoveDisplaySets = isNext => { sequenceMap.forEach((studyViewports, study) => { // Get active viewport index if isMultiple is false ortherwise get last - const viewportIndex = studyViewports[activeViewportIndex !== null ? activeViewportIndex : studyViewports.length - 1].displaySetIndex; + const studyViewport = studyViewports[activeViewportIndex !== null ? activeViewportIndex : studyViewports.length - 1]; + if (!studyViewport) { + return; + } + + const viewportIndex = studyViewport.displaySetIndex; const layoutViewports = studyViewports.length; const amount = study.displaySets.length; const move = !isMultiple ? 1 : ((amount % layoutViewports) || layoutViewports); @@ -137,7 +142,12 @@ OHIF.viewer.canMoveDisplaySets = isNext => { if(activeViewportIndex >= 0) { sequenceMap.forEach((studyViewports, study) => { // Get active viewport index if isMultiple is false ortherwise get first - const viewportIndex = studyViewports[activeViewportIndex !== null ? activeViewportIndex : 0].displaySetIndex; + const studyViewport = studyViewports[activeViewportIndex !== null ? activeViewportIndex : 0]; + if (!studyViewport) { + return; + } + + const viewportIndex = studyViewport.displaySetIndex; const layoutViewports = studyViewports.length; // 9999 for index means empty viewport, see getDisplaySetSequenceMap function @@ -285,10 +295,10 @@ OHIF.viewer.moveMultipleViewportDisplaySets = isNext => { // Sort the display sets const sortingFunction = OHIF.utils.sortBy({ name: 'studyInstanceUid' - }, { - name: 'seriesNumber' }, { name: 'instanceNumber' + }, { + name: 'seriesNumber' }); displaySetsToRender.sort((a, b) => sortingFunction(a, b)); diff --git a/Packages/viewerbase/lib/viewportFunctions.js b/Packages/viewerbase/lib/viewportFunctions.js index 81de55050..5d8b431bd 100644 --- a/Packages/viewerbase/lib/viewportFunctions.js +++ b/Packages/viewerbase/lib/viewportFunctions.js @@ -177,7 +177,7 @@ hasMultipleFrames = () => { const activeViewport = getActiveViewportElement(); // No active viewport yet: disable button - if(!activeViewport) { + if(!activeViewport || !$(activeViewport).find('canvas').length) { return true; }