Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | import RetrieveMetadata from '../wado/retrieveMetadata'; /** * Retrieve metadata filtered. * * @param {*} dicomWebClient The DICOMWebClient instance to be used for series load * @param {*} StudyInstanceUID The UID of the Study to be retrieved * @param {*} enableStudyLazyLoad Whether the study metadata should be loaded asynchronously * @param {object} filters Object containing filters to be applied on retrieve metadata process * @param {string} [filters.seriesInstanceUID] Series instance uid to filter results against * @param {function} [sortCriteria] Sort criteria function * @param {function} [sortFunction] Sort function * * @returns */ function retrieveMetadataFiltered( dicomWebClient, StudyInstanceUID, enableStudyLazyLoad, filters, sortCriteria, sortFunction ) { const { seriesInstanceUID } = filters; return new Promise((resolve, reject) => { const promises = seriesInstanceUID.map(uid => { const seriesSpecificFilters = Object.assign({}, filters, { seriesInstanceUID: uid, }); return RetrieveMetadata( dicomWebClient, StudyInstanceUID, enableStudyLazyLoad, seriesSpecificFilters, sortCriteria, sortFunction ); }); if (enableStudyLazyLoad === true) { Promise.all(promises).then(results => { const aggregatedResult = { preLoadData: [], promises: [] }; results.forEach(({ preLoadData, promises }) => { aggregatedResult.preLoadData = aggregatedResult.preLoadData.concat(preLoadData); aggregatedResult.promises = aggregatedResult.promises.concat(promises); }); resolve(aggregatedResult); }, reject); } else { Promise.all(promises).then(results => { resolve(results.flat()); }, reject); } }); } export default retrieveMetadataFiltered; |