diff --git a/LesionTracker/client/components/viewer/viewer.js b/LesionTracker/client/components/viewer/viewer.js index 2aa93c919..ed93d67e8 100644 --- a/LesionTracker/client/components/viewer/viewer.js +++ b/LesionTracker/client/components/viewer/viewer.js @@ -111,7 +111,7 @@ Template.viewer.onCreated(() => { const studyMetadata = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid); let displaySets = study.displaySets; - if(!study.displaySets) { + if (!study.displaySets) { displaySets = OHIF.viewerbase.sortingManager.getDisplaySets(studyMetadata); study.displaySets = displaySets; } diff --git a/Packages/ohif-lesiontracker/client/components/timepointBrowser/quickSwitch.html b/Packages/ohif-lesiontracker/client/components/timepointBrowser/quickSwitch.html index 99e11f257..4432f66e0 100644 --- a/Packages/ohif-lesiontracker/client/components/timepointBrowser/quickSwitch.html +++ b/Packages/ohif-lesiontracker/client/components/timepointBrowser/quickSwitch.html @@ -1,6 +1,6 @@ diff --git a/Packages/ohif-lesiontracker/client/components/timepointBrowser/quickSwitch.js b/Packages/ohif-lesiontracker/client/components/timepointBrowser/quickSwitch.js index 52949ed90..1a67c39ec 100644 --- a/Packages/ohif-lesiontracker/client/components/timepointBrowser/quickSwitch.js +++ b/Packages/ohif-lesiontracker/client/components/timepointBrowser/quickSwitch.js @@ -27,7 +27,17 @@ Template.timepointBrowserQuickSwitch.onCreated(() => { instance.autorun(() => { OHIF.viewerbase.layoutManager.observer.depend(); const viewportData = OHIF.viewerbase.layoutManager.viewportData[viewportIndex]; - instance.updateSelectedTimepoint(viewportData.studyInstanceUid); + let { studyInstanceUid } = viewportData; + if (!studyInstanceUid) { + Tracker.nonreactive(() => { + const currentStudy = instance.data.currentStudy.get(); + if (currentStudy) { + studyInstanceUid = currentStudy.studyInstanceUid; + } + }); + } + + instance.updateSelectedTimepoint(studyInstanceUid); }); instance.autorun(() => { diff --git a/Packages/ohif-studies/imports/client/components/browser/index.js b/Packages/ohif-studies/imports/client/components/browser/index.js index 5474d5ef4..2a30567a8 100644 --- a/Packages/ohif-studies/imports/client/components/browser/index.js +++ b/Packages/ohif-studies/imports/client/components/browser/index.js @@ -1,6 +1,7 @@ import './item.html'; import './item.js'; import './list.html'; +import './list.js'; import './list.styl'; import './quickSwitch.html'; import './quickSwitch.js'; diff --git a/Packages/ohif-studies/imports/client/components/browser/item.html b/Packages/ohif-studies/imports/client/components/browser/item.html index 8eff95a84..03bb520c6 100644 --- a/Packages/ohif-studies/imports/client/components/browser/item.html +++ b/Packages/ohif-studies/imports/client/components/browser/item.html @@ -4,18 +4,20 @@ {{#if isLoading}} {{>loadingText}} {{/if}} -
-
-
{{instance.modalities}}
+ {{#let studyData=instance.studyData.get}} +
+
+
{{studyData.modalities}}
+
+
+
{{formatDA studyData.studyDate 'D-MMM-YYYY'}}
+
{{studyData.studyDescription}}
+
-
-
{{formatDA this.studyInformation.studyDate 'D-MMM-YYYY'}}
-
{{this.studyInformation.studyDescription}}
-
-
+ {{/let}}
{{#if this.studyChildTemplate}} - {{#if and (not isLoading) instance.loaded}} + {{#if and (not isLoading) instance.studyData.get instance.loaded}} {{>Template.dynamic template=this.studyChildTemplate data=(clone this)}} {{/if}} {{/if}} diff --git a/Packages/ohif-studies/imports/client/components/browser/item.js b/Packages/ohif-studies/imports/client/components/browser/item.js index 6d8cc0d46..275777809 100644 --- a/Packages/ohif-studies/imports/client/components/browser/item.js +++ b/Packages/ohif-studies/imports/client/components/browser/item.js @@ -7,12 +7,42 @@ import { OHIF } from 'meteor/ohif:core'; Template.studyBrowserItem.onCreated(() => { const instance = Template.instance(); + const { studyInformation } = instance.data; + const { studyInstanceUid } = studyInformation; instance.loaded = false; instance.loading = new ReactiveVar(false); - const modalities = instance.data.studyInformation.modalities || 'UN'; - instance.modalities = _.uniq(modalities.split(/[^A-Za-z]+/g)).join(' '); + instance.studyData = new ReactiveVar(studyInformation); + + instance.studyMetadata = null; + instance.getStudyMetadata = () => { + instance.loading.dep.depend(); + + if (!instance.studyMetadata) { + instance.studyMetadata = OHIF.viewer.Studies.findBy({ studyInstanceUid }) || null; + } + + return instance.studyMetadata; + }; + + instance.autorun(() => { + const instance = Template.instance(); + + OHIF.studies.loadedDict.get(studyInstanceUid); + const studyMetadata = instance.getStudyMetadata(); + if (studyMetadata) { + const firstInstance = studyMetadata.getFirstInstance(); + instance.studyData.set({ + studyDate: firstInstance.getRawValue('x00080020') || '', + studyDescription: firstInstance.getRawValue('x00081030') || '', + modalities: firstInstance.getRawValue('x00080060') || '', + }); + + instance.loaded = true; + instance.loading.set(false); + } + }); }); Template.studyBrowserItem.events({ @@ -49,10 +79,14 @@ Template.studyBrowserItem.helpers({ return Template.instance().loading.get(); }, - modalityStyle() { + modalitiesText(modalities) { + const text = modalities || 'UN'; + return _.uniq(text.split(/[^A-Za-z]+/g)).join(' '); + }, + + modalityStyle(modalities) { // Responsively styles the Modality Acronyms for studies with more than one modality - const instance = Template.instance(); - const numModalities = instance.modalities.split(/\s/g).length; + const numModalities = modalities.split(/\s/g).length; if (numModalities === 1) { // If we have only one modality, it should take up the whole div diff --git a/Packages/ohif-studies/imports/client/components/browser/list.html b/Packages/ohif-studies/imports/client/components/browser/list.html index 0afac4dda..d17bfaa44 100644 --- a/Packages/ohif-studies/imports/client/components/browser/list.html +++ b/Packages/ohif-studies/imports/client/components/browser/list.html @@ -1,6 +1,6 @@