From 3267706b334e9d5cd0bb21ea2f7c9eee690350f6 Mon Sep 17 00:00:00 2001 From: James Petts Date: Fri, 7 Aug 2020 15:57:40 +0100 Subject: [PATCH] [OHIF-302] fix: Set SeriesNumber for generated SRs to 4700 or above (#1953) --- .../src/_shared/getNextSRSeriesNumber.js | 10 ++++++++++ .../TrackedMeasurementsContext/promptSaveReport.js | 10 +++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 extensions/measurement-tracking/src/_shared/getNextSRSeriesNumber.js diff --git a/extensions/measurement-tracking/src/_shared/getNextSRSeriesNumber.js b/extensions/measurement-tracking/src/_shared/getNextSRSeriesNumber.js new file mode 100644 index 000000000..d5865d38e --- /dev/null +++ b/extensions/measurement-tracking/src/_shared/getNextSRSeriesNumber.js @@ -0,0 +1,10 @@ +const MIN_SR_SERIES_NUMBER = 4700; + +export default function getNextSRSeriesNumber(DisplaySetService) { + const activeDisplaySets = DisplaySetService.getActiveDisplaySets(); + const srDisplaySets = activeDisplaySets.filter(ds => ds.Modality === 'SR'); + const srSeriesNumbers = srDisplaySets.map(ds => ds.SeriesNumber); + const maxSeriesNumber = Math.max(...srSeriesNumbers, MIN_SR_SERIES_NUMBER); + + return maxSeriesNumber + 1; +} diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptSaveReport.js b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptSaveReport.js index e1afa48d8..f87d03375 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptSaveReport.js +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptSaveReport.js @@ -1,9 +1,14 @@ import createReportAsync from './../../_shared/createReportAsync.js'; import createReportDialogPrompt from '../../_shared/createReportDialogPrompt'; +import getNextSRSeriesNumber from '../../_shared/getNextSRSeriesNumber'; import RESPONSE from '../../_shared/PROMPT_RESPONSES'; function promptUser({ servicesManager, extensionManager }, ctx, evt) { - const { UIDialogService, MeasurementService } = servicesManager.services; + const { + UIDialogService, + MeasurementService, + DisplaySetService, + } = servicesManager.services; const viewportIndex = evt.viewportIndex === undefined ? evt.data.viewportIndex @@ -36,12 +41,15 @@ function promptUser({ servicesManager, extensionManager }, ctx, evt) { ? 'Research Derived Series' // default : promptResult.value; // provided value + const SeriesNumber = getNextSRSeriesNumber(DisplaySetService); + displaySetInstanceUIDs = await createReportAsync( servicesManager, dataSource, trackedMeasurements, { SeriesDescription, + SeriesNumber, } ); } else if (promptResult.action === RESPONSE.CANCEL) {