Files
ohif-viewer/platform/viewer/src/routes/ViewerRouting.js
T

60 lines
1.7 KiB
JavaScript
Raw Normal View History

2019-05-29 08:39:54 -04:00
import React from 'react';
import PropTypes from 'prop-types';
import ConnectedViewerRetrieveStudyData from '../connectedComponents/ConnectedViewerRetrieveStudyData';
import useServer from '../customHooks/useServer';
import OHIF from '@ohif/core';
const { urlUtil: UrlUtil } = OHIF.utils;
2018-12-14 15:23:48 +01:00
/**
* Get array of seriesUIDs from param or from queryString
* @param {*} seriesInstanceUids
* @param {*} location
*/
const getSeriesInstanceUIDs = (seriesInstanceUids, routeLocation) => {
const queryFilters = UrlUtil.queryString.getQueryFilters(routeLocation);
const querySeriesUIDs = queryFilters && queryFilters['seriesInstanceUID'];
const _seriesInstanceUids = seriesInstanceUids || querySeriesUIDs;
2018-12-14 15:23:48 +01:00
return UrlUtil.paramString.parseParam(_seriesInstanceUids);
};
function ViewerRouting({ match: routeMatch, location: routeLocation }) {
const {
project,
location,
dataset,
dicomStore,
studyInstanceUids,
seriesInstanceUids,
} = routeMatch.params;
const server = useServer({ project, location, dataset, dicomStore });
const studyUids = UrlUtil.paramString.parseParam(studyInstanceUids);
const seriesUids = getSeriesInstanceUIDs(seriesInstanceUids, routeLocation);
2018-12-14 15:23:48 +01:00
if (server && studyUids) {
return (
<ConnectedViewerRetrieveStudyData
studyInstanceUids={studyUids}
seriesInstanceUids={seriesUids}
/>
);
2019-05-29 08:39:54 -04:00
}
2018-12-14 15:23:48 +01:00
return null;
2018-12-14 15:23:48 +01:00
}
ViewerRouting.propTypes = {
2019-05-29 08:39:54 -04:00
match: PropTypes.shape({
params: PropTypes.shape({
studyInstanceUids: PropTypes.string.isRequired,
seriesInstanceUids: PropTypes.string,
dataset: PropTypes.string,
dicomStore: PropTypes.string,
location: PropTypes.string,
project: PropTypes.string,
2019-05-29 08:39:54 -04:00
}),
}),
2018-12-14 15:23:48 +01:00
};
export default ViewerRouting;