diff --git a/Packages/ohif-measurements/both/configuration/timepoints.js b/Packages/ohif-measurements/both/configuration/timepoints.js index 939f92b39..0ff13ec48 100644 --- a/Packages/ohif-measurements/both/configuration/timepoints.js +++ b/Packages/ohif-measurements/both/configuration/timepoints.js @@ -16,11 +16,12 @@ class TimepointApi { return configuration; } - constructor(currentTimepointId, configuration) { + constructor(currentTimepointId, options={}) { if (currentTimepointId) { this.currentTimepointId = currentTimepointId; } + this.options = options; this.timepoints = new Mongo.Collection(null); this.timepoints.attachSchema(TimepointSchema); this.timepoints._debugName = 'Timepoints'; @@ -161,7 +162,7 @@ class TimepointApi { }); } - // Return only the current and prior Timepoints + // Return only the current and prior timepoints currentAndPrior() { const timepoints = []; @@ -178,6 +179,11 @@ class TimepointApi { return timepoints; } + // Return only the comparison timepoints + comparison() { + return this.currentAndPrior(); + } + // Return only the baseline timepoint baseline() { return this.timepoints.findOne({ timepointType: 'baseline' }); diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTable.js b/Packages/ohif-measurements/client/components/measurementTable/measurementTable.js index c8688a539..0f0144709 100644 --- a/Packages/ohif-measurements/client/components/measurementTable/measurementTable.js +++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTable.js @@ -21,7 +21,7 @@ Template.measurementTable.onCreated(() => { } else if (tableLayout === 'key') { timepoints = timepointApi.key(); } else { - timepoints = timepointApi.currentAndPrior(); + timepoints = timepointApi.comparison(); } // Return key timepoints diff --git a/Packages/ohif-measurements/client/lib/jumpToRowItem.js b/Packages/ohif-measurements/client/lib/jumpToRowItem.js index 619f83d78..fa1b32e76 100644 --- a/Packages/ohif-measurements/client/lib/jumpToRowItem.js +++ b/Packages/ohif-measurements/client/lib/jumpToRowItem.js @@ -66,8 +66,16 @@ OHIF.measurements.jumpToRowItem = (rowItem, timepoints) => { const $viewports = $('.imageViewerViewport'); const numViewports = Math.max($viewports.length, 0); + // Clone the timepoint list to prevent modifying the original object + const timepointList = _.clone(timepoints); + + // Reverse the timepointList array if the flag is set + if (OHIF.viewer.invertViewportTimepointsOrder) { + timepointList.reverse(); + } + // Retrieve the timepoints that are currently being displayed in the Measurement Table - const numTimepoints = Math.max(timepoints.length, 1); + const numTimepoints = Math.max(timepointList.length, 1); const numViewportsToUpdate = Math.min(numTimepoints, numViewports); @@ -75,10 +83,13 @@ OHIF.measurements.jumpToRowItem = (rowItem, timepoints) => { const measurementsData = []; const promises = new Set(); for (let i = 0; i < numViewportsToUpdate; i++) { - const { timepointId } = timepoints[i]; + const { timepointId } = timepointList[i]; const dataAtThisTimepoint = _.where(rowItem.entries, { timepointId }); - if (!dataAtThisTimepoint || !dataAtThisTimepoint.length) continue; + if (!dataAtThisTimepoint || !dataAtThisTimepoint.length) { + measurementsData.push(null); + continue; + } const measurementData = dataAtThisTimepoint[0]; measurementsData.push(measurementData); @@ -99,14 +110,6 @@ OHIF.measurements.jumpToRowItem = (rowItem, timepoints) => { // Deactivate stack synchronizer because it will be re-activated later OHIF.viewer.stackImagePositionOffsetSynchronizer.deactivate(); - // Display timepoints in the order of viewports which is set by the hanging protocol - // Reverse the array if the first timepoint does not match with the first viewport data - const layoutManager = OHIF.viewerbase.layoutManager; - const viewportData = layoutManager.viewportData[0]; - if (timepoints[0].studyInstanceUids.indexOf(viewportData.studyInstanceUid) < 0) { - timepoints.reverse(); - } - const renderPromises = []; for (let viewportIndex = 0; viewportIndex < numViewportsToUpdate; viewportIndex++) { const measurementData = measurementsData[viewportIndex];