diff --git a/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.js b/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.js index 9260c26b9..b54db2b87 100644 --- a/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.js +++ b/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.js @@ -31,8 +31,16 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) { measurementChangeTimestamp, 200 ); - const { MeasurementService, UINotificationService, UIDialogService, DisplaySetService } = servicesManager.services; - const [trackedMeasurements, sendTrackedMeasurementsEvent] = useTrackedMeasurements(); + const { + MeasurementService, + UINotificationService, + UIDialogService, + DisplaySetService, + } = servicesManager.services; + const [ + trackedMeasurements, + sendTrackedMeasurementsEvent, + ] = useTrackedMeasurements(); const { trackedStudy, trackedSeries } = trackedMeasurements.context; const [displayStudySummary, setDisplayStudySummary] = useState( DISPLAY_STUDY_SUMMARY_INITIAL_VALUE @@ -90,7 +98,12 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) { // ~~ DisplayStudySummary useEffect(() => { updateDisplayStudySummary(); - }, [displayStudySummary.key, trackedMeasurements, trackedStudy]); + }, [ + displayStudySummary.key, + trackedMeasurements, + trackedStudy, + updateDisplayStudySummary, + ]); // TODO: Better way to consolidated, debounce, check on change? // Are we exposing the right API for measurementService? @@ -152,17 +165,23 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) { const measurement = MeasurementService.getMeasurement(id); const { referenceSeriesUID, SOPInstanceUID } = measurement; - const displaySets = DisplaySetService.getDisplaySetsForSeries(referenceSeriesUID); + const displaySets = DisplaySetService.getDisplaySetsForSeries( + referenceSeriesUID + ); const displaySet = displaySets.find(ds => { - return ds.images && ds.images.some(i => i.SOPInstanceUID === SOPInstanceUID) + return ( + ds.images && ds.images.some(i => i.SOPInstanceUID === SOPInstanceUID) + ); }); - const imageIndex = displaySet.images.map(i => i.SOPInstanceUID).indexOf(SOPInstanceUID); + const imageIndex = displaySet.images + .map(i => i.SOPInstanceUID) + .indexOf(SOPInstanceUID); viewportGridService.setDisplaysetForViewport({ viewportIndex: viewportGrid.activeViewportIndex, displaySetInstanceUID: displaySet.displaySetInstanceUID, - imageIndex + imageIndex, }); onMeasurementItemClickHandler({ id, isActive }); @@ -177,12 +196,12 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) { case 'save': { MeasurementService.update(id, { ...measurement, - ...value + ...value, }); UINotificationService.show({ title: 'Measurements', message: 'Label updated successfully', - type: 'success' + type: 'success', }); } } @@ -199,7 +218,7 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) { noCloseButton: true, value: { label: measurement.label || '' }, body: ({ value, setValue }) => { - const onChangeHandler = (event) => { + const onChangeHandler = event => { event.persist(); setValue(value => ({ ...value, label: event.target.value })); }; @@ -227,8 +246,8 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) { { id: 'cancel', text: 'Cancel', type: 'secondary' }, { id: 'save', text: 'Save', type: 'primary' }, ], - onSubmit: onSubmitHandler - } + onSubmit: onSubmitHandler, + }, }); }; @@ -236,12 +255,20 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) { if (!isActive) { const measurements = [...displayMeasurements]; const measurement = measurements.find(m => m.id === id); - measurements.forEach(m => m.isActive = m.id !== id ? false : true); + + measurements.forEach(m => (m.isActive = m.id !== id ? false : true)); measurement.isActive = true; setDisplayMeasurements(measurements); } }; + const displayMeasurementsWithoutFindings = displayMeasurements.filter( + dm => dm.measurementType !== MeasurementService.VALUE_TYPES.POINT + ); + const additionalFindings = displayMeasurements.filter( + dm => dm.measurementType === MeasurementService.VALUE_TYPES.POINT + ); + return ( <>