ohif-viewer/extensions/default/src/DicomWebDataSource/index.js
2020-05-15 13:01:25 +01:00

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 };