2020-05-21 16:24:35 -04:00
|
|
|
import { DicomMetadataStore } from '@ohif/core';
|
|
|
|
|
// TODO: Use above to inject so dependent datasources don't need to import or
|
|
|
|
|
// depend on @ohif/core?
|
2020-05-11 18:56:46 +02:00
|
|
|
|
2020-05-07 10:56:26 -03:00
|
|
|
/**
|
|
|
|
|
* Factory function that creates a new "Web API" data source.
|
|
|
|
|
* A "Web API" data source is any source that fetches data over
|
|
|
|
|
* HTTP. This function serves as an "adapter" to wrap those calls
|
|
|
|
|
* so that all "Web API" data sources have the same interface and can
|
|
|
|
|
* be used interchangeably.
|
|
|
|
|
*
|
|
|
|
|
* It's worth noting that a single implementation of this interface
|
|
|
|
|
* can define different underlying sources for "read" and "write" operations.
|
|
|
|
|
*/
|
2020-05-21 16:24:35 -04:00
|
|
|
function create({
|
|
|
|
|
query,
|
|
|
|
|
retrieve,
|
|
|
|
|
retrieveSeriesMetadata,
|
|
|
|
|
getImageIdsForDisplaySet,
|
|
|
|
|
}) {
|
2020-05-07 10:56:26 -03:00
|
|
|
const defaultQuery = {
|
|
|
|
|
studies: {
|
|
|
|
|
/**
|
|
|
|
|
* @param {string} params.patientName
|
|
|
|
|
* @param {string} params.mrn
|
|
|
|
|
* @param {object} params.studyDate
|
|
|
|
|
* @param {string} params.description
|
|
|
|
|
* @param {string} params.modality
|
|
|
|
|
* @param {string} params.accession
|
|
|
|
|
* @param {string} params.sortBy
|
|
|
|
|
* @param {string} params.sortDirection -
|
|
|
|
|
* @param {number} params.page
|
|
|
|
|
* @param {number} params.resultsPerPage
|
|
|
|
|
*/
|
|
|
|
|
mapParams: params => params,
|
|
|
|
|
requestResults: () => {},
|
|
|
|
|
processResults: results => results,
|
|
|
|
|
},
|
|
|
|
|
series: {},
|
|
|
|
|
instances: {},
|
|
|
|
|
};
|
|
|
|
|
|
2020-05-11 18:56:46 +02:00
|
|
|
const defaultRetrieve = {
|
|
|
|
|
series: {},
|
|
|
|
|
};
|
2020-05-07 10:56:26 -03:00
|
|
|
|
|
|
|
|
return {
|
2020-05-12 16:00:27 +02:00
|
|
|
query: query || defaultQuery,
|
|
|
|
|
retrieve: retrieve || defaultRetrieve,
|
|
|
|
|
getImageIdsForDisplaySet,
|
2020-05-21 16:24:35 -04:00
|
|
|
retrieveSeriesMetadata,
|
2020-05-08 00:29:57 -04:00
|
|
|
// then go get all series level metadata.
|
|
|
|
|
// Store this in the DICOM MetadataStore.
|
2020-05-07 10:56:26 -03:00
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
2020-05-08 00:29:57 -04:00
|
|
|
const IWebApiDataSource = {
|
|
|
|
|
create,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default IWebApiDataSource;
|