accept both accept header and transfer syntax uid

This commit is contained in:
Salim Kanoun committed 2023-06-05 22:32:29 +02:00
1 parent 10e399d7b8
commit 50d2640876
5 files changed
+84 -71

No files matched your search

@@ -5,7 +5,7 @@ import dicomImageLoader, {
webWorkerManager,
} from '@cornerstonejs/dicom-image-loader';
import dicomParser from 'dicom-parser';
import { errorHandler } from '@ohif/core';
import { errorHandler, utils } from '@ohif/core';
const { registerVolumeLoader } = volumeLoader;
@@ -55,14 +55,19 @@ export default function initWADOImageLoader(
// we should set this flag to false.
convertFloatPixelDataToInt: false,
},
beforeSend: function (xhr) {
beforeSend: function(xhr) {
//TODO should be removed in the future and request emitted by DicomWebDataSource
const sourceConfig = extensionManager.getActiveDataSource()?.[0].getConfig() ?? {}
const sourceConfig =
extensionManager.getActiveDataSource()?.[0].getConfig() ?? {};
const headers = userAuthenticationService.getAuthorizationHeader();
const acceptHeader = generateAcceptHeader(sourceConfig.acceptHeader, sourceConfig.omitQuotationForMultipartRequest)
const acceptHeader = utils.generateAcceptHeader(
sourceConfig.acceptHeader,
sourceConfig.requestTransferSyntaxUID,
sourceConfig.omitQuotationForMultipartRequest
);
const xhrRequestHeaders = {
Accept: acceptHeader
Accept: acceptHeader,
};
if (headers) {
@@ -79,34 +84,6 @@ export default function initWADOImageLoader(
initWebWorkers(appConfig);
}
const generateAcceptHeader = (configAcceptHeader = [], omitQuotationForMultipartRequest = false) => {
let acceptHeader = []
if (configAcceptHeader.length === 0) {
acceptHeader.push('multipart/related; type=application/octet-stream')
} else {
acceptHeader = configAcceptHeader
}
if (!omitQuotationForMultipartRequest) {
//need to add quotation for each mime type of each accept entry
acceptHeader = acceptHeader.map(accept => {
let mimes = accept.split("; ")
let newMimes = mimes.map(mime => {
if (mime.startsWith('type=')) {
const quotedParam = 'type=' + '"' + mime.substring(5, mime.length) + '"'
return quotedParam
} else {
return mime
}
})
return newMimes.join(';')
})
}
return acceptHeader
}
export function destroy() {
// Note: we don't want to call .terminate on the webWorkerManager since
// that resets the config