-
-
-
diff --git a/Packages/ohif-studies/imports/client/components/browser/item.js b/Packages/ohif-studies/imports/client/components/browser/item.js
index a4cd095bc..e5ff80d82 100644
--- a/Packages/ohif-studies/imports/client/components/browser/item.js
+++ b/Packages/ohif-studies/imports/client/components/browser/item.js
@@ -1,5 +1,6 @@
import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
+import { Tracker } from 'meteor/tracker';
import { $ } from 'meteor/jquery';
import { OHIF } from 'meteor/ohif:core';
@@ -17,27 +18,20 @@ Template.studyBrowserItem.events({
'click .study-item'(event, instance) {
if (instance.loading.get()) return;
- const { studyClickCallback, studyInformation } = instance.data;
+ const { studyInformation } = instance.data;
const element = event.currentTarget.parentElement;
const $element = $(element);
-
- const triggerClickCallback = () => {
- if (typeof studyClickCallback === 'function') {
- studyClickCallback(studyInformation, element);
- }
-
- $element.trigger('ohif.studies.study.click', studyInformation);
- };
+ const triggerClick = () => $element.trigger('ohif.studies.study.click', studyInformation);
if (instance.loaded) {
- triggerClickCallback();
+ triggerClick();
} else {
instance.loading.set(true);
OHIF.studies.retrieveStudyMetadata(studyInformation.studyInstanceUid).then(() => {
instance.loaded = true;
instance.loading.set(false);
$element.trigger('ohif.studies.study.load', studyInformation);
- triggerClickCallback();
+ Tracker.afterFlush(triggerClick);
});
}
}
diff --git a/Packages/ohif-studies/imports/client/components/browser/item.styl b/Packages/ohif-studies/imports/client/components/browser/item.styl
index c7152f275..6fdf2fccf 100644
--- a/Packages/ohif-studies/imports/client/components/browser/item.styl
+++ b/Packages/ohif-studies/imports/client/components/browser/item.styl
@@ -55,13 +55,11 @@ $spacerY = 12px
.study-browser-series
overflow: hidden
- transform(translateY(0))
- transform-origin(50% 0%)
- transition($sidebarTransition)
+ transition(max-height 0.3s ease)
.study-series-container
opacity: 1
- transition($sidebarTransition)
+ transition(opacity 0.3s ease\, transform 0.3s ease)
transform(translateY(0))
transform-origin(50% 0%)
diff --git a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepoint.js b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepoint.js
index 9b9f76375..eab6cf0b5 100644
--- a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepoint.js
+++ b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepoint.js
@@ -17,7 +17,7 @@ Template.studyTimepoint.onRendered(() => {
const $studies = instance.$('.studyTimepoint');
const $wrapper = $studies.closest('.studyTimepointWrapper');
- const $timepoint = $wrapper.closest('.timepointEntry');
+ const $timepoint = $wrapper.closest('.timepoint-item');
const studiesVisible = $studies.is(':visible');
if (!studiesVisible) {
diff --git a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepoint.styl b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepoint.styl
index 7222fb7eb..ab78bc3f0 100644
--- a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepoint.styl
+++ b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepoint.styl
@@ -4,5 +4,5 @@
overflow: hidden
transition($sidebarTransition)
-.timepointEntry:not(.active) .studyTimepointWrapper
+.timepoint-item:not(.active) .studyTimepointWrapper
max-height: 0 !important
diff --git a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.html b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.html
index ed989585c..cc93aa501 100644
--- a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.html
+++ b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.html
@@ -8,20 +8,22 @@
+
{{#if this.studyChildTemplate}}
- {{>Template.dynamic template=this.studyChildTemplate data=(clone this)}}
+ {{#if and (not isLoading) instance.loaded}}
+ {{>Template.dynamic template=this.studyChildTemplate data=(clone this)}}
+ {{/if}}
{{/if}}
+
+
{{#if this.timepointChildTemplate}}
{{#if and (not instance.loading.get) instance.loaded}}
diff --git a/Packages/ohif-lesiontracker/client/components/timepointBrowser/item.js b/Packages/ohif-lesiontracker/client/components/timepointBrowser/item.js
index cf2a35deb..2b17952f8 100644
--- a/Packages/ohif-lesiontracker/client/components/timepointBrowser/item.js
+++ b/Packages/ohif-lesiontracker/client/components/timepointBrowser/item.js
@@ -1,6 +1,7 @@
import { Meteor } from 'meteor/meteor';
import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
+import { Tracker } from 'meteor/tracker';
import { $ } from 'meteor/jquery';
import { _ } from 'meteor/underscore';
import { OHIF } from 'meteor/ohif:core';
@@ -52,16 +53,21 @@ Template.timepointBrowserItem.onCreated(() => {
});
Template.timepointBrowserItem.events({
- 'click .timepointEntry'(event, instance) {
+ 'click .timepoint-item'(event, instance) {
const element = event.currentTarget.parentElement;
const $element = $(element);
+
+ const triggerClick = () => {
+ $element.trigger('ohif.lesiontracker.timepoint.click', instance.data.timepoint);
+ };
+
if (!instance.loaded) {
instance.loadStudies().then(() => {
- $element.addClass('active');
+ Tracker.afterFlush(triggerClick);
instance.setModalitiesSummary();
});
} else {
- $element.toggleClass('active');
+ triggerClick();
}
}
});
diff --git a/Packages/ohif-lesiontracker/client/components/timepointBrowser/item.styl b/Packages/ohif-lesiontracker/client/components/timepointBrowser/item.styl
index 989a14e73..930d9c5e3 100644
--- a/Packages/ohif-lesiontracker/client/components/timepointBrowser/item.styl
+++ b/Packages/ohif-lesiontracker/client/components/timepointBrowser/item.styl
@@ -2,70 +2,75 @@
.timepoint-browser-item
- .timepointEntry
+ .timepoint-item
cursor: pointer
font-size: 13px
- .timepoint-browser-studies
- opacity: 1
- overflow: hidden
- transform(translateY(0))
- transform-origin(50% 0%)
- transition(max-height 0.3s ease\, opacity 0.3s ease\, transform 0.3s ease)
-
&:not(.active) .timepoint-browser-studies
max-height: 0 !important
- opacity: 0
- transform(translateY(-100%))
- .timepointDate
+ .timepoint-studies-container
+ opacity: 0
+ transform(translateY(-100%))
+
+ .timepoint-browser-studies
+ overflow: hidden
+ transition(max-height 0.3s ease)
+
+ .timepoint-studies-container
+ opacity: 1
+ transition(opacity 0.3s ease\, transform 0.3s ease)
+ transform(translateY(0))
+ transform-origin(50% 0%)
+
+ .timepoint-date
opacity: 1
&.active
- .timepointModalities
+ .timepoint-summary
max-height: 0
opacity: 0
- .timepointDate
+ .timepoint-date
opacity: 0
- .expandIcon i
+ .timepoint-expand-icon i
transform: rotateX(180deg)
- .timepointFollowupTitle
+ .timepoint-title
font-size: 14px
theme('color', '$textSecondaryColor')
text-transform: uppercase
&
- .expandIcon i,
- .timepointFollowupTitle,
- .timepointDate,
- .timepointModalities
+ .timepoint-expand-icon i,
+ .timepoint-title,
+ .timepoint-date,
+ .timepoint-summary
theme('color', '$textSecondaryColor')
transition($sidebarTransition)
&:hover
&,
- .timepointFollowupTitle,
- .expandIcon i,
- .timepointDate,
- .timepointModalities
+ .timepoint-title,
+ .timepoint-expand-icon i,
+ .timepoint-date,
+ .timepoint-summary
theme('color', '$textPrimaryColor') !important
- .timepointDetails
- .timepointModalities
+ .timepoint-details
+ .timepoint-summary
line-height: 25px
- .timepointModalities
+ .timepoint-summary
height: 25px
max-height: 25px
opacity: 1
overflow: hidden
- .expandIcon i
+ .timepoint-expand-icon i
theme('color', '$defaultColor')
- .timepointFollowupTitle
+ .timepoint-title
theme('color', '$textPrimaryColor')
padding-top: 2px
diff --git a/Packages/ohif-lesiontracker/client/components/timepointBrowser/list.html b/Packages/ohif-lesiontracker/client/components/timepointBrowser/list.html
index 1b35366f1..10092f288 100644
--- a/Packages/ohif-lesiontracker/client/components/timepointBrowser/list.html
+++ b/Packages/ohif-lesiontracker/client/components/timepointBrowser/list.html
@@ -2,6 +2,7 @@
{{this.timepointApi.title timepoint}}
-
- {{choose instance.summary.get 'Click to load'}}
+ {{choose instance.summary.get 'Click to load'}}
{{#each timepoint in this.timepoints}}
{{>timepointBrowserItem (clone this timepoint=timepoint)}}
+
{{/each}}
diff --git a/Packages/ohif-lesiontracker/client/components/timepointBrowser/studies.html b/Packages/ohif-lesiontracker/client/components/timepointBrowser/studies.html
index f892188f1..dd07f9d8f 100644
--- a/Packages/ohif-lesiontracker/client/components/timepointBrowser/studies.html
+++ b/Packages/ohif-lesiontracker/client/components/timepointBrowser/studies.html
@@ -1,5 +1,7 @@
{{/each}}
- {{>studyBrowserList this}}
+
diff --git a/Packages/ohif-lesiontracker/client/components/timepointBrowser/studies.js b/Packages/ohif-lesiontracker/client/components/timepointBrowser/studies.js
index 405a51358..82b69ba56 100644
--- a/Packages/ohif-lesiontracker/client/components/timepointBrowser/studies.js
+++ b/Packages/ohif-lesiontracker/client/components/timepointBrowser/studies.js
@@ -1,16 +1,5 @@
-import { Meteor } from 'meteor/meteor';
import { Template } from 'meteor/templating';
Template.timepointBrowserStudies.onRendered(() => {
- const instance = Template.instance();
- const $container = instance.$('.timepoint-browser-studies');
- instance.adjustMaxHeight = () => $container.adjustMax('height');
- instance.adjustMaxHeight();
-});
-
-Template.timepointBrowserStudies.events({
- 'ohif.studies.study.click'(event, instance) {
- // FIXME disable all transitions during $.tempShow
- Meteor.setTimeout(instance.adjustMaxHeight, 300);
- }
+ Template.instance().$('.timepoint-browser-studies').adjustMax('height');
});
diff --git a/Packages/ohif-studies/imports/client/components/browser/item.html b/Packages/ohif-studies/imports/client/components/browser/item.html
index f69b7db1b..8eff95a84 100644
--- a/Packages/ohif-studies/imports/client/components/browser/item.html
+++ b/Packages/ohif-studies/imports/client/components/browser/item.html
@@ -15,7 +15,9 @@
+ {{>studyBrowserList this}}
+
{{#if timepointList.length}}
{{#each timepoint in timepointList}}
-
-
-
-
- {{timepointApi.title timepoint}}
+
{{/each}} diff --git a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.js b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.js index 26ead8eba..e636fb038 100644 --- a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.js +++ b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.js @@ -53,10 +53,10 @@ Template.studyTimepointBrowser.onRendered(() => { const type = instance.timepointViewType.get(); // Removes all active classes to collapse the timepoints and studies - instance.$('.timepointEntry, .study-browser-item').removeClass('active'); + instance.$('.timepoint-item, .study-browser-item').removeClass('active'); if (type === 'key' && !instance.data.currentStudy) { // Show only first timepoint expanded for key timepoints - instance.$('.timepointEntry:first').addClass('active'); + instance.$('.timepoint-item:first').addClass('active'); } }); @@ -70,7 +70,7 @@ Template.studyTimepointBrowser.onRendered(() => { instance.$(`.study-browser-item[data-uid='${studyInstanceUid}']`).addClass('active'); }); // Show only first timepoint expanded for key timepoints - instance.$('.timepointEntry:first').addClass('active'); + instance.$('.timepoint-item:first').addClass('active'); }); instance.autorun(() => { @@ -95,7 +95,7 @@ Template.studyTimepointBrowser.onRendered(() => { Template.studyTimepointBrowser.events({ 'click .timepointHeader'(event, instance) { - const $timepoint = $(event.currentTarget).closest('.timepointEntry'); + const $timepoint = $(event.currentTarget).closest('.timepoint-item'); // Recalculates the timepoint height to make CSS transition smoother $timepoint.find('.studyTimepoint').trigger('displayStateChanged');
+
+
- {{>studyTimepoint studies=(studies timepoint) index=@index viewportIndex=this.viewportIndex currentStudy=this.currentStudy}}
+
-
+
-
-
+ {{timepointApi.title timepoint}}
+
+
+ {{formatDA timepoint.earliestDate 'D-MMM-YYYY'}}
{{formatDA timepoint.earliestDate 'D-MMM-YYYY'}}
+ {{modalitiesSummary timepoint}}
{{modalitiesSummary timepoint}}
+ {{>studyTimepoint studies=(studies timepoint) index=@index viewportIndex=this.viewportIndex currentStudy=this.currentStudy}}
{{/each}} diff --git a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.js b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.js index 26ead8eba..e636fb038 100644 --- a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.js +++ b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointBrowser.js @@ -53,10 +53,10 @@ Template.studyTimepointBrowser.onRendered(() => { const type = instance.timepointViewType.get(); // Removes all active classes to collapse the timepoints and studies - instance.$('.timepointEntry, .study-browser-item').removeClass('active'); + instance.$('.timepoint-item, .study-browser-item').removeClass('active'); if (type === 'key' && !instance.data.currentStudy) { // Show only first timepoint expanded for key timepoints - instance.$('.timepointEntry:first').addClass('active'); + instance.$('.timepoint-item:first').addClass('active'); } }); @@ -70,7 +70,7 @@ Template.studyTimepointBrowser.onRendered(() => { instance.$(`.study-browser-item[data-uid='${studyInstanceUid}']`).addClass('active'); }); // Show only first timepoint expanded for key timepoints - instance.$('.timepointEntry:first').addClass('active'); + instance.$('.timepoint-item:first').addClass('active'); }); instance.autorun(() => { @@ -95,7 +95,7 @@ Template.studyTimepointBrowser.onRendered(() => { Template.studyTimepointBrowser.events({ 'click .timepointHeader'(event, instance) { - const $timepoint = $(event.currentTarget).closest('.timepointEntry'); + const $timepoint = $(event.currentTarget).closest('.timepoint-item'); // Recalculates the timepoint height to make CSS transition smoother $timepoint.find('.studyTimepoint').trigger('displayStateChanged');