diff --git a/LesionTracker/client/components/viewer/viewer.js b/LesionTracker/client/components/viewer/viewer.js index ed93d67e8..fa95f17de 100644 --- a/LesionTracker/client/components/viewer/viewer.js +++ b/LesionTracker/client/components/viewer/viewer.js @@ -320,7 +320,7 @@ const initHangingProtocol = () => { const layoutManager = OHIF.viewerbase.layoutManager; // Instantiate StudyMetadataSource: necessary for Hanging Protocol to get study metadata - const studyMetadataSource = new OHIF.studylist.classes.OHIFStudyMetadataSource(); + const studyMetadataSource = new OHIF.studies.classes.OHIFStudyMetadataSource(); // Creates Protocol Engine object with required arguments const ProtocolEngine = new HP.ProtocolEngine(layoutManager, studyMetadataList, [], studyMetadataSource); diff --git a/OHIFViewer/client/components/viewer/viewer.js b/OHIFViewer/client/components/viewer/viewer.js index 765196166..eb55fd479 100644 --- a/OHIFViewer/client/components/viewer/viewer.js +++ b/OHIFViewer/client/components/viewer/viewer.js @@ -25,7 +25,7 @@ const initHangingProtocol = () => { const layoutManager = OHIF.viewerbase.layoutManager; // Instantiate StudyMetadataSource: necessary for Hanging Protocol to get study metadata - const studyMetadataSource = new OHIF.studylist.classes.OHIFStudyMetadataSource(); + const studyMetadataSource = new OHIF.studies.classes.OHIFStudyMetadataSource(); // Get prior studies map const studyPriorsMap = OHIF.studylist.functions.getStudyPriorsMap(studyMetadataList); diff --git a/Packages/ohif-lesiontracker/client/lib/studylist/studylistModification.js b/Packages/ohif-lesiontracker/client/lib/studylist/studylistModification.js index 9f4c8d55d..52646efe8 100644 --- a/Packages/ohif-lesiontracker/client/lib/studylist/studylistModification.js +++ b/Packages/ohif-lesiontracker/client/lib/studylist/studylistModification.js @@ -3,6 +3,8 @@ import { Router } from 'meteor/iron:router'; import { OHIF } from 'meteor/ohif:core'; Meteor.startup(function() { + if (!OHIF.studylist) return; + OHIF.studylist.callbacks.dblClickOnStudy = dblClickOnStudy; OHIF.studylist.callbacks.middleClickOnStudy = dblClickOnStudy; diff --git a/Packages/ohif-lesiontracker/package.js b/Packages/ohif-lesiontracker/package.js index a5e3df082..83bb47b9b 100644 --- a/Packages/ohif-lesiontracker/package.js +++ b/Packages/ohif-lesiontracker/package.js @@ -22,7 +22,6 @@ Package.onUse(function(api) { api.use('ohif:design'); api.use('ohif:core'); api.use('ohif:studies'); - api.use('ohif:study-list'); api.use('ohif:cornerstone'); api.use('ohif:measurements'); diff --git a/Packages/ohif-measurements/client/components/longitudinal/dropdown.js b/Packages/ohif-measurements/client/components/longitudinal/dropdown.js index 1f6ce7fc7..f6dc38e1c 100644 --- a/Packages/ohif-measurements/client/components/longitudinal/dropdown.js +++ b/Packages/ohif-measurements/client/components/longitudinal/dropdown.js @@ -1,5 +1,4 @@ import { Meteor } from 'meteor/meteor'; -import { Router } from 'meteor/iron:router'; import { OHIF } from 'meteor/ohif:core'; /** @@ -69,6 +68,8 @@ const removeTimepointAssociations = event => { }; Meteor.startup(() => { + if (!OHIF.studylist) return; + OHIF.studylist.dropdown.setItems([{ action: OHIF.studylist.viewStudies, text: 'View', diff --git a/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListStudy/longitudinalStudyListStudy.js b/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListStudy/longitudinalStudyListStudy.js index 4ee08a1a7..71d67e053 100644 --- a/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListStudy/longitudinalStudyListStudy.js +++ b/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListStudy/longitudinalStudyListStudy.js @@ -6,72 +6,75 @@ import { OHIF } from 'meteor/ohif:core'; // default StudyListStudy template. // See https://github.com/aldeed/meteor-template-extension const defaultTemplate = 'studylistStudy'; -Template.longitudinalStudyListStudy.replaces(defaultTemplate); -// Add the TimepointName helper to the default template. The -// HTML of this template is replaced with that of longitudinalStudyListStudy -Template[defaultTemplate].helpers({ - timepointName() { - const instance = Template.instance(); - const timepointApi = OHIF.studylist.timepointApi; - if (!timepointApi) { - return; +if (OHIF.studylist) { + Template.longitudinalStudyListStudy.replaces(defaultTemplate); + + // Add the TimepointName helper to the default template. The + // HTML of this template is replaced with that of longitudinalStudyListStudy + Template[defaultTemplate].helpers({ + timepointName() { + const instance = Template.instance(); + const timepointApi = OHIF.studylist.timepointApi; + if (!timepointApi) { + return; + } + + const timepoint = timepointApi.study(instance.data.studyInstanceUid)[0]; + if (!timepoint) { + return; + } + + return timepointApi.name(timepoint); + }, + + reviewerTip() { + const instance = Template.instance(); + const timepointApi = OHIF.studylist.timepointApi; + if (!timepointApi || !window.Reviewers) { + return; + } + + const timepoint = timepointApi.study(instance.data.studyInstanceUid); + if (!timepoint) { + return; + } + + const timepointReviewers = window.Reviewers.findOne({ timepointId: timepoint.timepointId }); + if (!timepointReviewers) { + return; + } + + return getReviewerTipText(timepointReviewers.reviewers); } - - const timepoint = timepointApi.study(instance.data.studyInstanceUid)[0]; - if (!timepoint) { - return; - } - - return timepointApi.name(timepoint); - }, - - reviewerTip() { - const instance = Template.instance(); - const timepointApi = OHIF.studylist.timepointApi; - if (!timepointApi || !window.Reviewers) { - return; - } - - const timepoint = timepointApi.study(instance.data.studyInstanceUid); - if (!timepoint) { - return; - } - - const timepointReviewers = window.Reviewers.findOne({ timepointId: timepoint.timepointId }); - if (!timepointReviewers) { - return; - } - - return getReviewerTipText(timepointReviewers.reviewers); - } -}); - -function getReviewerTipText(reviewers) { - if (!reviewers || !reviewers.length) { - return; - } - - const newReviewers = reviewers.filter(function(reviewer) { - return reviewer.userId !== Meteor.userId(); }); - if (!newReviewers.length) { - return; - } - - let tipText = 'The study is being reviewed by '; - newReviewers.forEach(function(reviewer, index) { - if (reviewer.userId === Meteor.userId()) { + function getReviewerTipText(reviewers) { + if (!reviewers || !reviewers.length) { return; } - if (index > 0) { - tipText += ','; + const newReviewers = reviewers.filter(function(reviewer) { + return reviewer.userId !== Meteor.userId(); + }); + + if (!newReviewers.length) { + return; } - tipText += reviewer.userName; - }); + let tipText = 'The study is being reviewed by '; + newReviewers.forEach(function(reviewer, index) { + if (reviewer.userId === Meteor.userId()) { + return; + } - return tipText; + if (index > 0) { + tipText += ','; + } + + tipText += reviewer.userName; + }); + + return tipText; + } } diff --git a/Packages/ohif-measurements/package.js b/Packages/ohif-measurements/package.js index 3fac42df4..2adad8535 100644 --- a/Packages/ohif-measurements/package.js +++ b/Packages/ohif-measurements/package.js @@ -35,7 +35,7 @@ Package.onUse(function(api) { api.use('ohif:core'); api.use('ohif:select-tree'); api.use('ohif:log'); - api.use('ohif:study-list'); + api.use('ohif:studies'); api.use('ohif:hanging-protocols'); api.use('ohif:viewerbase'); diff --git a/Packages/ohif-study-list/client/lib/OHIFStudyMetadataSource.js b/Packages/ohif-studies/imports/client/lib/classes/OHIFStudyMetadataSource.js similarity index 100% rename from Packages/ohif-study-list/client/lib/OHIFStudyMetadataSource.js rename to Packages/ohif-studies/imports/client/lib/classes/OHIFStudyMetadataSource.js diff --git a/Packages/ohif-study-list/client/lib/OHIFStudySummary.js b/Packages/ohif-studies/imports/client/lib/classes/OHIFStudySummary.js similarity index 100% rename from Packages/ohif-study-list/client/lib/OHIFStudySummary.js rename to Packages/ohif-studies/imports/client/lib/classes/OHIFStudySummary.js diff --git a/Packages/ohif-studies/imports/client/lib/classes/index.js b/Packages/ohif-studies/imports/client/lib/classes/index.js new file mode 100644 index 000000000..a11fc978c --- /dev/null +++ b/Packages/ohif-studies/imports/client/lib/classes/index.js @@ -0,0 +1,8 @@ +import { OHIF } from 'meteor/ohif:core'; +import { OHIFStudyMetadataSource } from './OHIFStudyMetadataSource'; +import { OHIFStudySummary } from './OHIFStudySummary'; + +OHIF.studies.classes = { + OHIFStudyMetadataSource, + OHIFStudySummary +}; diff --git a/Packages/ohif-studies/imports/client/lib/index.js b/Packages/ohif-studies/imports/client/lib/index.js index 3aa7f534f..4eb1ddf11 100644 --- a/Packages/ohif-studies/imports/client/lib/index.js +++ b/Packages/ohif-studies/imports/client/lib/index.js @@ -1,3 +1,4 @@ +import './classes'; import './loadStudy'; import './retrieveStudiesMetadata'; import './retrieveStudyMetadata'; diff --git a/Packages/ohif-study-list/client/lib/getStudyPriors.js b/Packages/ohif-study-list/client/lib/getStudyPriors.js index b77b79513..9842c8b63 100644 --- a/Packages/ohif-study-list/client/lib/getStudyPriors.js +++ b/Packages/ohif-study-list/client/lib/getStudyPriors.js @@ -1,7 +1,5 @@ import { OHIF } from 'meteor/ohif:core'; import 'meteor/ohif:viewerbase'; -// Local Dependencies -import { OHIFStudySummary } from './OHIFStudySummary'; const { StudyMetadata, StudySummary } = OHIF.viewerbase.metadata; const PATIENT_ID = 'x00100020'; @@ -40,7 +38,7 @@ const getStudyPriors = study => { // Create an OHIFStudySummary object for each prior study found cursor.forEach(study => { - const summary = new OHIFStudySummary(study, null, study.studyInstanceUid); + const summary = new OHIF.studies.classes.OHIFStudySummary(study, null, study.studyInstanceUid); priorStudies.push(summary); }); diff --git a/Packages/ohif-study-list/client/lib/studylist.js b/Packages/ohif-study-list/client/lib/studylist.js index 7a387758f..f1f61b039 100644 --- a/Packages/ohif-study-list/client/lib/studylist.js +++ b/Packages/ohif-study-list/client/lib/studylist.js @@ -1,10 +1,6 @@ import { OHIF } from 'meteor/ohif:core'; import { Router } from 'meteor/iron:router'; -// Classes -import { OHIFStudyMetadataSource } from './OHIFStudyMetadataSource'; -import { OHIFStudySummary } from './OHIFStudySummary'; - // Functions import { getStudyPriors } from './getStudyPriors'; import { getStudyPriorsMap } from './getStudyPriorsMap'; @@ -14,10 +10,15 @@ OHIF.studylist.functions = { getStudyPriorsMap }; -OHIF.studylist.classes = { - OHIFStudyMetadataSource, - OHIFStudySummary -}; +// Add deprecation notice to the OHIF.studylist.classes namespace +const note = 'OHIF.studylist.classes is deprecated.'; +const instructions = 'Please use OHIF.studies.classes instead.'; +Object.defineProperty(OHIF.studylist, 'classes', { + get() { + OHIF.log.warn(`${note}\n${instructions}`); + return OHIF.studies.classes; + } +}); const dblClickOnStudy = data => { Router.go('viewerStudies', { studyInstanceUids: data.studyInstanceUid }); diff --git a/StandaloneViewer/StandaloneViewer/client/components/viewer/viewer.js b/StandaloneViewer/StandaloneViewer/client/components/viewer/viewer.js index 80c73e2b1..3238aa72b 100644 --- a/StandaloneViewer/StandaloneViewer/client/components/viewer/viewer.js +++ b/StandaloneViewer/StandaloneViewer/client/components/viewer/viewer.js @@ -36,7 +36,7 @@ const initHangingProtocol = () => { const layoutManager = OHIF.viewerbase.layoutManager; // Instantiate StudyMetadataSource: necessary for Hanging Protocol to get study metadata - const studyMetadataSource = new OHIF.studylist.classes.OHIFStudyMetadataSource(); + const studyMetadataSource = new OHIF.studies.classes.OHIFStudyMetadataSource(); // Creates Protocol Engine object with required arguments const ProtocolEngine = new HP.ProtocolEngine(layoutManager, studyMetadataList, [], studyMetadataSource); @@ -92,7 +92,7 @@ Template.viewer.onCreated(() => { displaySets = OHIF.viewerbase.sortingManager.getDisplaySets(studyMetadata); study.displaySets = displaySets; } - + study.selected = true; OHIF.viewer.Studies.insert(study); OHIF.viewer.StudyMetadataList.insert(studyMetadata);