diff --git a/extensions/dicom-segmentation/src/index.js b/extensions/dicom-segmentation/src/index.js index a7d96fa590..5deac6dce6 100644 --- a/extensions/dicom-segmentation/src/index.js +++ b/extensions/dicom-segmentation/src/index.js @@ -32,7 +32,6 @@ export default { const ExtendedSegmentationPanel = props => { const { activeContexts } = api.hooks.useAppContext(); - const onDisplaySetLoadFailureHandler = error => { LoggerService.error({ error, message: error.message }); UINotificationService.show({ diff --git a/platform/core/src/DICOMSR/SCOORD3D/utils/getReferencedImagesList.js b/platform/core/src/DICOMSR/SCOORD3D/utils/getReferencedImagesList.js index 2b08147163..a76c8a926b 100644 --- a/platform/core/src/DICOMSR/SCOORD3D/utils/getReferencedImagesList.js +++ b/platform/core/src/DICOMSR/SCOORD3D/utils/getReferencedImagesList.js @@ -7,10 +7,12 @@ const getReferencedImagesList = ImagingMeasurementReportContentSequence => { const ImageLibrary = ImagingMeasurementReportContentSequence.find( item => item.ConceptNameCodeSequence.CodeValue === - CodeNameCodeSequenceValues.ImageLibrary + CodeNameCodeSequenceValues.ImageLibrary || + item.ConceptNameCodeSequence.CodeValue === + CodeNameCodeSequenceValues.ImagingMeasurements ); - if (!ImageLibrary.ContentSequence) { + if (!ImageLibrary || !ImageLibrary.ContentSequence) { return referencedImages; } @@ -19,9 +21,15 @@ const getReferencedImagesList = ImagingMeasurementReportContentSequence => { ).find( item => item.ConceptNameCodeSequence.CodeValue === - CodeNameCodeSequenceValues.ImageLibraryGroup + CodeNameCodeSequenceValues.ImageLibraryGroup || + item.ConceptNameCodeSequence.CodeValue === + CodeNameCodeSequenceValues.MeasurementGroup ); + if (!ImageLibraryGroup || !ImageLibraryGroup.ContentSequence) { + return referencedImages; + } + getSequenceAsArray(ImageLibraryGroup.ContentSequence).forEach(item => { const { ReferencedSOPSequence } = item; if (ReferencedSOPSequence) { diff --git a/platform/core/src/DICOMSR/parseDicomStructuredReport.js b/platform/core/src/DICOMSR/parseDicomStructuredReport.js index b4f9298581..5e754744e2 100644 --- a/platform/core/src/DICOMSR/parseDicomStructuredReport.js +++ b/platform/core/src/DICOMSR/parseDicomStructuredReport.js @@ -21,16 +21,32 @@ const parseDicomStructuredReport = ( displaySets, external ) => { - if (external && external.servicesManager) { - parseSCOORD3D({ servicesManager: external.servicesManager, displaySets }); - } - // Get the dicom data as an Object const dicomData = dcmjs.data.DicomMessage.readFile(part10SRArrayBuffer); const dataset = dcmjs.data.DicomMetaDictionary.naturalizeDataset( dicomData.dict ); + const { + LoggerService, + UINotificationService, + } = external.servicesManager.services; + if (external && external.servicesManager) { + try { + parseSCOORD3D({ servicesManager: external.servicesManager, displaySets }); + } catch (error) { + const seriesDescription = dataset.SeriesDescription || ''; + LoggerService.error({ error, message: error.message }); + UINotificationService.show({ + title: `Failed to parse ${seriesDescription} SR display set`, + message: error.message, + type: 'error', + autoClose: false, + }); + return; + } + } + const { MeasurementReport } = dcmjs.adapters.Cornerstone; let storedMeasurementByToolType; @@ -38,11 +54,12 @@ const parseDicomStructuredReport = ( storedMeasurementByToolType = MeasurementReport.generateToolState(dataset); } catch (error) { const seriesDescription = dataset.SeriesDescription || ''; - LogManager.publish(LogManager.EVENTS.OnLog, { + LoggerService.error({ error, message: error.message }); + UINotificationService.show({ title: `Failed to parse ${seriesDescription} measurement report`, - type: 'warning', - message: error.message || '', - notify: true, + message: error.message, + type: 'error', + autoClose: false, }); return; }