From 8dde2237a2c1123fc448ae8b68e2f59af376b294 Mon Sep 17 00:00:00 2001 From: Ghadeer Albattarni <165973963+GhadeerAlbattarni@users.noreply.github.com> Date: Tue, 9 Dec 2025 17:20:11 -0500 Subject: [PATCH] fix(seg-viewport): add guard for missing reference display set handler to prevent viewport crash (#5618) --- .../src/viewports/OHIFCornerstoneSEGViewport.tsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/extensions/cornerstone-dicom-seg/src/viewports/OHIFCornerstoneSEGViewport.tsx b/extensions/cornerstone-dicom-seg/src/viewports/OHIFCornerstoneSEGViewport.tsx index c492b20fe..4cc6edcc3 100644 --- a/extensions/cornerstone-dicom-seg/src/viewports/OHIFCornerstoneSEGViewport.tsx +++ b/extensions/cornerstone-dicom-seg/src/viewports/OHIFCornerstoneSEGViewport.tsx @@ -60,15 +60,26 @@ function OHIFCornerstoneSEGViewport(props: withAppTypes) { // In such cases, we attempt to handle this scenario gracefully by // invoking a custom handler. Ideally, if a user tries to launch a series that isn't viewable, // (eg.: we can prompt them with an explanation and provide a link to the full study). + + // Additional guard: If no customization handler is registered for missing + // referenced display sets, skip SEG rendering to avoid a viewport crash. if (!referencedDisplaySetInstanceUID) { const missingReferenceDisplaySetHandler = customizationService.getCustomization( 'missingReferenceDisplaySetHandler' ); - const { handled } = missingReferenceDisplaySetHandler(); - if (handled) { + if (typeof missingReferenceDisplaySetHandler === 'function') { + const { handled } = missingReferenceDisplaySetHandler(); + if (handled) { + return; + } + } else { + console.log( + "No customization 'missingReferenceDisplaySetHandler' registered. Skipping SEG rendering." + ); return; } } + const referencedDisplaySet = displaySetService.getDisplaySetByUID( referencedDisplaySetInstanceUID );