diff --git a/Packages/ohif-cornerstone/client/lib/classes/MetadataProvider.js b/Packages/ohif-cornerstone/client/lib/classes/MetadataProvider.js index 1f0eea99f..dbcfc5cd5 100644 --- a/Packages/ohif-cornerstone/client/lib/classes/MetadataProvider.js +++ b/Packages/ohif-cornerstone/client/lib/classes/MetadataProvider.js @@ -22,7 +22,6 @@ export class MetadataProvider { const instanceMetadata = data.instance; const seriesMetadata = data.series; const studyMetadata = data.study; - const imageIndex = data.imageIndex; const numImages = data.numImages; const metadata = {}; @@ -62,6 +61,15 @@ export class MetadataProvider { this.metadataLookup[imageId] = metadata; } + /** + * Return the metadata for the given imageId + * @param {String} imageId The Cornerstone ImageId + * @returns image metadata + */ + getMetadata(imageId) { + return this.metadataLookup[imageId]; + } + /** * Adds a set of metadata to the Cornerstone metadata provider given a specific * imageId, type, and dataset @@ -77,7 +85,6 @@ export class MetadataProvider { this.metadataLookup[imageId] = $.extend(this.metadataLookup[imageId], metadata); } - getFromDataSet(dataSet, type, tag) { if (!dataSet) { return; @@ -254,4 +261,4 @@ export class MetadataProvider { return imageMetadata[type]; } } -}; +} diff --git a/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js b/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js index 8100fdedb..d7680ab51 100644 --- a/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js +++ b/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js @@ -1,5 +1,6 @@ import { ReactiveVar } from 'meteor/reactive-var'; import { Tracker } from 'meteor/tracker'; +import { Session } from 'meteor/session'; import { _ } from 'meteor/underscore'; import { OHIF } from 'meteor/ohif:core'; import 'meteor/ohif:viewerbase'; @@ -16,6 +17,7 @@ class ConformanceCriteria { this.maxTargets = new ReactiveVar(null); const validate = _.debounce(trialCriteriaType => { + if (Session.get('MeasurementsReady')) return; this.validate(trialCriteriaType); }, 300); @@ -131,7 +133,7 @@ class ConformanceCriteria { measurements.forEach(measurement => { const { studyInstanceUid, imageId } = measurement; - const metadata = this.getImageMetadata(studyInstanceUid, imageId); + const metadata = this.getImageInstanceMetadata(studyInstanceUid, imageId); const timepointId = measurement.timepointId; const timepoint = this.timepointApi.timepoints.findOne({ timepointId }); @@ -153,7 +155,7 @@ class ConformanceCriteria { return data; } - getImageMetadata(studyInstanceUid, imageId) { + getImageInstanceMetadata(studyInstanceUid, imageId) { const study = OHIF.viewer.Studies.findBy({ studyInstanceUid }); // Stop here if the study was not found @@ -161,22 +163,8 @@ class ConformanceCriteria { return; } - let foundImage; - _.each(study.displaySets, displaySet => { - if (foundImage) { - return; - } - - _.each(displaySet.images, image => { - if (foundImage) { - return; - } else if (OHIF.viewerbase.getImageId(image) === imageId) { - foundImage = image; - } - }); - }); - - return foundImage; + const metadata = OHIF.cornerstone.metadataProvider.getMetadata(imageId); + return metadata ? metadata.instance : undefined; } }