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