diff --git a/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js b/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js index fedd10957..9ca9989bd 100644 --- a/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js +++ b/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js @@ -163,10 +163,7 @@ class ConformanceCriteria { const promise = OHIF.studylist.retrieveStudyMetadata(studyInstanceUid); promise.then(study => { - let studyMetadata = study; - if (!(study instanceof OHIF.viewerbase.metadata.StudyMetadata)) { - studyMetadata = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid); - } + const studyMetadata = OHIF.viewerbase.getStudyMetadata(study); data[measurementType].push({ measurement, diff --git a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointStudy.html b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointStudy.html index 0bd75204a..56dfa4575 100644 --- a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointStudy.html +++ b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointStudy.html @@ -8,7 +8,7 @@
- {{#if this.study.modalities}} + {{#if instance.modalities}} {{modalities}} {{else}} UN @@ -16,8 +16,8 @@
-
{{formatDA this.study.studyDate 'D-MMM-YYYY'}}
-
{{this.study.studyDescription}}
+
{{formatDA instance.studyDate 'D-MMM-YYYY'}}
+
{{instance.studyDescription}}
diff --git a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointStudy.js b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointStudy.js index 35ff98a3e..701e81408 100644 --- a/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointStudy.js +++ b/Packages/ohif-viewerbase/client/components/viewer/studyTimepointBrowser/studyTimepointStudy.js @@ -10,6 +10,14 @@ Template.studyTimepointStudy.onCreated(() => { instance.loading = new ReactiveVar(false); + const studyMetadata = OHIF.viewerbase.getStudyMetadata(instance.data.study); + const firstInstance = studyMetadata.getFirstInstance(); + if (firstInstance) { + instance.modalities = firstInstance.getRawValue('x00080060'); + instance.studyDescription = firstInstance.getRawValue('x00081030'); + instance.studyDate = firstInstance.getRawValue('x00080020'); + } + // Get the current study element instance.getStudyElement = (isGlobal=false) => { const studyInstanceUid = instance.data.study.studyInstanceUid; @@ -144,7 +152,7 @@ Template.studyTimepointStudy.helpers({ modalities() { const instance = Template.instance(); - let modalities = instance.data.study.modalities; + const modalities = instance.modalities || 'UN'; // Replace backslashes with spaces return modalities.replace(/\\/g, ' '); @@ -154,20 +162,18 @@ Template.studyTimepointStudy.helpers({ // Responsively styles the Modality Acronyms for studies // with more than one modality const instance = Template.instance(); - const modalities = instance.data.study.modalities || 'UN'; + const modalities = instance.modalities || 'UN'; const numModalities = modalities.split(/\\/g).length; if (numModalities === 1) { - // If we have only one modality, it should take up the whole - // div. + // If we have only one modality, it should take up the whole div. return 'font-size: 1vw'; } else if (numModalities === 2) { // If we have two, let them sit side-by-side return 'font-size: 0.75vw'; } else { - // If we have more than two modalities, change the line - // height to display multiple rows, depending on the number - // of modalities we need to display. + // If we have more than two modalities, change the line height to display multiple rows, + // depending on the number of modalities we need to display. const lineHeight = Math.ceil(numModalities / 2) * 1.2; return 'line-height: ' + lineHeight + 'vh'; } diff --git a/Packages/ohif-viewerbase/client/index.js b/Packages/ohif-viewerbase/client/index.js index c58655b72..3b75c1baf 100644 --- a/Packages/ohif-viewerbase/client/index.js +++ b/Packages/ohif-viewerbase/client/index.js @@ -84,6 +84,10 @@ Viewerbase.setInstanceClassDefaultViewportFunction = setInstanceClassDefaultView import { displayReferenceLines } from './lib/displayReferenceLines'; Viewerbase.displayReferenceLines = displayReferenceLines; +// getStudyMetadata +import { getStudyMetadata } from './lib/getStudyMetadata'; +Viewerbase.getStudyMetadata = getStudyMetadata; + /** * Exported Namespaces (sub-namespaces) */ diff --git a/Packages/ohif-viewerbase/client/lib/classes/StudyPrefetcher.js b/Packages/ohif-viewerbase/client/lib/classes/StudyPrefetcher.js index f48ad537f..8bdb27fde 100644 --- a/Packages/ohif-viewerbase/client/lib/classes/StudyPrefetcher.js +++ b/Packages/ohif-viewerbase/client/lib/classes/StudyPrefetcher.js @@ -167,11 +167,9 @@ export class StudyPrefetcher { getSeries(study, image) { const seriesMetadata = cornerstoneTools.metaData.get('series', image.imageId); - if (!(study instanceof OHIF.viewerbase.metadata.StudyMetadata)) { - study = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid); - } + const studyMetadata = OHIF.viewerbase.getStudyMetadata(study); - return study.getSeriesByUID(seriesMetadata.seriesInstanceUid); + return studyMetadata.getSeriesByUID(seriesMetadata.seriesInstanceUid); } getInstance(series, image) { diff --git a/Packages/ohif-viewerbase/client/lib/getImageIdForImagePath.js b/Packages/ohif-viewerbase/client/lib/getImageIdForImagePath.js index ffb97f963..4c02c7cbd 100644 --- a/Packages/ohif-viewerbase/client/lib/getImageIdForImagePath.js +++ b/Packages/ohif-viewerbase/client/lib/getImageIdForImagePath.js @@ -9,12 +9,9 @@ import { OHIF } from 'meteor/ohif:core'; export const getImageIdForImagePath = (imagePath, thumbnail=false) => { const [studyInstanceUid, seriesInstanceUid, sopInstanceUid, frameIndex] = imagePath.split('_'); - let study = OHIF.viewer.Studies.findBy({ studyInstanceUid }); - if (!(study instanceof OHIF.viewerbase.metadata.StudyMetadata)) { - study = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid); - } - - const series = study.getSeriesByUID(seriesInstanceUid); + const study = OHIF.viewer.Studies.findBy({ studyInstanceUid }); + const studyMetadata = OHIF.viewerbase.getStudyMetadata(study); + const series = studyMetadata.getSeriesByUID(seriesInstanceUid); const instance = series.getInstanceByUID(sopInstanceUid); const imageId = OHIF.viewerbase.getImageId(instance, frameIndex, thumbnail); return imageId; diff --git a/Packages/ohif-viewerbase/client/lib/getStudyMetadata.js b/Packages/ohif-viewerbase/client/lib/getStudyMetadata.js new file mode 100644 index 000000000..5419bc179 --- /dev/null +++ b/Packages/ohif-viewerbase/client/lib/getStudyMetadata.js @@ -0,0 +1,12 @@ +import { OHIF } from 'meteor/ohif:core'; + +const getStudyMetadata = study => { + let studyMetadata = study; + if (study && !(studyMetadata instanceof OHIF.viewerbase.metadata.StudyMetadata)) { + studyMetadata = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid); + } + + return studyMetadata; +}; + +export { getStudyMetadata };