From e0de335d0c2aa84e682bbe3079ccf20e74b2b91c Mon Sep 17 00:00:00 2001 From: Adithyan Dinesh Date: Fri, 20 Sep 2024 14:40:07 +0530 Subject: [PATCH 1/2] Adding the Range header to the request if FileOffsets are included in the metadata --- extensions/cornerstone/src/initWADOImageLoader.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/extensions/cornerstone/src/initWADOImageLoader.js b/extensions/cornerstone/src/initWADOImageLoader.js index 622a4262574..629edc0bb47 100644 --- a/extensions/cornerstone/src/initWADOImageLoader.js +++ b/extensions/cornerstone/src/initWADOImageLoader.js @@ -52,7 +52,7 @@ export default function initWADOImageLoader( use16BitDataType: Boolean(appConfig.useNorm16Texture) || Boolean(appConfig.preferSizeOverAccuracy), }, - beforeSend: function (xhr) { + beforeSend: function (xhr, imageId) { //TODO should be removed in the future and request emitted by DicomWebDataSource const sourceConfig = extensionManager.getActiveDataSource()?.[0].getConfig() ?? {}; const headers = userAuthenticationService.getAuthorizationHeader(); @@ -70,6 +70,15 @@ export default function initWADOImageLoader( Object.assign(xhrRequestHeaders, headers); } + const instance = cornerstone.metaData.get('instance', imageId); + const { ExtendedOffsetTable, ExtendedOffsetTableLengths, FileOffsets } = instance; + if (FileOffsets && !(ExtendedOffsetTable && ExtendedOffsetTableLengths)) { + // A seperate logic is used if offset tables are present in cornerstone3D. + const { startByte, endByte } = instance.FileOffsets; + const rangeHeader = { Range: `bytes=${startByte}-${endByte}` }; + Object.assign(xhrRequestHeaders, rangeHeader); + } + return xhrRequestHeaders; }, errorInterceptor: error => { From 0fc5948d879e03af69ff322302514172741190ee Mon Sep 17 00:00:00 2001 From: Adithyan Dinesh Date: Tue, 1 Oct 2024 18:02:40 +0530 Subject: [PATCH 2/2] Changed the usage of ExtendedOffsetTable to CustomOffsetTable --- extensions/cornerstone/src/initWADOImageLoader.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/cornerstone/src/initWADOImageLoader.js b/extensions/cornerstone/src/initWADOImageLoader.js index 629edc0bb47..73a99ab8f9a 100644 --- a/extensions/cornerstone/src/initWADOImageLoader.js +++ b/extensions/cornerstone/src/initWADOImageLoader.js @@ -71,8 +71,8 @@ export default function initWADOImageLoader( } const instance = cornerstone.metaData.get('instance', imageId); - const { ExtendedOffsetTable, ExtendedOffsetTableLengths, FileOffsets } = instance; - if (FileOffsets && !(ExtendedOffsetTable && ExtendedOffsetTableLengths)) { + const { CustomOffsetTable, CustomOffsetTableLengths, FileOffsets } = instance; + if (FileOffsets && !(CustomOffsetTable && CustomOffsetTableLengths)) { // A seperate logic is used if offset tables are present in cornerstone3D. const { startByte, endByte } = instance.FileOffsets; const rangeHeader = { Range: `bytes=${startByte}-${endByte}` };