Files
ohif-viewer/OHIFViewer-react/src/Viewer/Viewer.js
T

97 lines
3.3 KiB
JavaScript
Raw Normal View History

2018-12-14 15:23:48 +01:00
import React, { Component } from "react";
import PropTypes from "prop-types";
import cornerstone from 'cornerstone-core';
import cornerstoneTools from 'cornerstone-tools';
import OHIF from 'ohif-core';
//import { CineDialog } from 'react-viewerbase';
import Header from '../Header'
2018-12-19 14:53:03 +01:00
import ConnectedFlexboxLayout from '../FlexboxLayout/ConnectedFlexboxLayout.js';
2018-12-31 14:54:22 +01:00
import ConnectedToolbarRow from "../FlexboxLayout/ConnectedToolbarRow";
2019-01-10 13:30:39 +01:00
import ConnectedStudyLoadingMonitor from './ConnectedStudyLoadingMonitor.js';
import StudyPrefetch from './StudyPrefetch.js';
import './Viewer.css';
2018-12-14 15:23:48 +01:00
const { StackManager } = OHIF.utils;
2018-12-14 15:23:48 +01:00
/**
* Inits OHIF Hanging Protocol's onReady.
* It waits for OHIF Hanging Protocol to be ready to instantiate the ProtocolEngine
* Hanging Protocol will use OHIF LayoutManager to render viewports properly
*/
/*const initHangingProtocol = () => {
// When Hanging Protocol is ready
HP.ProtocolStore.onReady(() => {
// Gets all StudyMetadata objects: necessary for Hanging Protocol to access study metadata
const studyMetadataList = OHIF.viewer.StudyMetadataList.all();
// Caches Layout Manager: Hanging Protocol uses it for layout management according to current protocol
const layoutManager = OHIF.viewerbase.layoutManager;
// Instantiate StudyMetadataSource: necessary for Hanging Protocol to get study metadata
const studyMetadataSource = new OHIF.studies.classes.OHIFStudyMetadataSource();
// Get prior studies map
const studyPriorsMap = OHIF.studylist.functions.getStudyPriorsMap(studyMetadataList);
// Creates Protocol Engine object with required arguments
const ProtocolEngine = new HP.ProtocolEngine(layoutManager, studyMetadataList, studyPriorsMap, studyMetadataSource);
// Sets up Hanging Protocol engine
HP.setEngine(ProtocolEngine);
});
};*/
OHIF.viewer.defaultTool = {
left: 'wwwc',
right: 'zoom',
middle: 'pan'
};
OHIF.viewer.refLinesEnabled = true;
/*const viewportUtils = OHIF.viewerbase.viewportUtils;
2018-12-14 15:23:48 +01:00
OHIF.viewer.functionList = {
toggleCineDialog: viewportUtils.toggleCineDialog,
toggleCinePlay: viewportUtils.toggleCinePlay,
clearTools: viewportUtils.clearTools,
resetViewport: viewportUtils.resetViewport,
invert: viewportUtils.invert
};*/
2018-12-14 15:23:48 +01:00
// Create the synchronizer used to update reference lines
OHIF.viewer.updateImageSynchronizer = new cornerstoneTools.Synchronizer('cornerstonenewimage', cornerstoneTools.updateImageSynchronizer);
// Metadata configuration
const metadataProvider = new OHIF.cornerstone.MetadataProvider();
2018-12-14 15:23:48 +01:00
cornerstone.metaData.addProvider(metadataProvider.provider.bind(metadataProvider));
StackManager.setMetadataProvider(metadataProvider);
2018-12-14 15:23:48 +01:00
class Viewer extends Component {
static propTypes = {
2019-01-10 13:30:39 +01:00
studies: PropTypes.array,
};
2018-12-14 15:23:48 +01:00
render() {
return (<>
2019-01-08 10:48:57 +01:00
<Header home={false}/>
2019-01-01 09:23:17 -02:00
<div className='viewerDialogs'>
{/*<CineDialog/>*/}
</div>
<div id="viewer" className='Viewer'>
<ConnectedToolbarRow />
2019-01-10 13:30:39 +01:00
<ConnectedStudyLoadingMonitor studies={this.props.studies} />
<StudyPrefetch studies={this.props.studies} />
<ConnectedFlexboxLayout studies={this.props.studies} />
2019-01-01 09:23:17 -02:00
</div>
</>
2018-12-14 15:23:48 +01:00
);
}
}
export default Viewer;