From d266b944c20fe0a942ae12af235e54613d0d97b0 Mon Sep 17 00:00:00 2001 From: James Petts Date: Tue, 30 Jun 2020 11:41:50 +0100 Subject: [PATCH] [OHIF-192] - Viewport letter only if using multiple viewport layout. (#1822) * Viewport letter only in multi-viewport layout. * If SliceThickness not available print N/A --- .../dicom-sr/src/OHIFCornerstoneSRViewport.js | 13 +- .../PanelStudyBrowserTracking.jsx | 5 +- .../viewports/TrackedCornerstoneViewport.js | 22 ++- .../ViewportActionBar/ViewportActionBar.jsx | 130 ++++++++++-------- 4 files changed, 101 insertions(+), 69 deletions(-) diff --git a/extensions/dicom-sr/src/OHIFCornerstoneSRViewport.js b/extensions/dicom-sr/src/OHIFCornerstoneSRViewport.js index af3bbc10c..b5b7caaf2 100644 --- a/extensions/dicom-sr/src/OHIFCornerstoneSRViewport.js +++ b/extensions/dicom-sr/src/OHIFCornerstoneSRViewport.js @@ -250,12 +250,19 @@ function OHIFCornerstoneSRViewport({ seriesDescription: SeriesDescription, modality: Modality, patientInformation: { - patientName: PatientName ? OHIF.utils.formatPN(PatientName.Alphabetic) : '', + patientName: PatientName + ? OHIF.utils.formatPN(PatientName.Alphabetic) + : '', patientSex: PatientSex || '', patientAge: PatientAge || '', MRN: PatientID || '', - thickness: `${SliceThickness}mm`, - spacing: PixelSpacing && PixelSpacing.length ? `${PixelSpacing[0].toFixed(2)}mm x ${PixelSpacing[1].toFixed(2)}mm` : '', + thickness: SliceThickness ? `${SliceThickness.toFixed(2)}mm` : '', + spacing: + PixelSpacing && PixelSpacing.length + ? `${PixelSpacing[0].toFixed(2)}mm x ${PixelSpacing[1].toFixed( + 2 + )}mm` + : '', scanner: ManufacturerModelName || '', }, }} diff --git a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.jsx b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.jsx index 438ad0d06..a3ef5f777 100644 --- a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.jsx +++ b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.jsx @@ -291,8 +291,11 @@ function _mapDisplaySets( const firstViewportIndexWithMatchingDisplaySetUid = viewports.findIndex( vp => vp.displaySetInstanceUID === ds.displaySetInstanceUID ); + const viewportIdentificator = - _viewportLabels[firstViewportIndexWithMatchingDisplaySetUid] || ''; + viewports.length > 1 + ? _viewportLabels[firstViewportIndexWithMatchingDisplaySetUid] + : ''; const array = componentType === 'thumbnailTracked' diff --git a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js index 55eb3ef29..3665fd819 100644 --- a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js +++ b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.js @@ -225,20 +225,25 @@ function TrackedCornerstoneViewport({ PatientAge, SliceThickness, PixelSpacing, - ManufacturerModelName + ManufacturerModelName, } = displaySet.images[0]; if (trackedSeries.includes(SeriesInstanceUID) !== isTracked) { setIsTracked(!isTracked); } + const label = + viewports.length > 1 + ? _viewportLabels[firstViewportIndexWithMatchingDisplaySetUid] + : ''; + return ( <> alert(`Series ${direction}`)} showNavArrows={viewportIndex === activeViewportIndex} studyData={{ - label: _viewportLabels[firstViewportIndexWithMatchingDisplaySetUid], + label, isTracked: trackedSeries.includes(SeriesInstanceUID), isLocked: false, studyDate: formatDate(SeriesDate), // TODO: This is series date. Is that ok? @@ -246,12 +251,19 @@ function TrackedCornerstoneViewport({ seriesDescription: SeriesDescription, modality: Modality, patientInformation: { - patientName: PatientName ? OHIF.utils.formatPN(PatientName.Alphabetic) : '', + patientName: PatientName + ? OHIF.utils.formatPN(PatientName.Alphabetic) + : '', patientSex: PatientSex || '', patientAge: PatientAge || '', MRN: PatientID || '', - thickness: `${SliceThickness}mm`, - spacing: PixelSpacing && PixelSpacing.length ? `${PixelSpacing[0].toFixed(2)}mm x ${PixelSpacing[1].toFixed(2)}mm` : '', + thickness: SliceThickness ? `${SliceThickness.toFixed(2)}mm` : '', + spacing: + PixelSpacing && PixelSpacing.length + ? `${PixelSpacing[0].toFixed(2)}mm x ${PixelSpacing[1].toFixed( + 2 + )}mm` + : '', scanner: ManufacturerModelName || '', }, }} diff --git a/platform/ui/src/components/ViewportActionBar/ViewportActionBar.jsx b/platform/ui/src/components/ViewportActionBar/ViewportActionBar.jsx index 12f052e76..d901edb6e 100644 --- a/platform/ui/src/components/ViewportActionBar/ViewportActionBar.jsx +++ b/platform/ui/src/components/ViewportActionBar/ViewportActionBar.jsx @@ -39,7 +39,7 @@ const ViewportActionBar = ({ scanner, } = patientInformation; - const onPatientInfoClick = () => setShowPatientInfo(!showPatientInfo) + const onPatientInfoClick = () => setShowPatientInfo(!showPatientInfo); const renderIconStatus = () => { if (modality === 'SR') { @@ -64,26 +64,26 @@ const ViewportActionBar = ({ {!isTracked ? ( ) : ( - -
- -
-
- - Series is + +
+ +
+
+ + Series is tracked and can be viewed
in the measurement panel
-
- } - > - -
- )} + + } + > + + + )} ); }; @@ -196,54 +196,64 @@ function PatientInfo({ isSticky isDisabled={!isOpen} position="bottom-right" - content={isOpen && ( -
-
- -
-
- - {patientName} - -
-
- Sex - - {patientSex} - -
-
- Age - - {patientAge} - -
-
- MRN - {MRN} -
+ content={ + isOpen && ( +
+
+
-
-
- - Thickness - - - {thickness} - +
+ + {patientName} + +
+
+ Sex + + {patientSex} + +
+
+ Age + + {patientAge} + +
+
+ MRN + {MRN} +
-
- Spacing - {spacing} -
-
- Scanner - {scanner} +
+
+ + Thickness + + + {thickness ? thickness : 'N/A'} + +
+
+ + Spacing + + + {spacing} + +
+
+ + Scanner + + + {scanner} + +
-
- )} + ) + } >