fix(stack-invalidation): Resolve stack invalidation if metadata invalidated (#4147)

This commit is contained in:
Alireza 2024-05-21 11:21:41 -04:00 committed by GitHub
parent d4b09738fb
commit 70bb6c4626
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 27 additions and 14 deletions

View File

@ -84,12 +84,26 @@ class CornerstoneCacheService {
invalidatedDisplaySetInstanceUID: string,
dataSource,
displaySetService
) {
): Promise<VolumeViewportData | StackViewportData> {
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

View File

@ -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,