From f6fa5098744ff0058b007cf97e68d95c4b0e77c8 Mon Sep 17 00:00:00 2001 From: Bill Wallace Date: Tue, 25 Mar 2025 09:32:36 -0400 Subject: [PATCH] fix: Skip showing NaN for average pixel/max value (#4884) --- .../measurementServiceMappings/CircleROI.ts | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/CircleROI.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/CircleROI.ts index ff529602f..b9971f7ab 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/CircleROI.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/CircleROI.ts @@ -105,7 +105,8 @@ function getMappedAnnotations(annotation, displaySetService) { const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0]; const { SeriesNumber } = displaySet; - const { mean, stdDev, max, area, Modality, areaUnit, modalityUnit } = targetStats; + const { mean, stdDev, max, area, Modality, areaUnit, modalityUnit, perimeter, radiusUnit } = + targetStats; annotations.push({ SeriesInstanceUID, @@ -119,6 +120,8 @@ function getMappedAnnotations(annotation, displaySetService) { max, area, areaUnit, + perimeter, + radiusUnit, }); }); @@ -192,16 +195,22 @@ function getDisplayText(mappedAnnotations, displaySet) { const frameText = displaySet.isMultiFrame ? ` F: ${frameNumber}` : ''; // Area sometimes becomes undefined if `preventHandleOutsideImage` is off. - const roundedArea = utils.roundNumber(area || 0, 2); - displayText.primary.push(`${roundedArea} ${getDisplayUnit(areaUnit)}`); + if (!isNaN(area)) { + const roundedArea = utils.roundNumber(area || 0, 2); + displayText.primary.push(`${roundedArea} ${getDisplayUnit(areaUnit)}`); + } // Todo: we need a better UI for displaying all these information mappedAnnotations.forEach(mappedAnnotation => { - const { unit, max, SeriesNumber } = mappedAnnotation; + const { unit, perimeter, radiusUnit, max, SeriesNumber } = mappedAnnotation; - const maxStr = getStatisticDisplayString(max, unit, 'max'); - - displayText.primary.push(maxStr); + if (!isNaN(max)) { + const maxStr = getStatisticDisplayString(max, unit, 'max'); + displayText.primary.push(maxStr); + } else if (perimeter && !isNaN(perimeter)) { + const perimeterStr = getStatisticDisplayString(perimeter, radiusUnit, 'perimeter'); + displayText.primary.push(perimeterStr); + } displayText.secondary.push(`S: ${SeriesNumber}${instanceText}${frameText}`); });