From 3b7560a282490cbec934aeaa18a970aca89560ee Mon Sep 17 00:00:00 2001 From: dannyrb Date: Sun, 7 Jun 2020 12:31:18 -0400 Subject: [PATCH] ability to "untrack" a series from thumbnail list --- .../measurementTrackingMachine.js | 12 +++++++----- .../PanelStudyBrowserTracking.jsx | 13 ++++++++++--- .../src/viewports/TrackedCornerstoneViewport.js | 2 +- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js index 5a0862434..680fabf49 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js @@ -129,18 +129,20 @@ const defaultOptions = { trackedSeries: [...ctx.trackedSeries, evt.data.SeriesInstanceUID], })), removeTrackedSeries: assign((ctx, evt) => ({ - trackedSeries: [ - ...ctx.trackedSeries(ser => ser !== evt.SeriesInstanceUID), - ], + trackedSeries: ctx.trackedSeries + .slice() + .filter(ser => ser !== evt.SeriesInstanceUID), })), }, guards: { promptAccepted: (ctx, evt) => evt.data && evt.data.userResponse === 1, promptCanceled: (ctx, evt) => evt.data && evt.data.userResponse === 0, promptDeclined: (ctx, evt) => evt.data && evt.data.userResponse === -1, + // Has more than 1, or SeriesInstanceUID is not in list + // --> Post removal would have non-empty trackedSeries array hasRemainingTrackedSeries: (ctx, evt) => - ctx.trackedSeries.length === 1 && - ctx.trackedSeries.includes(evt.SeriesInstanceUID), + ctx.trackedSeries.length > 1 || + !ctx.trackedSeries.includes(evt.SeriesInstanceUID), isNewStudy: (ctx, evt) => ctx.trackedStudy !== evt.StudyInstanceUID, isNewSeries: (ctx, evt) => !ctx.trackedSeries.includes(evt.SeriesInstanceUID), diff --git a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.jsx b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.jsx index 49818c670..5184795a6 100644 --- a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.jsx +++ b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.jsx @@ -211,9 +211,16 @@ function PanelStudyBrowserTracking({ onClickTab={clickedTabName => { setActiveTabName(clickedTabName); }} - onClickUntrack={displaySetInstanceUID => - console.log(displaySetInstanceUID) - } + onClickUntrack={displaySetInstanceUID => { + const displaySet = DisplaySetService.getDisplaySetByUID( + displaySetInstanceUID + ); + // TODO: shift this somewhere else where we're centralizing this logic? + // Potentially a helper from displaySetInstanceUID to this + sendTrackedMeasurementsEvent('UNTRACK_SERIES', { + SeriesInstanceUID: displaySet.SeriesInstanceUID, + }); + }} /> ); } diff --git a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js index 641d0a64c..760cb9d3b 100644 --- a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js +++ b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js @@ -104,7 +104,7 @@ function TrackedCornerstoneViewport({ // ); // TODO: This display contains the meta for all instances. // That can't be right... - console.log('DISPLAYSET', displaySet); + // console.log('DISPLAYSET', displaySet); // const seriesMeta = DicomMetadataStore.getSeries(this.props.displaySet.StudyInstanceUID, ''); // console.log(seriesMeta);