diff --git a/Packages/lesiontracker/client/components/studySeriesQuickSwitch/studySeriesQuickSwitch.js b/Packages/lesiontracker/client/components/studySeriesQuickSwitch/studySeriesQuickSwitch.js index b808094fd..a1d417de7 100644 --- a/Packages/lesiontracker/client/components/studySeriesQuickSwitch/studySeriesQuickSwitch.js +++ b/Packages/lesiontracker/client/components/studySeriesQuickSwitch/studySeriesQuickSwitch.js @@ -13,24 +13,20 @@ Template.studySeriesQuickSwitch.onCreated(() => { return layoutManager && layoutManager.viewportData && layoutManager.viewportData[viewportIndex]; }; - // Get the current study being shown in the current viewport - instance.getCurrentStudy = () => { - const viewportIndex = instance.data.viewportIndex; + // Gets the current viewport data + const viewportIndex = instance.data.viewportIndex; + const viewportData = instance.getViewportData(viewportIndex); + if (!viewportData) { + return; + } - // Runs this computation everytime the current viewport is changed - Session.get('CornerstoneNewImage' + viewportIndex); + // Fins the current study and return it + const study = ViewerStudies.findOne({ + studyInstanceUid: viewportData.studyInstanceUid + }); - // Gets the current viewport data - const viewportData = instance.getViewportData(viewportIndex); - if (!viewportData) { - return; - } - - // Fins the current study and return it - return ViewerStudies.findOne({ - studyInstanceUid: viewportData.studyInstanceUid - }); - }; + // Change the current study to update the thumbnails + instance.data.currentStudy.set(study); }); Template.studySeriesQuickSwitch.events({ @@ -45,11 +41,8 @@ Template.studySeriesQuickSwitch.events({ }); Template.studySeriesQuickSwitch.helpers({ - // Get the current study and change the reactive variable + // Get the current study currentStudy() { - const instance = Template.instance(); - const currentStudy = instance.getCurrentStudy(); - instance.data.currentStudy.set(currentStudy); - return currentStudy; + return Template.instance().data.currentStudy.get(); } }); diff --git a/Packages/lesiontracker/client/components/studySeriesQuickSwitch/studySeriesQuickSwitch.styl b/Packages/lesiontracker/client/components/studySeriesQuickSwitch/studySeriesQuickSwitch.styl index 7a8084b2f..5fed7d44c 100644 --- a/Packages/lesiontracker/client/components/studySeriesQuickSwitch/studySeriesQuickSwitch.styl +++ b/Packages/lesiontracker/client/components/studySeriesQuickSwitch/studySeriesQuickSwitch.styl @@ -49,18 +49,21 @@ $seriesSpacing = 2px position: relative &.switchSectionSeries.hover, &.switchSectionStudy:hover - .studySwitch .studyBox, .seriesSwitch .seriesItem + .seriesSwitch .seriesItem opacity: 0 .switchHover opacity: 1 .studyHover - transform(scale(1)) + height: auto + padding-top: $switchSize + transition(padding-top 0.3s ease\, visibility 0s linear 0s) + visibility: visible &.switchSectionSeries.hover .seriesHover .thumbnailsWrapper + transform(scale(0.9) translateY($switchSize)) transition(all 0.3s ease) - transform(scale(0.9) translateY($switchSize*1.5)) .thumbnailEntry .seriesDetails opacity: 0 visibility: hidden @@ -79,7 +82,7 @@ $seriesSpacing = 2px opacity: 0 transform(translateY(-36px)) - .studySwitch .studyBox, .seriesSwitch .seriesItem + .seriesSwitch .seriesItem transition(opacity 0.3s ease) .studySwitch, .seriesSwitch @@ -139,8 +142,6 @@ $seriesSpacing = 2px overflow: hidden position: absolute top: 0 - transform(scale(0)) - transition(all 0.3s ease) z-index: 10000 .scrollArea @@ -151,9 +152,18 @@ $seriesSpacing = 2px width: calc(100% + 20px) .studyHover + height: 0 + padding-top: 0 + transition(padding-top 0.3s ease\, visibility 0s linear 0.3s) + visibility: hidden width: 320px + .scrollArea + height: 500px + .seriesHover + transform(scale(0)) + transition(all 0.3s ease) width: 731px .thumbnailEntry @@ -164,7 +174,6 @@ $seriesSpacing = 2px float: right .studyHover left: 0 - transform-origin(0% 0%) .seriesHover, .thumbnailsWrapper right: 0 transform-origin(100% 0%) @@ -174,7 +183,6 @@ $seriesSpacing = 2px float: left .studyHover right: 0 - transform-origin(100% 0%) .seriesHover, .thumbnailsWrapper left: 0 transform-origin(0% 0%) diff --git a/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepoint.html b/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepoint.html index cdd008069..05464505f 100644 --- a/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepoint.html +++ b/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepoint.html @@ -2,7 +2,7 @@
{{#each study in studies}} - {{>studyTimepointStudy study=study active=(isActive study) viewportIndex=viewportIndex}} + {{>studyTimepointStudy study=study active=(isActive study) viewportIndex=this.viewportIndex}} {{/each}}
diff --git a/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepoint.js b/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepoint.js index a03f6e7ad..80f2fd5a6 100644 --- a/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepoint.js +++ b/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepoint.js @@ -30,8 +30,17 @@ Template.studyTimepoint.events({ 'selectionChanged .studyTimepoint'(event, instance, changed) { const $selection = $(changed.selection); + // Defines where will be the studies searched let $studiesTarget = instance.$('.studyTimepoint'); + if (changed.isQuickSwitch) { + // Changes the current quick switch study + const study = ViewerStudies.findOne({ + studyInstanceUid: changed.studyInstanceUid + }); + instance.data.currentStudy.set(study); + + // Changes the target to toggle the selection in all the studies $studiesTarget = $studiesTarget.closest('.studyTimepointBrowser'); } diff --git a/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointBrowser.html b/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointBrowser.html index 04b039a21..1d9e6fe3d 100644 --- a/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointBrowser.html +++ b/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointBrowser.html @@ -17,7 +17,7 @@
{{modalitiesSummary timepoint}}
- {{>studyTimepoint studies=(studies timepoint) index=@index viewportIndex=viewportIndex}} + {{>studyTimepoint studies=(studies timepoint) index=@index viewportIndex=this.viewportIndex currentStudy=this.currentStudy}}
{{/if}} diff --git a/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointStudy.js b/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointStudy.js index 11c822f49..b0552699a 100644 --- a/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointStudy.js +++ b/Packages/lesiontracker/client/components/studyTimepointBrowser/studyTimepointStudy.js @@ -48,12 +48,14 @@ Template.studyTimepointStudy.events({ }, // Changes the current study selection for the clicked study - 'click .studySidebarTimepoint .studyModality'(event, instance) { + 'click .studyModality'(event, instance) { const $study = $(event.currentTarget).closest('.studyTimepointStudy'); const studyData = instance.data.study; const studyInstanceUid = studyData.studyInstanceUid; + const isQuickSwitch = !_.isUndefined(instance.data.viewportIndex); + // Check if the study already has series data, // and if not, retrieve it. if (!studyData.seriesList) { @@ -65,13 +67,13 @@ Template.studyTimepointStudy.events({ $study.addClass('loading'); getStudyMetadata(studyInstanceUid, studyData => { ViewerStudies.insert(studyData); - instance.select(); + instance.select(isQuickSwitch); }); } else { studyData.seriesList = alreadyLoaded.seriesList; } } else { - instance.select(); + instance.select(isQuickSwitch); } } });