From 2e96371b0631a9e5d411b0142300708ab8ba7d27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20H=2E=20K=C3=B6hler?= Date: Tue, 29 Oct 2024 20:14:34 -0300 Subject: [PATCH] fix(ui): display error in ui while loading seg (#4433) --- .../src/getSopClassHandlerModule.ts | 17 +++++++++++------ .../CornerstoneCacheService.ts | 13 ++++++++++++- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.ts b/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.ts index 96952db30..8aaf074e0 100644 --- a/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.ts +++ b/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.ts @@ -122,12 +122,17 @@ function _load( // and also return the same promise to any other callers. loadPromises[SOPInstanceUID] = new Promise(async (resolve, reject) => { if (!segDisplaySet.segments || Object.keys(segDisplaySet.segments).length === 0) { - await _loadSegments({ - extensionManager, - servicesManager, - segDisplaySet, - headers, - }); + try { + await _loadSegments({ + extensionManager, + servicesManager, + segDisplaySet, + headers, + }); + } catch (e) { + segDisplaySet.loading = false; + return reject(e); + } } const suppressEvents = true; diff --git a/extensions/cornerstone/src/services/CornerstoneCacheService/CornerstoneCacheService.ts b/extensions/cornerstone/src/services/CornerstoneCacheService/CornerstoneCacheService.ts index 422c884a9..7da7c504b 100644 --- a/extensions/cornerstone/src/services/CornerstoneCacheService/CornerstoneCacheService.ts +++ b/extensions/cornerstone/src/services/CornerstoneCacheService/CornerstoneCacheService.ts @@ -242,7 +242,18 @@ class CornerstoneCacheService { if (displaySet.load && displaySet.load instanceof Function) { const { userAuthenticationService } = this.servicesManager.services; const headers = userAuthenticationService.getAuthorizationHeader(); - await displaySet.load({ headers }); + + try { + await displaySet.load({ headers }); + } catch (e) { + const { uiNotificationService } = this.servicesManager.services; + uiNotificationService.show({ + title: 'Error loading displaySet', + message: e.message, + type: 'error', + }); + console.error(e); + } // Parametric maps have a `load` method but it should not be loaded in the // same way as SEG and RTSTRUCT but like a normal volume