diff --git a/Packages/ohif-viewerbase/client/components/viewer/studySeriesQuickSwitch/studySeriesQuickSwitch.js b/Packages/ohif-viewerbase/client/components/viewer/studySeriesQuickSwitch/studySeriesQuickSwitch.js index 9eab6307f..ef5bcc058 100644 --- a/Packages/ohif-viewerbase/client/components/viewer/studySeriesQuickSwitch/studySeriesQuickSwitch.js +++ b/Packages/ohif-viewerbase/client/components/viewer/studySeriesQuickSwitch/studySeriesQuickSwitch.js @@ -1,3 +1,7 @@ +import { Template } from 'meteor/templating'; +import { ReactiveVar } from 'meteor/reactive-var'; +import { Session } from 'meteor/session'; + Template.studySeriesQuickSwitch.onCreated(() => { const instance = Template.instance(); @@ -12,24 +16,35 @@ Template.studySeriesQuickSwitch.onCreated(() => { // Gets the current viewport data const viewportIndex = instance.data.viewportIndex; - const viewportData = instance.getViewportData(viewportIndex); - let study; - if (viewportData) { - // Finds the current study and return it - study = ViewerStudies.findOne({ - studyInstanceUid: viewportData.studyInstanceUid - }); - } else { - study = ViewerStudies.findOne(); - } + instance.study = {}; + instance.lastStudy = {}; - if (!study) { - return; - } + instance.autorun(() => { + Session.get('LayoutManagerUpdated'); - // Change the current study to update the thumbnails - instance.data.currentStudy.set(study); + const viewportData = instance.getViewportData(viewportIndex); + + if (viewportData) { + // Finds the current study and return it + instance.study = ViewerStudies.findOne({ + studyInstanceUid: viewportData.studyInstanceUid + }); + } else { + instance.study = ViewerStudies.findOne(); + } + + if (!instance.study) { + return; + } + + if (instance.study.studyInstanceUid !== instance.lastStudy.studyInstanceUid) { + // Change the current study to update the thumbnails + instance.data.currentStudy.set(instance.study); + + instance.lastStudy = instance.study; + } + }); }); Template.studySeriesQuickSwitch.events({ @@ -61,6 +76,6 @@ Template.studySeriesQuickSwitch.helpers({ // - http://stackoverflow.com/questions/6165472/custom-css-scrollbar-for-firefox/6165489#6165489 // - http://stackoverflow.com/questions/18317634/force-visible-scrollbar-in-firefox-on-mac-os-x/18318273 addMacOSClass() { - return window.navigator.appVersion.indexOf("Mac") !== -1 ? 'is-mac' : ''; + return window.navigator.appVersion.indexOf('Mac') !== -1 ? 'is-mac' : ''; } }); diff --git a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.js b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.js index bf5bebb58..1948ca6f0 100644 --- a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.js +++ b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.js @@ -1,4 +1,7 @@ import { Template } from 'meteor/templating'; +import { ReactiveVar } from 'meteor/reactive-var'; +import { Tracker } from 'meteor/tracker'; +import { _ } from 'meteor/underscore'; Template.studyTimepointBrowser.onCreated(() => { const instance = Template.instance(); @@ -26,12 +29,12 @@ Template.studyTimepointBrowser.onCreated(() => { studyInstanceUid: studyInstanceUid }; - var loadedStudy = ViewerStudies.findOne(query); + const loadedStudy = ViewerStudies.findOne(query); if (loadedStudy) { return loadedStudy; } - var notYetLoaded = StudyListStudies.findOne(query); + const notYetLoaded = StudyListStudies.findOne(query); if (!notYetLoaded) { throw 'No study data available for Study: ' + studyInstanceUid; } @@ -50,7 +53,7 @@ Template.studyTimepointBrowser.onRendered(() => { // Removes all active classes to collapse the timepoints and studies instance.$('.timepointEntry, .studyTimepointStudy').removeClass('active'); - if (type === 'key') { + if (type === 'key' && !instance.data.currentStudy) { // Show only first timepoint expanded for key timepoints instance.$('.timepointEntry:first').addClass('active'); } @@ -66,6 +69,12 @@ Template.studyTimepointBrowser.onRendered(() => { instance.showAdditionalTimepoints.set(false); lastStudy = currentStudy; } + + // Wait for rerendering and set the timepoint as active + Tracker.afterFlush(() => { + // Show only first timepoint expanded for key timepoints + instance.$('.timepointEntry:first').addClass('active'); + }); }); }); diff --git a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointStudy.html b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointStudy.html index c510387f4..f75ab3c12 100644 --- a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointStudy.html +++ b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointStudy.html @@ -7,7 +7,7 @@
{{#if this.study.modalities}} - {{ modalities }} + {{modalities}} {{else}} UN {{/if}}