From 6e65e7eaf520734c6f144e878ea508e042d83b79 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Tue, 16 Jun 2020 00:56:54 -0400 Subject: [PATCH] Conditionally show left/right and userinfo for active viewport --- .../viewports/TrackedCornerstoneViewport.js | 7 +- .../ViewportActionBar/ViewportActionBar.jsx | 212 ++++++++++-------- 2 files changed, 127 insertions(+), 92 deletions(-) diff --git a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js index 003440c8c..327c49a77 100644 --- a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js +++ b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js @@ -27,7 +27,10 @@ function TrackedCornerstoneViewport({ viewportIndex, }) { const [trackedMeasurements] = useTrackedMeasurements(); - const [{ viewports }, dispatchViewportGrid] = useViewportGrid(); + const [ + { activeViewportIndex, viewports }, + dispatchViewportGrid, + ] = useViewportGrid(); // viewportIndex, onSubmit const [viewportDialogState, viewportDialogApi] = useViewportDialog(); const [viewportData, setViewportData] = useState(null); @@ -132,6 +135,8 @@ function TrackedCornerstoneViewport({ <> alert(`Series ${direction}`)} + showPatientInfo={viewportIndex === activeViewportIndex} + showNavArrows={viewportIndex === activeViewportIndex} studyData={{ label: _viewportLabels[firstViewportIndexWithMatchingDisplaySetUid], isTracked: trackedSeries.includes(SeriesInstanceUID), diff --git a/platform/ui/src/components/ViewportActionBar/ViewportActionBar.jsx b/platform/ui/src/components/ViewportActionBar/ViewportActionBar.jsx index 139fe9927..9133b522c 100644 --- a/platform/ui/src/components/ViewportActionBar/ViewportActionBar.jsx +++ b/platform/ui/src/components/ViewportActionBar/ViewportActionBar.jsx @@ -10,7 +10,12 @@ const classes = { row: 'flex flex-col ml-4', }; -const ViewportActionBar = ({ studyData, onSeriesChange }) => { +const ViewportActionBar = ({ + studyData, + showNavArrows, + showPatientInfo, + onSeriesChange, +}) => { const { label, isTracked, @@ -106,102 +111,47 @@ const ViewportActionBar = ({ studyData, onSeriesChange }) => { -
- - - - -
-
- -
- -
-
- - {patientName} - -
-
- Sex - - {patientSex} - -
-
- Age - - {patientAge} - -
-
- MRN - {MRN} -
-
-
-
- - Thickness - - - {thickness} - -
-
- - Spacing - - - {spacing} - -
-
- - Scanner - - - {scanner} - -
-
-
-
- } - > -
-
- - -
-
- - + {showNavArrows && ( +
+ + + + +
+ )} + {showPatientInfo && ( +
+ +
+ )} ); }; ViewportActionBar.propTypes = { onSeriesChange: PropTypes.func.isRequired, + showNavArrows: PropTypes.bool, + showPatientInfo: PropTypes.bool, studyData: PropTypes.shape({ label: PropTypes.string.isRequired, isTracked: PropTypes.bool.isRequired, @@ -222,4 +172,84 @@ ViewportActionBar.propTypes = { }).isRequired, }; +ViewportActionBar.defaultProps = { + showNavArrows: true, + showPatientInfo: true, +}; + +function PatientInfo({ + patientName, + patientSex, + patientAge, + MRN, + thickness, + spacing, + scanner, +}) { + return ( + +
+ +
+
+ + {patientName} + +
+
+ Sex + + {patientSex} + +
+
+ Age + + {patientAge} + +
+
+ MRN + {MRN} +
+
+
+
+ + Thickness + + + {thickness} + +
+
+ Spacing + {spacing} +
+
+ Scanner + {scanner} +
+
+
+ + } + > +
+
+ + +
+
+
+ ); +} + export default ViewportActionBar;