diff --git a/extensions/cornerstone/src/services/CornerstoneCacheService/CornerstoneCacheService.ts b/extensions/cornerstone/src/services/CornerstoneCacheService/CornerstoneCacheService.ts index b02cc43f1..0b22d1259 100644 --- a/extensions/cornerstone/src/services/CornerstoneCacheService/CornerstoneCacheService.ts +++ b/extensions/cornerstone/src/services/CornerstoneCacheService/CornerstoneCacheService.ts @@ -84,12 +84,26 @@ class CornerstoneCacheService { invalidatedDisplaySetInstanceUID: string, dataSource, displaySetService - ) { + ): Promise { if (viewportData.viewportType === Enums.ViewportType.STACK) { - return this._getCornerstoneStackImageIds( - displaySetService.getDisplaySetByUID(invalidatedDisplaySetInstanceUID), - dataSource - ); + const displaySet = displaySetService.getDisplaySetByUID(invalidatedDisplaySetInstanceUID); + const imageIds = this._getCornerstoneStackImageIds(displaySet, dataSource); + + // remove images from the cache to be able to re-load them + imageIds.forEach(imageId => { + if (cs3DCache.getImageLoadObject(imageId)) { + cs3DCache.removeImageLoadObject(imageId); + } + }); + + return { + viewportType: Enums.ViewportType.STACK, + data: { + StudyInstanceUID: displaySet.StudyInstanceUID, + displaySetInstanceUID: invalidatedDisplaySetInstanceUID, + imageIds, + }, + }; } // Todo: grab the volume and get the id from the viewport itself diff --git a/extensions/default/src/getPTImageIdInstanceMetadata.ts b/extensions/default/src/getPTImageIdInstanceMetadata.ts index bacad3dbf..4a9e114e0 100644 --- a/extensions/default/src/getPTImageIdInstanceMetadata.ts +++ b/extensions/default/src/getPTImageIdInstanceMetadata.ts @@ -17,14 +17,14 @@ export default function getPTImageIdInstanceMetadata(imageId: string): InstanceM dicomMetaData.CorrectedImage === undefined || dicomMetaData.Units === undefined || !dicomMetaData.RadiopharmaceuticalInformationSequence || - dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadionuclideHalfLife === undefined || - dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadionuclideTotalDose === undefined || + dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideHalfLife === undefined || + dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideTotalDose === undefined || dicomMetaData.DecayCorrection === undefined || dicomMetaData.AcquisitionDate === undefined || dicomMetaData.AcquisitionTime === undefined || - (dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartDateTime === + (dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartDateTime === undefined && - dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartTime === + dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartTime === undefined) ) { throw new Error('required metadata are missing'); @@ -37,14 +37,13 @@ export default function getPTImageIdInstanceMetadata(imageId: string): InstanceM const instanceMetadata: InstanceMetadata = { CorrectedImage: dicomMetaData.CorrectedImage, Units: dicomMetaData.Units, - RadionuclideHalfLife: - dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadionuclideHalfLife, + RadionuclideHalfLife: dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideHalfLife, RadionuclideTotalDose: - dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadionuclideTotalDose, + dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideTotalDose, RadiopharmaceuticalStartDateTime: - dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartDateTime, + dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartDateTime, RadiopharmaceuticalStartTime: - dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartTime, + dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartTime, DecayCorrection: dicomMetaData.DecayCorrection, PatientWeight: dicomMetaData.PatientWeight, SeriesDate: dicomMetaData.SeriesDate,