WIP (not tested yet)

This commit is contained in:
Salim Kanoun 2023-06-20 09:34:20 +00:00
parent ad3ef3e8ef
commit fa73a458bd

View File

@ -67,26 +67,35 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
const dicomWebConfigCopy = JSON.parse(JSON.stringify(dicomWebConfig)); const dicomWebConfigCopy = JSON.parse(JSON.stringify(dicomWebConfig));
//Generate accept header depending on config params const getAuthrorizationHeader = () => {
let formattedAcceptHeader = utils.generateAcceptHeader( const xhrRequestHeaders = {};
acceptHeader, const authHeaders = userAuthenticationService.getAuthorizationHeader();
requestTransferSyntaxUID, if (authHeaders && authHeaders.Authorization) {
omitQuotationForMultipartRequest xhrRequestHeaders.Authorization = authHeaders.Authorization;
); }
return xhrRequestHeaders;
};
const authHeaders = userAuthenticationService.getAuthorizationHeader(); const generateWadoHeader = () => {
let baseHeader = getAuthrorizationHeader();
//Generate accept header depending on config params
let formattedAcceptHeader = utils.generateAcceptHeader(
acceptHeader,
requestTransferSyntaxUID,
omitQuotationForMultipartRequest
);
const xhrRequestHeaders = {}; return {
...baseHeader,
if (authHeaders && authHeaders.Authorization) { Accept: formattedAcceptHeader,
xhrRequestHeaders.Authorization = authHeaders.Authorization; };
} };
const qidoConfig = { const qidoConfig = {
url: qidoRoot, url: qidoRoot,
staticWado, staticWado,
singlepart, singlepart,
headers: xhrRequestHeaders, headers: getAuthrorizationHeader(),
errorInterceptor: errorHandler.getHTTPErrorHandler(), errorInterceptor: errorHandler.getHTTPErrorHandler(),
}; };
@ -94,10 +103,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
url: wadoRoot, url: wadoRoot,
staticWado, staticWado,
singlepart, singlepart,
headers: { headers: generateWadoHeader(),
...xhrRequestHeaders,
Accept: formattedAcceptHeader,
},
errorInterceptor: errorHandler.getHTTPErrorHandler(), errorInterceptor: errorHandler.getHTTPErrorHandler(),
}; };
@ -131,6 +137,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
studies: { studies: {
mapParams: mapParams.bind(), mapParams: mapParams.bind(),
search: async function(origParams) { search: async function(origParams) {
qidoDicomWebClient.headers = getAuthrorizationHeader();
const { studyInstanceUid, seriesInstanceUid, ...mappedParams } = const { studyInstanceUid, seriesInstanceUid, ...mappedParams } =
mapParams(origParams, { mapParams(origParams, {
supportsFuzzyMatching, supportsFuzzyMatching,
@ -151,6 +158,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
series: { series: {
// mapParams: mapParams.bind(), // mapParams: mapParams.bind(),
search: async function(studyInstanceUid) { search: async function(studyInstanceUid) {
qidoDicomWebClient.headers = getAuthrorizationHeader();
const results = await seriesInStudy( const results = await seriesInStudy(
qidoDicomWebClient, qidoDicomWebClient,
studyInstanceUid studyInstanceUid
@ -162,6 +170,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
}, },
instances: { instances: {
search: (studyInstanceUid, queryParameters) => { search: (studyInstanceUid, queryParameters) => {
qidoDicomWebClient.headers = getAuthrorizationHeader();
qidoSearch.call( qidoSearch.call(
undefined, undefined,
qidoDicomWebClient, qidoDicomWebClient,
@ -188,6 +197,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
return getDirectURL({ wadoRoot, singlepart }, params); return getDirectURL({ wadoRoot, singlepart }, params);
}, },
bulkDataURI: async ({ StudyInstanceUID, BulkDataURI }) => { bulkDataURI: async ({ StudyInstanceUID, BulkDataURI }) => {
qidoDicomWebClient.headers = getAuthrorizationHeader();
const options = { const options = {
multipart: false, multipart: false,
BulkDataURI, BulkDataURI,
@ -235,12 +245,12 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
store: { store: {
dicom: async (dataset, request) => { dicom: async (dataset, request) => {
wadoDicomWebClient.headers = generateWadoHeader();
if (dataset instanceof ArrayBuffer) { if (dataset instanceof ArrayBuffer) {
const options = { const options = {
datasets: [dataset], datasets: [dataset],
request, request,
}; };
await wadoDicomWebClient.storeInstances(options); await wadoDicomWebClient.storeInstances(options);
} else { } else {
const meta = { const meta = {
@ -278,7 +288,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
madeInClient madeInClient
) => { ) => {
const enableStudyLazyLoad = false; const enableStudyLazyLoad = false;
wadoDicomWebClient.headers = generateWadoHeader();
// data is all SOPInstanceUIDs // data is all SOPInstanceUIDs
const data = await retrieveStudyMetadata( const data = await retrieveStudyMetadata(
wadoDicomWebClient, wadoDicomWebClient,
@ -349,6 +359,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
madeInClient = false madeInClient = false
) => { ) => {
const enableStudyLazyLoad = true; const enableStudyLazyLoad = true;
wadoDicomWebClient.headers = generateWadoHeader();
// Get Series // Get Series
const { const {
preLoadData: seriesSummaryMetadata, preLoadData: seriesSummaryMetadata,