Pull config from window for now
This commit is contained in:
parent
94e45b1b65
commit
7f52bade3e
@ -1,21 +1,23 @@
|
|||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { ToolbarSection } from 'react-viewerbase';
|
import { ToolbarSection } from 'react-viewerbase';
|
||||||
import OHIF from 'ohif-core'
|
import OHIF from 'ohif-core';
|
||||||
|
|
||||||
const { setToolActive } = OHIF.redux.actions;
|
const { setToolActive } = OHIF.redux.actions;
|
||||||
const Icons = 'icons.svg';
|
const Icons = `${window.config.routerBasenameicons}icons.svg`;
|
||||||
|
|
||||||
const mapStateToProps = state => {
|
const mapStateToProps = state => {
|
||||||
const activeButton = state.tools.buttons.find(tool => tool.active === true);
|
const activeButton = state.tools.buttons.find(tool => tool.active === true);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
buttons: [ {
|
buttons: [
|
||||||
command: 'Rotate',
|
{
|
||||||
type: 'tool',
|
command: 'Rotate',
|
||||||
text: 'Rotate',
|
type: 'tool',
|
||||||
svgUrl: `${Icons}#3d-rotate`,
|
text: 'Rotate',
|
||||||
active: true
|
svgUrl: `${Icons}#3d-rotate`,
|
||||||
}],
|
active: true
|
||||||
|
}
|
||||||
|
],
|
||||||
activeCommand: 'Rotate'
|
activeCommand: 'Rotate'
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react'
|
||||||
import './OHIFLogo.css';
|
import './OHIFLogo.css'
|
||||||
|
|
||||||
const Icons = 'icons.svg';
|
const Icons = `${window.config.routerBasenameicons}icons.svg`
|
||||||
|
|
||||||
function OHIFLogo() {
|
function OHIFLogo() {
|
||||||
return (
|
return (
|
||||||
@ -16,7 +16,7 @@ function OHIFLogo() {
|
|||||||
</svg>
|
</svg>
|
||||||
<div className="header-logo-text">Open Health Imaging Foundation</div>
|
<div className="header-logo-text">Open Health Imaging Foundation</div>
|
||||||
</a>
|
</a>
|
||||||
);
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default OHIFLogo;
|
export default OHIFLogo
|
||||||
|
|||||||
@ -1,42 +1,42 @@
|
|||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux'
|
||||||
import PluginSwitch from './PluginSwitch.js';
|
import PluginSwitch from './PluginSwitch.js'
|
||||||
import OHIF from 'ohif-core';
|
import OHIF from 'ohif-core'
|
||||||
|
|
||||||
const { setLayout } = OHIF.redux.actions;
|
const { setLayout } = OHIF.redux.actions
|
||||||
|
|
||||||
const mapStateToProps = state => {
|
const mapStateToProps = state => {
|
||||||
const { activeViewportIndex, layout } = state.viewports;
|
const { activeViewportIndex, layout } = state.viewports
|
||||||
|
|
||||||
return {
|
return {
|
||||||
activeViewportIndex,
|
activeViewportIndex,
|
||||||
layout
|
layout,
|
||||||
};
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => {
|
const mapDispatchToProps = dispatch => {
|
||||||
return {
|
return {
|
||||||
setLayout: data => {
|
setLayout: data => {
|
||||||
dispatch(setLayout(data));
|
dispatch(setLayout(data))
|
||||||
}
|
},
|
||||||
};
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
function setSingleLayoutData(originalArray, viewportIndex, data) {
|
function setSingleLayoutData(originalArray, viewportIndex, data) {
|
||||||
const viewports = originalArray.slice();
|
const viewports = originalArray.slice()
|
||||||
const layoutData = Object.assign({}, viewports[viewportIndex], data);
|
const layoutData = Object.assign({}, viewports[viewportIndex], data)
|
||||||
|
|
||||||
viewports[viewportIndex] = layoutData;
|
viewports[viewportIndex] = layoutData
|
||||||
|
|
||||||
return viewports;
|
return viewports
|
||||||
}
|
}
|
||||||
|
|
||||||
const mergeProps = (propsFromState, propsFromDispatch, ownProps) => {
|
const mergeProps = (propsFromState, propsFromDispatch, ownProps) => {
|
||||||
const { activeViewportIndex, layout } = propsFromState;
|
const { activeViewportIndex, layout } = propsFromState
|
||||||
const { setLayout } = propsFromDispatch;
|
const { setLayout } = propsFromDispatch
|
||||||
|
|
||||||
// TODO: Do not display certain options if the current display set
|
// TODO: Do not display certain options if the current display set
|
||||||
// cannot be displayed using these view types
|
// cannot be displayed using these view types
|
||||||
const Icons = 'icons.svg';
|
const Icons = `${window.config.routerBasenameicons}icons.svg`
|
||||||
const buttons = [
|
const buttons = [
|
||||||
{
|
{
|
||||||
text: 'Acquired',
|
text: 'Acquired',
|
||||||
@ -44,16 +44,16 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => {
|
|||||||
iconClasses: 'fa fa-bars',
|
iconClasses: 'fa fa-bars',
|
||||||
active: false,
|
active: false,
|
||||||
onClick: click => {
|
onClick: click => {
|
||||||
console.warn('Original Acquisition');
|
console.warn('Original Acquisition')
|
||||||
|
|
||||||
const layoutData = setSingleLayoutData(
|
const layoutData = setSingleLayoutData(
|
||||||
layout.viewports,
|
layout.viewports,
|
||||||
activeViewportIndex,
|
activeViewportIndex,
|
||||||
{ plugin: 'cornerstone' }
|
{ plugin: 'cornerstone' }
|
||||||
);
|
)
|
||||||
|
|
||||||
setLayout({ viewports: layoutData });
|
setLayout({ viewports: layoutData })
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: 'Axial',
|
text: 'Axial',
|
||||||
@ -61,46 +61,46 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => {
|
|||||||
svgClasses: 'icon-rotate-120',
|
svgClasses: 'icon-rotate-120',
|
||||||
active: false,
|
active: false,
|
||||||
onClick: click => {
|
onClick: click => {
|
||||||
console.warn('Axial');
|
console.warn('Axial')
|
||||||
const data = {
|
const data = {
|
||||||
plugin: 'vtk',
|
plugin: 'vtk',
|
||||||
vtk: {
|
vtk: {
|
||||||
mode: 'mpr',
|
mode: 'mpr',
|
||||||
sliceNormal: [0, 0, 1]
|
sliceNormal: [0, 0, 1],
|
||||||
}
|
},
|
||||||
};
|
}
|
||||||
|
|
||||||
const layoutData = setSingleLayoutData(
|
const layoutData = setSingleLayoutData(
|
||||||
layout.viewports,
|
layout.viewports,
|
||||||
activeViewportIndex,
|
activeViewportIndex,
|
||||||
data
|
data
|
||||||
);
|
)
|
||||||
|
|
||||||
setLayout({ viewports: layoutData });
|
setLayout({ viewports: layoutData })
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: 'Sagittal',
|
text: 'Sagittal',
|
||||||
svgUrl: `${Icons}#cube`,
|
svgUrl: `${Icons}#cube`,
|
||||||
active: false,
|
active: false,
|
||||||
onClick: click => {
|
onClick: click => {
|
||||||
console.warn('Sagittal');
|
console.warn('Sagittal')
|
||||||
const data = {
|
const data = {
|
||||||
plugin: 'vtk',
|
plugin: 'vtk',
|
||||||
vtk: {
|
vtk: {
|
||||||
mode: 'mpr',
|
mode: 'mpr',
|
||||||
sliceNormal: [1, 0, 0]
|
sliceNormal: [1, 0, 0],
|
||||||
}
|
},
|
||||||
};
|
}
|
||||||
|
|
||||||
const layoutData = setSingleLayoutData(
|
const layoutData = setSingleLayoutData(
|
||||||
layout.viewports,
|
layout.viewports,
|
||||||
activeViewportIndex,
|
activeViewportIndex,
|
||||||
data
|
data
|
||||||
);
|
)
|
||||||
|
|
||||||
setLayout({ viewports: layoutData });
|
setLayout({ viewports: layoutData })
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: 'Coronal',
|
text: 'Coronal',
|
||||||
@ -108,24 +108,24 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => {
|
|||||||
svgClasses: 'fa-rotate-90 fa-flip-horizontal',
|
svgClasses: 'fa-rotate-90 fa-flip-horizontal',
|
||||||
active: false,
|
active: false,
|
||||||
onClick: click => {
|
onClick: click => {
|
||||||
console.warn('Coronal');
|
console.warn('Coronal')
|
||||||
const data = {
|
const data = {
|
||||||
plugin: 'vtk',
|
plugin: 'vtk',
|
||||||
vtk: {
|
vtk: {
|
||||||
mode: 'mpr',
|
mode: 'mpr',
|
||||||
sliceNormal: [0, 1, 0]
|
sliceNormal: [0, 1, 0],
|
||||||
}
|
},
|
||||||
};
|
}
|
||||||
|
|
||||||
const layoutData = setSingleLayoutData(
|
const layoutData = setSingleLayoutData(
|
||||||
layout.viewports,
|
layout.viewports,
|
||||||
activeViewportIndex,
|
activeViewportIndex,
|
||||||
data
|
data
|
||||||
);
|
)
|
||||||
|
|
||||||
setLayout({ viewports: layoutData });
|
setLayout({ viewports: layoutData })
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
/*{
|
/*{
|
||||||
text: '3D',
|
text: '3D',
|
||||||
svgUrl: `${Icons}#cube`,
|
svgUrl: `${Icons}#cube`,
|
||||||
@ -143,17 +143,17 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => {
|
|||||||
setLayout({ viewports: layoutData });
|
setLayout({ viewports: layoutData });
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
];
|
]
|
||||||
|
|
||||||
return {
|
return {
|
||||||
buttons
|
buttons,
|
||||||
};
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
const ConnectedPluginSwitch = connect(
|
const ConnectedPluginSwitch = connect(
|
||||||
mapStateToProps,
|
mapStateToProps,
|
||||||
mapDispatchToProps,
|
mapDispatchToProps,
|
||||||
mergeProps
|
mergeProps
|
||||||
)(PluginSwitch);
|
)(PluginSwitch)
|
||||||
|
|
||||||
export default ConnectedPluginSwitch;
|
export default ConnectedPluginSwitch
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react'
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types'
|
||||||
import OHIF from 'ohif-core';
|
import OHIF from 'ohif-core'
|
||||||
import { RoundedButtonGroup } from 'react-viewerbase';
|
import { RoundedButtonGroup } from 'react-viewerbase'
|
||||||
import ConnectedLayoutButton from './ConnectedLayoutButton';
|
import ConnectedLayoutButton from './ConnectedLayoutButton'
|
||||||
import ConnectedPluginSwitch from './ConnectedPluginSwitch.js';
|
import ConnectedPluginSwitch from './ConnectedPluginSwitch.js'
|
||||||
import './ToolbarRow.css';
|
import './ToolbarRow.css'
|
||||||
|
|
||||||
const Icons = 'icons.svg';
|
const Icons = `${window.config.routerBasenameicons}icons.svg`
|
||||||
|
|
||||||
class ToolbarRow extends Component {
|
class ToolbarRow extends Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
@ -14,21 +14,21 @@ class ToolbarRow extends Component {
|
|||||||
rightSidebarOpen: PropTypes.bool.isRequired,
|
rightSidebarOpen: PropTypes.bool.isRequired,
|
||||||
setLeftSidebarOpen: PropTypes.func,
|
setLeftSidebarOpen: PropTypes.func,
|
||||||
setRightSidebarOpen: PropTypes.func,
|
setRightSidebarOpen: PropTypes.func,
|
||||||
pluginId: PropTypes.string
|
pluginId: PropTypes.string,
|
||||||
};
|
}
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
leftSidebarOpen: false,
|
leftSidebarOpen: false,
|
||||||
rightSidebarOpen: false
|
rightSidebarOpen: false,
|
||||||
};
|
}
|
||||||
|
|
||||||
onLeftSidebarValueChanged = value => {
|
onLeftSidebarValueChanged = value => {
|
||||||
this.props.setLeftSidebarOpen(!!value);
|
this.props.setLeftSidebarOpen(!!value)
|
||||||
};
|
}
|
||||||
|
|
||||||
onRightSidebarValueChanged = value => {
|
onRightSidebarValueChanged = value => {
|
||||||
this.props.setRightSidebarOpen(!!value);
|
this.props.setRightSidebarOpen(!!value)
|
||||||
};
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const leftSidebarToggle = [
|
const leftSidebarToggle = [
|
||||||
@ -37,9 +37,9 @@ class ToolbarRow extends Component {
|
|||||||
svgLink: `${Icons}#icon-studies`,
|
svgLink: `${Icons}#icon-studies`,
|
||||||
svgWidth: 15,
|
svgWidth: 15,
|
||||||
svgHeight: 13,
|
svgHeight: 13,
|
||||||
bottomLabel: 'Series'
|
bottomLabel: 'Series',
|
||||||
}
|
},
|
||||||
];
|
]
|
||||||
|
|
||||||
const rightSidebarToggle = [
|
const rightSidebarToggle = [
|
||||||
{
|
{
|
||||||
@ -47,32 +47,30 @@ class ToolbarRow extends Component {
|
|||||||
svgLink: `${Icons}#icon-measurements-lesions`,
|
svgLink: `${Icons}#icon-measurements-lesions`,
|
||||||
svgWidth: 15,
|
svgWidth: 15,
|
||||||
svgHeight: 13,
|
svgHeight: 13,
|
||||||
bottomLabel: 'Measurements'
|
bottomLabel: 'Measurements',
|
||||||
}
|
},
|
||||||
];
|
]
|
||||||
|
|
||||||
const leftSidebarValue = this.props.leftSidebarOpen
|
const leftSidebarValue = this.props.leftSidebarOpen
|
||||||
? leftSidebarToggle[0].value
|
? leftSidebarToggle[0].value
|
||||||
: null;
|
: null
|
||||||
|
|
||||||
const rightSidebarValue = this.props.rightSidebarOpen
|
const rightSidebarValue = this.props.rightSidebarOpen
|
||||||
? rightSidebarToggle[0].value
|
? rightSidebarToggle[0].value
|
||||||
: null;
|
: null
|
||||||
|
|
||||||
const currentPluginId = this.props.pluginId;
|
const currentPluginId = this.props.pluginId
|
||||||
|
|
||||||
const { PLUGIN_TYPES, availablePlugins } = OHIF.plugins;
|
const { PLUGIN_TYPES, availablePlugins } = OHIF.plugins
|
||||||
const plugin = availablePlugins.find(entry => {
|
const plugin = availablePlugins.find(entry => {
|
||||||
return (
|
return entry.type === PLUGIN_TYPES.TOOLBAR && entry.id === currentPluginId
|
||||||
entry.type === PLUGIN_TYPES.TOOLBAR && entry.id === currentPluginId
|
})
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
let pluginComp;
|
let pluginComp
|
||||||
if (plugin) {
|
if (plugin) {
|
||||||
const PluginComponent = plugin.component;
|
const PluginComponent = plugin.component
|
||||||
|
|
||||||
pluginComp = <PluginComponent />;
|
pluginComp = <PluginComponent />
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -95,8 +93,8 @@ class ToolbarRow extends Component {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ToolbarRow;
|
export default ToolbarRow
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user