fix(DicomJSONDataSource): Fix series filtering (#4092)
This commit is contained in:
parent
e341ebe9d6
commit
2de102c73c
@ -169,7 +169,7 @@ function createDicomJSONApi(dicomJsonConfig) {
|
||||
return getDirectURL(dicomJsonConfig, params);
|
||||
},
|
||||
series: {
|
||||
metadata: async ({ StudyInstanceUID, madeInClient = false, customSort } = {}) => {
|
||||
metadata: async ({ filters, StudyInstanceUID, madeInClient = false, customSort } = {}) => {
|
||||
if (!StudyInstanceUID) {
|
||||
throw new Error('Unable to query for SeriesMetadata without StudyInstanceUID');
|
||||
}
|
||||
@ -183,6 +183,18 @@ function createDicomJSONApi(dicomJsonConfig) {
|
||||
series = study.series;
|
||||
}
|
||||
|
||||
const seriesKeys = [
|
||||
'SeriesInstanceUID',
|
||||
'SeriesInstanceUIDs',
|
||||
'seriesInstanceUID',
|
||||
'seriesInstanceUIDs',
|
||||
];
|
||||
const seriesFilter = seriesKeys.find(key => filters[key]);
|
||||
if (seriesFilter) {
|
||||
const seriesUIDs = filters[seriesFilter];
|
||||
series = series.filter(s => seriesUIDs.includes(s.SeriesInstanceUID));
|
||||
}
|
||||
|
||||
const seriesSummaryMetadata = series.map(series => {
|
||||
const seriesSummary = {
|
||||
StudyInstanceUID: study.StudyInstanceUID,
|
||||
|
||||
@ -239,18 +239,15 @@ export default function ModeRoute({
|
||||
const filters =
|
||||
Array.from(query.keys()).reduce((acc: Record<string, string>, val: string) => {
|
||||
const lowerVal = val.toLowerCase();
|
||||
if (lowerVal !== 'studyinstanceuids') {
|
||||
// Not sure why the case matters here - it doesn't in the URL
|
||||
if (lowerVal === 'seriesinstanceuids') {
|
||||
const seriesUIDs = getSplitParam(lowerVal, query);
|
||||
return {
|
||||
...acc,
|
||||
seriesInstanceUID: seriesUIDs,
|
||||
};
|
||||
}
|
||||
|
||||
return { ...acc, [val]: getSplitParam(lowerVal, query) };
|
||||
// Not sure why the case matters here - it doesn't in the URL
|
||||
if (lowerVal === 'seriesinstanceuids') {
|
||||
const seriesUIDs = getSplitParam(lowerVal, query);
|
||||
return {
|
||||
...acc,
|
||||
seriesInstanceUID: seriesUIDs,
|
||||
};
|
||||
}
|
||||
return { ...acc, [val]: getSplitParam(lowerVal, query) };
|
||||
}, {}) ?? {};
|
||||
|
||||
let unsubs;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user