47 lines
1.5 KiB
JavaScript
47 lines
1.5 KiB
JavaScript
import { api } from 'dicomweb-client';
|
|
import { mapParams, search, processResults } from './qido.js';
|
|
import { IWebApiDataSource } from '@ohif/core';
|
|
|
|
/**
|
|
*
|
|
* @param {string} name - Data source name
|
|
* @param {string} wadoUriRoot - Legacy? (potentially unused/replaced)
|
|
* @param {string} qidoRoot - Base URL to use for QIDO requests
|
|
* @param {string} wadoRoot - Base URL to use for WADO requests
|
|
* @param {boolean} qidoSupportsIncludeField - Whether QIDO supports the "Include" option to request additional fields in response
|
|
* @param {string} imageRengering - wadors | ? (unsure of where/how this is used)
|
|
* @param {string} thumbnailRendering - wadors | ? (unsure of where/how this is used)
|
|
* @param {bool} lazyLoadStudy - "enableStudyLazyLoad"; Request series meta async instead of blocking
|
|
*/
|
|
function createDicomWebApi(dicomWebConfig) {
|
|
const { qidoRoot } = dicomWebConfig;
|
|
const config = {
|
|
url: qidoRoot,
|
|
// headers: DICOMWeb.getAuthorizationHeader(server),
|
|
};
|
|
|
|
const dicomWebClient = new api.DICOMwebClient(config);
|
|
|
|
return IWebApiDataSource.create({
|
|
query: {
|
|
studies: {
|
|
mapParams: mapParams.bind(),
|
|
search: search.bind(undefined, dicomWebClient, null, null),
|
|
processResults: processResults.bind(),
|
|
},
|
|
instances: {
|
|
search: (studyInstanceUid, queryParamaters) =>
|
|
search.call(
|
|
undefined,
|
|
dicomWebClient,
|
|
studyInstanceUid,
|
|
null,
|
|
queryParamaters
|
|
),
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
export { createDicomWebApi };
|