From 3880b874ab0dabfd41dc3f82e8ae44d881276318 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Sun, 17 May 2020 23:27:31 -0400 Subject: [PATCH] Reorganize routes folder --- .../viewer/src/routes/DataSourceWrapper.jsx | 2 +- .../viewer/src/routes/{ => Mode}/Compose.js | 0 .../src/routes/Mode/DisplaySetCreator.jsx | 54 +++++++++++++++++++ .../routes/{ModeRoute.js => Mode/Mode.jsx} | 50 ++--------------- platform/viewer/src/routes/Mode/index.js | 1 + .../src/routes/StudyListContainer/index.js | 1 - .../WorkList.jsx} | 6 +-- .../filtersMeta.js | 0 platform/viewer/src/routes/WorkList/index.js | 1 + platform/viewer/src/routes/buildModeRoutes.js | 2 +- platform/viewer/src/routes/index.js | 4 +- 11 files changed, 66 insertions(+), 55 deletions(-) rename platform/viewer/src/routes/{ => Mode}/Compose.js (100%) create mode 100644 platform/viewer/src/routes/Mode/DisplaySetCreator.jsx rename platform/viewer/src/routes/{ModeRoute.js => Mode/Mode.jsx} (64%) create mode 100644 platform/viewer/src/routes/Mode/index.js delete mode 100644 platform/viewer/src/routes/StudyListContainer/index.js rename platform/viewer/src/routes/{StudyListContainer/StudyListContainer.jsx => WorkList/WorkList.jsx} (98%) rename platform/viewer/src/routes/{StudyListContainer => WorkList}/filtersMeta.js (100%) create mode 100644 platform/viewer/src/routes/WorkList/index.js diff --git a/platform/viewer/src/routes/DataSourceWrapper.jsx b/platform/viewer/src/routes/DataSourceWrapper.jsx index b9eb57844..9011e59e1 100644 --- a/platform/viewer/src/routes/DataSourceWrapper.jsx +++ b/platform/viewer/src/routes/DataSourceWrapper.jsx @@ -91,7 +91,7 @@ DataSourceWrapper.propTypes = { export default DataSourceWrapper; /** - * Duplicated in `studyListContainer` + * Duplicated in `workList` * Need generic that can be shared? Isn't this what qs is for? * @param {*} query */ diff --git a/platform/viewer/src/routes/Compose.js b/platform/viewer/src/routes/Mode/Compose.js similarity index 100% rename from platform/viewer/src/routes/Compose.js rename to platform/viewer/src/routes/Mode/Compose.js diff --git a/platform/viewer/src/routes/Mode/DisplaySetCreator.jsx b/platform/viewer/src/routes/Mode/DisplaySetCreator.jsx new file mode 100644 index 000000000..3375bee98 --- /dev/null +++ b/platform/viewer/src/routes/Mode/DisplaySetCreator.jsx @@ -0,0 +1,54 @@ +import { useEffect, useCallback } from 'react'; +import { + displaySetManager, + ToolBarManager, + useViewModel, + useToolbarLayout, +} from '@ohif/core'; + +export default function DisplaySetCreator({ + location, + mode, + dataSourceName, + extensionManager, +}) { + console.warn('DisplaySetCreator rerendering'); + const { routes, sopClassHandlers } = mode; + const dataSources = extensionManager.getDataSources(dataSourceName); + // TODO: For now assume one unique datasource. + + const dataSource = dataSources[0]; + const route = routes[0]; + + // Add toolbar state to the view model context? + const { displaySetInstanceUIDs, setDisplaySetInstanceUIDs } = useViewModel(); + + const { toolBarLayout, setToolBarLayout } = useToolbarLayout(); + + useEffect(() => { + let toolBarManager = new ToolBarManager(extensionManager, setToolBarLayout); + route.init({ toolBarManager }); + }, [mode, dataSourceName, location]); + + const createDisplaySets = useCallback(() => { + // Add SOPClassHandlers to a new SOPClassManager. + displaySetManager.init(extensionManager, sopClassHandlers, { + displaySetInstanceUIDs, + setDisplaySetInstanceUIDs, + }); + + const queryParams = location.search; + + // Call the data source to start building the view model? + dataSource.retrieve.series.metadata( + queryParams, + displaySetManager.makeDisplaySets + ); + }, [displaySetInstanceUIDs, location]); + + useEffect(() => { + createDisplaySets(); + }, [mode, dataSourceName, location]); + + return null; +} diff --git a/platform/viewer/src/routes/ModeRoute.js b/platform/viewer/src/routes/Mode/Mode.jsx similarity index 64% rename from platform/viewer/src/routes/ModeRoute.js rename to platform/viewer/src/routes/Mode/Mode.jsx index 47faf6cf1..cf90c85b1 100644 --- a/platform/viewer/src/routes/ModeRoute.js +++ b/platform/viewer/src/routes/Mode/Mode.jsx @@ -7,55 +7,11 @@ import { ToolbarLayoutProvider, } from '@ohif/core'; import { DragAndDropProvider } from '@ohif/ui'; +// +import ViewportGrid from '@components/ViewportGrid'; import Compose from './Compose'; -import ViewportGrid from './../components/ViewportGrid'; +import DisplaySetCreator from './DisplaySetCreator'; -function DisplaySetCreator({ - location, - mode, - dataSourceName, - extensionManager, -}) { - console.warn('DisplaySetCreator rerendering'); - const { routes, sopClassHandlers } = mode; - const dataSources = extensionManager.getDataSources(dataSourceName); - // TODO: For now assume one unique datasource. - - const dataSource = dataSources[0]; - const route = routes[0]; - - // Add toolbar state to the view model context? - const { displaySetInstanceUIDs, setDisplaySetInstanceUIDs } = useViewModel(); - - const { toolBarLayout, setToolBarLayout } = useToolbarLayout(); - - useEffect(() => { - let toolBarManager = new ToolBarManager(extensionManager, setToolBarLayout); - route.init({ toolBarManager }); - }, [mode, dataSourceName, location]); - - const createDisplaySets = useCallback(() => { - // Add SOPClassHandlers to a new SOPClassManager. - displaySetManager.init(extensionManager, sopClassHandlers, { - displaySetInstanceUIDs, - setDisplaySetInstanceUIDs, - }); - - const queryParams = location.search; - - // Call the data source to start building the view model? - dataSource.retrieve.series.metadata( - queryParams, - displaySetManager.makeDisplaySets - ); - }, [displaySetInstanceUIDs, location]); - - useEffect(() => { - createDisplaySets(); - }, [mode, dataSourceName, location]); - - return null; -} export default function ModeRoute({ location, diff --git a/platform/viewer/src/routes/Mode/index.js b/platform/viewer/src/routes/Mode/index.js new file mode 100644 index 000000000..d21dfede7 --- /dev/null +++ b/platform/viewer/src/routes/Mode/index.js @@ -0,0 +1 @@ +export { default } from './Mode'; diff --git a/platform/viewer/src/routes/StudyListContainer/index.js b/platform/viewer/src/routes/StudyListContainer/index.js deleted file mode 100644 index a5e646d2b..000000000 --- a/platform/viewer/src/routes/StudyListContainer/index.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from './StudyListContainer'; diff --git a/platform/viewer/src/routes/StudyListContainer/StudyListContainer.jsx b/platform/viewer/src/routes/WorkList/WorkList.jsx similarity index 98% rename from platform/viewer/src/routes/StudyListContainer/StudyListContainer.jsx rename to platform/viewer/src/routes/WorkList/WorkList.jsx index 2f1f26532..4bf8c2ce3 100644 --- a/platform/viewer/src/routes/StudyListContainer/StudyListContainer.jsx +++ b/platform/viewer/src/routes/WorkList/WorkList.jsx @@ -27,7 +27,7 @@ const seriesInStudiesMap = new Map(); * TODO: * - debounce `setFilterValues` (150ms?) */ -function StudyListContainer({ history, data: studies, dataSource }) { +function WorkList({ history, data: studies, dataSource }) { // ~ Filters const query = useQuery(); const queryFilterValues = _getQueryFilterValues(query); @@ -398,7 +398,7 @@ function StudyListContainer({ history, data: studies, dataSource }) { ); } -StudyListContainer.propTypes = { +WorkList.propTypes = { history: PropTypes.shape({ push: PropTypes.func, }).isRequired, @@ -463,4 +463,4 @@ function _getQueryFilterValues(query) { } } -export default StudyListContainer; +export default WorkList; diff --git a/platform/viewer/src/routes/StudyListContainer/filtersMeta.js b/platform/viewer/src/routes/WorkList/filtersMeta.js similarity index 100% rename from platform/viewer/src/routes/StudyListContainer/filtersMeta.js rename to platform/viewer/src/routes/WorkList/filtersMeta.js diff --git a/platform/viewer/src/routes/WorkList/index.js b/platform/viewer/src/routes/WorkList/index.js new file mode 100644 index 000000000..83a6650d2 --- /dev/null +++ b/platform/viewer/src/routes/WorkList/index.js @@ -0,0 +1 @@ +export { default } from './WorkList'; diff --git a/platform/viewer/src/routes/buildModeRoutes.js b/platform/viewer/src/routes/buildModeRoutes.js index 39ed27191..c12deefb8 100644 --- a/platform/viewer/src/routes/buildModeRoutes.js +++ b/platform/viewer/src/routes/buildModeRoutes.js @@ -1,5 +1,5 @@ import React from 'react'; -import ModeRoute from './ModeRoute'; +import ModeRoute from '@routes/Mode'; import { ViewModelProvider } from '@ohif/core'; /* diff --git a/platform/viewer/src/routes/index.js b/platform/viewer/src/routes/index.js index 9df177fa5..63b6b4930 100644 --- a/platform/viewer/src/routes/index.js +++ b/platform/viewer/src/routes/index.js @@ -2,7 +2,7 @@ import React from 'react'; import { Switch, Route } from 'react-router-dom'; // Route Components import DataSourceWrapper from './DataSourceWrapper'; -import StudyListContainer from './StudyListContainer'; +import WorkList from './WorkList'; import NotFound from './NotFound'; import buildModeRoutes from './buildModeRoutes'; @@ -14,7 +14,7 @@ const bakedInRoutes = [ path: '/', exact: true, component: DataSourceWrapper, - props: { children: StudyListContainer }, + props: { children: WorkList }, }, // NOT FOUND (404) { component: NotFound },