\n {getCornerstoneViewport()}\n
\n {viewportDialogState.viewportIndex === viewportIndex && (\n \n )}\n
\n
\n >\n );\n}\n\nTrackedCornerstoneViewport.propTypes = {\n displaySets: PropTypes.arrayOf(PropTypes.object.isRequired).isRequired,\n viewportIndex: PropTypes.number.isRequired,\n dataSource: PropTypes.object,\n children: PropTypes.node,\n customProps: PropTypes.object,\n};\n\nTrackedCornerstoneViewport.defaultProps = {\n customProps: {},\n};\n\nfunction _getNextMeasurementUID(\n direction,\n servicesManager,\n trackedMeasurementId,\n trackedMeasurements\n) {\n const { measurementService, viewportGridService } = servicesManager.services;\n const measurements = measurementService.getMeasurements();\n\n const { activeViewportIndex, viewports } = viewportGridService.getState();\n const {\n displaySetInstanceUIDs: activeViewportDisplaySetInstanceUIDs,\n } = viewports[activeViewportIndex];\n\n const { trackedSeries } = trackedMeasurements.context;\n\n // Get the potentially trackable measurements for the series of the\n // active viewport.\n // The measurements to jump between are the same\n // regardless if this series is tracked or not.\n\n const filteredMeasurements = measurements.filter(\n m =>\n trackedSeries.includes(m.referenceSeriesUID) &&\n activeViewportDisplaySetInstanceUIDs.includes(m.displaySetInstanceUID)\n );\n\n if (!filteredMeasurements.length) {\n // No measurements on this series.\n return;\n }\n\n const measurementCount = filteredMeasurements.length;\n\n const uids = filteredMeasurements.map(fm => fm.uid);\n let measurementIndex = uids.findIndex(uid => uid === trackedMeasurementId);\n\n if (measurementIndex === -1) {\n // Not tracking a measurement, or previous measurement now deleted, revert to 0.\n measurementIndex = 0;\n } else {\n if (direction === 'left') {\n measurementIndex--;\n\n if (measurementIndex < 0) {\n measurementIndex = measurementCount - 1;\n }\n } else if (direction === 'right') {\n measurementIndex++;\n\n if (measurementIndex === measurementCount) {\n measurementIndex = 0;\n }\n }\n }\n\n const newTrackedMeasurementId = uids[measurementIndex];\n\n return newTrackedMeasurementId;\n}\n\nfunction _getStatusComponent(isTracked) {\n const trackedIcon = isTracked ? 'status-tracked' : 'status-untracked';\n\n return (\n