ohif-viewer/OHIFViewer-react/src/ViewerFromStudyData.js

56 lines
1.5 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 OHIF from 'ohif-core';
import Viewer from "./Viewer/Viewer.js";
2018-12-17 22:50:58 +01:00
import createDisplaySets from './lib/createDisplaySets.js';
2018-12-14 15:23:48 +01:00
class ViewerFromStudyData extends Component {
2019-01-08 10:48:57 +01:00
static propTypes = {
studyInstanceUids: PropTypes.array.isRequired,
seriesInstanceUids: PropTypes.array,
server: PropTypes.object
};
state = {
studies: null,
error: null
2018-12-14 15:23:48 +01:00
}
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)
2018-12-14 15:23:48 +01:00
// Render the viewer when the data is ready
promise.then(studies => {
2018-12-14 15:23:48 +01:00
const updatedStudies = createDisplaySets(studies);
this.setState({
studies: updatedStudies,
});
}).catch(error => {
this.setState({
error: true,
2018-12-14 15:23:48 +01:00
});
2019-01-08 10:48:57 +01:00
throw new Error(error);
2018-12-14 15:23:48 +01:00
});
}
render() {
if (this.state.error) {
return (<div>Error: {JSON.stringify(this.state.error)}</div>);
} else if (!this.state.studies) {
return (<div>Loading...</div>);
}
return (
<Viewer studies={this.state.studies}/>
);
}
}
export default ViewerFromStudyData;