2020-05-12 14:49:32 +02:00
|
|
|
// import { api } from 'dicomweb-client';
|
|
|
|
|
// import DICOMWeb from '../../../DICOMWeb/';
|
2020-05-11 18:56:46 +02:00
|
|
|
import RetrieveMetadataLoader from './retrieveMetadataLoader';
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Class for sync load of study metadata.
|
|
|
|
|
* It inherits from RetrieveMetadataLoader
|
|
|
|
|
*
|
|
|
|
|
* A list of loaders (getLoaders) can be created so, it will be applied a fallback load strategy.
|
|
|
|
|
* I.e Retrieve metadata using all loaders possibilities.
|
|
|
|
|
*/
|
|
|
|
|
export default class RetrieveMetadataLoaderSync extends RetrieveMetadataLoader {
|
|
|
|
|
getOptions() {
|
|
|
|
|
const { studyInstanceUID, filters } = this;
|
|
|
|
|
|
|
|
|
|
const options = {
|
|
|
|
|
studyInstanceUID,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const { seriesInstanceUID } = filters;
|
|
|
|
|
if (seriesInstanceUID) {
|
|
|
|
|
options['seriesInstanceUID'] = seriesInstanceUID;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return options;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @returns {Array} Array of loaders. To be consumed as queue
|
|
|
|
|
*/
|
|
|
|
|
*getLoaders() {
|
|
|
|
|
const loaders = [];
|
2023-09-01 16:19:39 -04:00
|
|
|
const { studyInstanceUID, filters: { seriesInstanceUID } = {}, client } = this;
|
2020-05-11 18:56:46 +02:00
|
|
|
|
|
|
|
|
if (seriesInstanceUID) {
|
|
|
|
|
loaders.push(
|
|
|
|
|
client.retrieveSeriesMetadata.bind(client, {
|
|
|
|
|
studyInstanceUID,
|
|
|
|
|
seriesInstanceUID,
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-01 16:19:39 -04:00
|
|
|
loaders.push(client.retrieveStudyMetadata.bind(client, { studyInstanceUID }));
|
2020-05-11 18:56:46 +02:00
|
|
|
|
|
|
|
|
yield* loaders;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async load(preLoadData) {
|
|
|
|
|
const loaders = this.getLoaders();
|
|
|
|
|
const result = this.runLoaders(loaders);
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async posLoad(loadData) {
|
2022-07-27 16:39:04 +00:00
|
|
|
return loadData;
|
2020-05-11 18:56:46 +02:00
|
|
|
}
|
|
|
|
|
}
|