feat: 🎸 Improve usability of Google Cloud adapter, including direct routes to studies (#989)

This commit is contained in:
ladeirarodolfo authored and Erik Ziegler committed 2019-10-11 09:59:38 +02:00
1 parent c6f306c0de
commit 2bc361cdca
18 files changed
+413 -138

No files matched your search

+40 -15
View File
@@ -1,26 +1,47 @@
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;
function ViewerRouting({ match }) {
const { studyInstanceUids, seriesInstanceUids } = match.params;
/**
* 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;
let studyUIDs;
let seriesUIDs;
return UrlUtil.paramString.parseParam(_seriesInstanceUIDs);
};
if (studyInstanceUids && !seriesInstanceUids) {
studyUIDs = studyInstanceUids.split(';');
} else if (studyInstanceUids && seriesInstanceUids) {
studyUIDs = [studyInstanceUids];
seriesUIDs = match.params.seriesInstanceUids.split(';');
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);
if (server && studyUIDs) {
return (
<ConnectedViewerRetrieveStudyData
studyInstanceUids={studyUIDs}
seriesInstanceUids={seriesUIDs}
/>
);
}
return (
<ConnectedViewerRetrieveStudyData
studyInstanceUids={studyUIDs}
seriesInstanceUids={seriesUIDs}
/>
);
return null;
}
ViewerRouting.propTypes = {
@@ -28,6 +49,10 @@ ViewerRouting.propTypes = {
params: PropTypes.shape({
studyInstanceUids: PropTypes.string.isRequired,
seriesInstanceUids: PropTypes.string,
dataset: PropTypes.string,
dicomStore: PropTypes.string,
location: PropTypes.string,
project: PropTypes.string,
}),
}),
};