From 1fa64649ee009f04bad711dc41929a0c792b0a1a Mon Sep 17 00:00:00 2001 From: Bill Wallace Date: Wed, 5 Apr 2023 13:46:23 -0400 Subject: [PATCH] fix: Make the series filter split with a comma --- platform/core/src/utils/splitComma.ts | 8 ++++---- platform/viewer/src/routes/Mode/Mode.tsx | 10 ++++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/platform/core/src/utils/splitComma.ts b/platform/core/src/utils/splitComma.ts index e8aab0b47b..4354e0ce0b 100644 --- a/platform/core/src/utils/splitComma.ts +++ b/platform/core/src/utils/splitComma.ts @@ -21,11 +21,11 @@ const getSplitParam = ( lowerCaseKey: string, params = new URLSearchParams(window.location.search) ): string[] => { - return splitComma( - [...params] - .find(([key, value]) => key.toLowerCase() === lowerCaseKey && value) - ?.slice?.(1) + const sourceKey = [...params.keys()].find( + it => it.toLowerCase() === lowerCaseKey ); + if (!sourceKey) return; + return splitComma(params.getAll(sourceKey)); }; export { splitComma, getSplitParam }; diff --git a/platform/viewer/src/routes/Mode/Mode.tsx b/platform/viewer/src/routes/Mode/Mode.tsx index e0eb6d46ee..7b06bf4459 100644 --- a/platform/viewer/src/routes/Mode/Mode.tsx +++ b/platform/viewer/src/routes/Mode/Mode.tsx @@ -1,15 +1,16 @@ import React, { useEffect, useState, useRef } from 'react'; import { useParams, useLocation } from 'react-router'; - import PropTypes from 'prop-types'; // TODO: DicomMetadataStore should be injected? -import { DicomMetadataStore, ServicesManager } from '@ohif/core'; +import { DicomMetadataStore, ServicesManager, utils } from '@ohif/core'; import { DragAndDropProvider, ImageViewerProvider } from '@ohif/ui'; import { useQuery, useSearchParams } from '@hooks'; import ViewportGrid from '@components/ViewportGrid'; import Compose from './Compose'; import getStudies from './studiesList'; +const { getSplitParam } = utils; + /** * Initialize the route. * @@ -283,13 +284,14 @@ export default function ModeRoute({ if (lowerVal !== 'studyinstanceuids') { // Not sure why the case matters here - it doesn't in the URL if (lowerVal === 'seriesinstanceuid') { + const seriesUIDs = getSplitParam(lowerVal, query); return { ...acc, - seriesInstanceUID: query.get(val), + seriesInstanceUID: seriesUIDs, }; } - return { ...acc, [val]: query.get(val) }; + return { ...acc, [val]: getSplitParam(lowerVal, query) }; } }, {}