diff --git a/Packages-react/ohif-core b/Packages-react/ohif-core index 8b3a80a85..847511a52 160000 --- a/Packages-react/ohif-core +++ b/Packages-react/ohif-core @@ -1 +1 @@ -Subproject commit 8b3a80a85a466924cb1bdcb9450408130ebec9a0 +Subproject commit 847511a526739d20b9178878989ae8593800e031 diff --git a/Packages-react/ohif-viewer/src/App.js b/Packages-react/ohif-viewer/src/App.js index c92515706..9b2611033 100644 --- a/Packages-react/ohif-viewer/src/App.js +++ b/Packages-react/ohif-viewer/src/App.js @@ -11,7 +11,6 @@ import WhiteLabellingContext from './WhiteLabellingContext'; import OHIFCornerstoneExtension from 'ohif-cornerstone-extension'; import OHIFDicomPDFExtension from 'ohif-dicom-pdf-extension'; import OHIFDicomMicroscopyExtension from 'ohif-dicom-microscopy-extension'; -import { loadState, saveState } from './redux/localStorageState.js'; import { loadUser, OidcProvider, @@ -19,21 +18,22 @@ import { reducer as oidcReducer } from 'redux-oidc'; import cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader'; -import ExtensionManager from './ExtensionManager'; + +const { ExtensionManager } = OHIF.extensions; //import Icons from "./images/icons.svg" const Icons = '/icons.svg'; -let reducers = OHIF.redux.reducers; +const { reducers, localStorage } = OHIF.redux; reducers.ui = ui; reducers.oidc = oidcReducer; const combined = combineReducers(reducers); -const store = createStore(combined, loadState()); +const store = createStore(combined, localStorage.loadState()); store.subscribe(() => { - saveState({ + localStorage.saveState({ preferences: store.getState().preferences }); }); diff --git a/Packages-react/ohif-viewer/src/ExtensionManager.js b/Packages-react/ohif-viewer/src/ExtensionManager.js deleted file mode 100644 index 130e0ec49..000000000 --- a/Packages-react/ohif-viewer/src/ExtensionManager.js +++ /dev/null @@ -1,38 +0,0 @@ -import OHIF from 'ohif-core'; - -export default class ExtensionManager { - static registerExtensions(store, extensions) { - extensions.forEach(extension => { - ExtensionManager.registerExtension(store, extension); - }); - } - - static registerExtension(store, extension) { - /** - * TODO: - * - Use this function for checking extensions definition and throw errors early/ignore extension if format is not conformant or any required stuff is missing - * - Check uniqueness of extension id - * - Id Management: SopClassHandlers currently refer to viewport module by id; setting the extension id as viewport module id is a workaround for now - * - Add loading of panel and toolbar modules */ - let viewportModule = extension.getViewportModule(); - let sopClassHandler = extension.getSopClassHandler(); - if (viewportModule) { - store.dispatch( - OHIF.redux.actions.addPlugin({ - id: extension.getExtensionId(), - type: 'viewport', - component: viewportModule - }) - ); - } - if (sopClassHandler) { - store.dispatch( - OHIF.redux.actions.addPlugin({ - id: extension.getExtensionId() + '_sopClass_handler', - type: 'sopClassHandler', - component: sopClassHandler - }) - ); - } - } -} diff --git a/Packages-react/ohif-viewer/src/components/ConnectedExampleViewportPlugin.js b/Packages-react/ohif-viewer/src/components/ConnectedExampleViewportPlugin.js deleted file mode 100644 index 9e450441d..000000000 --- a/Packages-react/ohif-viewer/src/components/ConnectedExampleViewportPlugin.js +++ /dev/null @@ -1,21 +0,0 @@ -import { connect } from 'react-redux'; -import ExampleViewportPlugin from './ExampleViewportPlugin'; - -// We don't really need Redux to do this, this is just an example -const mapStateToProps = (state, ownProps) => { - const { displaySet } = ownProps.viewportData; - const { studyInstanceUid, seriesInstanceUid } = displaySet; - - return { - studyInstanceUid, - seriesInstanceUid, - displaySet - }; -}; - -const ConnectedExampleViewportPlugin = connect( - mapStateToProps, - null -)(ExampleViewportPlugin); - -export default ConnectedExampleViewportPlugin; diff --git a/Packages-react/ohif-viewer/src/components/ExampleViewportPlugin.js b/Packages-react/ohif-viewer/src/components/ExampleViewportPlugin.js deleted file mode 100644 index bfd521244..000000000 --- a/Packages-react/ohif-viewer/src/components/ExampleViewportPlugin.js +++ /dev/null @@ -1,27 +0,0 @@ -import React, { Component } from 'react'; -import PropTypes from 'prop-types'; - -class ExampleViewportPlugin extends Component { - static propTypes = { - studyInstanceUid: PropTypes.string.isRequired, - seriesInstanceUid: PropTypes.string.isRequired, - displaySet: PropTypes.object - }; - - static defaultProps = { - studyInstanceUid: '', - seriesInstanceUid: '' - }; - - render() { - return ( -
-

StudyInstanceUid: {this.props.studyInstanceUid}

-

SeriesInstanceUid: {this.props.seriesInstanceUid}

- {JSON.stringify(this.props.displaySet)} -
- ); - } -} - -export default ExampleViewportPlugin; diff --git a/Packages-react/ohif-viewer/src/config.js b/Packages-react/ohif-viewer/src/config.js index e734099e3..78a3a52da 100644 --- a/Packages-react/ohif-viewer/src/config.js +++ b/Packages-react/ohif-viewer/src/config.js @@ -24,34 +24,6 @@ OHIF.external.cornerstone = cornerstone; OHIF.external.cornerstoneMath = cornerstoneMath; OHIF.external.cornerstoneWADOImageLoader = cornerstoneWADOImageLoader; -// TODO: Is there a better way to guess ROOT_URL? -//let ROOT_URL = homepage; - -// If the page we are on is not a subset of the expected homepage -// provided in the package.json file, we might be doing local development. -// In this case, set the base URL to the current location's origin. -/*if (homepage.includes(window.location.origin) === false) { - ROOT_URL = window.location.origin; -} - -const config = { - maxWebWorkers: Math.max(navigator.hardwareConcurrency - 1, 1), - startWebWorkersOnDemand: true, - webWorkerPath: ROOT_URL + '/cornerstoneWADOImageLoaderWebWorker.min.js', - taskConfiguration: { - decodeTask: { - loadCodecsOnStartup: true, - initializeCodecsOnStartup: false, - codecsPath: ROOT_URL + '/cornerstoneWADOImageLoaderCodecs.min.js', - usePDFJS: false, - strict: false - } - } -}; - -cornerstoneWADOImageLoader.webWorkerManager.initialize(config); -*/ - OHIF.user.getAccessToken = () => { // TODO: Get the Redux store from somewhere else const state = window.store.getState(); diff --git a/Packages-react/ohif-viewer/src/connectedComponents/OHIFComponentPlugin.js b/Packages-react/ohif-viewer/src/connectedComponents/OHIFComponentPlugin.js deleted file mode 100644 index 6dc5310b6..000000000 --- a/Packages-react/ohif-viewer/src/connectedComponents/OHIFComponentPlugin.js +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; -import PropTypes from "prop-types"; - -function OHIFComponentPlugin(props) { - return ({props.children}); -} - -OHIFComponentPlugin.propTypes = { - id: PropTypes.string.isRequired, - init: PropTypes.func.isRequired, - destroy: PropTypes.func.isRequired, - children: PropTypes.node -}; - -export default OHIFComponentPlugin; diff --git a/Packages-react/ohif-viewer/src/connectedComponents/ViewerRetrieveStudyData.js b/Packages-react/ohif-viewer/src/connectedComponents/ViewerRetrieveStudyData.js index 600c3c0d6..538b01e51 100644 --- a/Packages-react/ohif-viewer/src/connectedComponents/ViewerRetrieveStudyData.js +++ b/Packages-react/ohif-viewer/src/connectedComponents/ViewerRetrieveStudyData.js @@ -1,56 +1,57 @@ -import React, {Component} from "react"; -import PropTypes from "prop-types"; +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; import OHIF from 'ohif-core'; -import Viewer from "./Viewer.js"; +import Viewer from './Viewer.js'; const { createDisplaySets } = OHIF.utils; class ViewerRetrieveStudyData extends Component { - static propTypes = { - studyInstanceUids: PropTypes.array.isRequired, - seriesInstanceUids: PropTypes.array, - server: PropTypes.object - }; + static propTypes = { + studyInstanceUids: PropTypes.array.isRequired, + seriesInstanceUids: PropTypes.array, + server: PropTypes.object + }; - state = { - studies: null, - error: null - } + state = { + studies: null, + error: null + }; - componentDidMount() { - // TODO: Avoid using timepoints here - //const params = { studyInstanceUids, seriesInstanceUids, timepointId, timepointsFilter={} }; - const { studyInstanceUids, seriesInstanceUids, server } = this.props; - const promise = OHIF.studies.retrieveStudiesMetadata(server, studyInstanceUids, seriesInstanceUids) + componentDidMount() { + const { studyInstanceUids, seriesInstanceUids, server } = this.props; + const promise = OHIF.studies.retrieveStudiesMetadata( + server, + studyInstanceUids, + seriesInstanceUids + ); - // Render the viewer when the data is ready - promise.then(studies => { - const updatedStudies = createDisplaySets(studies); + // Render the viewer when the data is ready + promise + .then(studies => { + const updatedStudies = createDisplaySets(studies); - this.setState({ - studies: updatedStudies, - }); - }).catch(error => { - this.setState({ - error: true, - }); - - throw new Error(error); + this.setState({ + studies: updatedStudies + }); + }) + .catch(error => { + this.setState({ + error: true }); + throw new Error(error); + }); + } + + render() { + if (this.state.error) { + return
Error: {JSON.stringify(this.state.error)}
; + } else if (!this.state.studies) { + return
Loading...
; } - render() { - if (this.state.error) { - return (
Error: {JSON.stringify(this.state.error)}
); - } else if (!this.state.studies) { - return (
Loading...
); - } - - return ( - - ); - } + return ; + } } export default ViewerRetrieveStudyData; diff --git a/Packages-react/ohif-viewer/src/redux/localStorageState.js b/Packages-react/ohif-viewer/src/redux/localStorageState.js deleted file mode 100644 index c774a1434..000000000 --- a/Packages-react/ohif-viewer/src/redux/localStorageState.js +++ /dev/null @@ -1,19 +0,0 @@ -export const loadState = () => { - try { - const serializedState = window.localStorage.getItem('state'); - if (!serializedState) { - return undefined; - } - - return JSON.parse(serializedState); - } catch (e) { - return undefined; - } -}; - -export const saveState = state => { - try { - const serializedState = JSON.stringify(state); - localStorage.setItem('state', serializedState); - } catch (e) {} -}; diff --git a/Packages-react/ohif-viewer/src/sha.js b/Packages-react/ohif-viewer/src/sha.js index 3e8eea16a..dbedc2200 100644 --- a/Packages-react/ohif-viewer/src/sha.js +++ b/Packages-react/ohif-viewer/src/sha.js @@ -1 +1 @@ -export default '22202141b8ce2fd087627fe24c0d401dc096029a'; +export default '5bb64fd9254dbd2dd152424fcf584d3a34b05c8a';