From 927b0c470c2d9b6c2c93da518c3792f6f33545fe Mon Sep 17 00:00:00 2001 From: Bruno Alves de Faria Date: Mon, 24 Jul 2017 10:45:39 -0300 Subject: [PATCH] Adapting Trial Criteria code to the new metadata structure --- .../client/conformance/ConformanceCriteria.js | 9 ++++++--- .../client/conformance/criteria/MeasurementsLength.js | 2 +- .../client/conformance/criteria/Modality.js | 5 ++--- .../client/lib/classes/StudyPrefetcher.js | 4 ++++ 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js b/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js index 64dfe0d03..c9f3d917c 100644 --- a/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js +++ b/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js @@ -145,7 +145,6 @@ class ConformanceCriteria { const measurements = this.measurementApi.fetch(measurementType); measurements.forEach(measurement => { - const imageId = OHIF.viewerbase.getImageIdForImagePath(measurement.imagePath); const { studyInstanceUid } = measurement; const timepointId = measurement.timepointId; @@ -157,10 +156,14 @@ class ConformanceCriteria { const promise = OHIF.studylist.retrieveStudyMetadata(studyInstanceUid); promise.then(study => { - const metadata = OHIF.viewer.metadataProvider.getMetadata(imageId); + let studyMetadata = study; + if (!(study instanceof OHIF.viewerbase.metadata.StudyMetadata)) { + studyMetadata = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid); + } + data[measurementType].push({ measurement, - metadata: metadata.instance, + metadata: studyMetadata.getFirstInstance(), timepoint }); }); diff --git a/Packages/ohif-measurements/client/conformance/criteria/MeasurementsLength.js b/Packages/ohif-measurements/client/conformance/criteria/MeasurementsLength.js index 50bd716f8..9dbbd3e90 100644 --- a/Packages/ohif-measurements/client/conformance/criteria/MeasurementsLength.js +++ b/Packages/ohif-measurements/client/conformance/criteria/MeasurementsLength.js @@ -104,7 +104,7 @@ export class MeasurementsLengthCriterion extends BaseCriterion { const { measurement, metadata } = item; const { location, longestDiameter, shortestDiameter } = measurement; const { sliceThickness } = metadata; - const modality = metadata.modality.toUpperCase(); + const modality = (metadata.getRawValue('x00080060') || '').toUpperCase(); // Stop here if the measurement does not match the modality and location filters if (options.locationIn && options.locationIn.indexOf(location) === -1) return; diff --git a/Packages/ohif-measurements/client/conformance/criteria/Modality.js b/Packages/ohif-measurements/client/conformance/criteria/Modality.js index 9761d072d..a18451f8b 100644 --- a/Packages/ohif-measurements/client/conformance/criteria/Modality.js +++ b/Packages/ohif-measurements/client/conformance/criteria/Modality.js @@ -57,9 +57,8 @@ export class ModalityCriterion extends BaseCriterion { const items = data[measurementType]; items.forEach(item => { - const measurement = item.measurement; - const metadata = item.metadata; - const modality = metadata.modality.toUpperCase(); + const { measurement, metadata } = item; + const modality = (metadata.getRawValue('x00080060') || '').toUpperCase(); if (((validationMethod === 'allow') && !modalitiesSet.has(modality)) || ((validationMethod === 'deny') && modalitiesSet.has(modality))) { diff --git a/Packages/ohif-viewerbase/client/lib/classes/StudyPrefetcher.js b/Packages/ohif-viewerbase/client/lib/classes/StudyPrefetcher.js index 9089ca0cd..f48ad537f 100644 --- a/Packages/ohif-viewerbase/client/lib/classes/StudyPrefetcher.js +++ b/Packages/ohif-viewerbase/client/lib/classes/StudyPrefetcher.js @@ -167,6 +167,10 @@ 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); + } + return study.getSeriesByUID(seriesMetadata.seriesInstanceUid); }