ohif-viewer/src/connectedComponents/ViewerRetrieveStudyData.js

65 lines
1.5 KiB
JavaScript
Raw Normal View History

import React, { Component } from 'react';
import PropTypes from 'prop-types';
import OHIF from 'ohif-core';
import ConnectedViewer from './ConnectedViewer.js';
const { createDisplaySets } = OHIF.utils;
2018-12-14 15:23:48 +01:00
class ViewerRetrieveStudyData extends Component {
static propTypes = {
studyInstanceUids: PropTypes.array.isRequired,
seriesInstanceUids: PropTypes.array,
2019-05-29 14:39:54 +02:00
server: PropTypes.object,
};
state = {
studies: null,
2019-05-29 14:39:54 +02:00
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
);
// Render the viewer when the data is ready
promise
.then(studies => {
const updatedStudies = createDisplaySets(studies);
this.setState({
2019-05-29 14:39:54 +02:00
studies: updatedStudies,
});
})
.catch(error => {
this.setState({
2019-05-29 14:39:54 +02:00
error: true,
2018-12-14 15:23:48 +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>;
2018-12-14 15:23:48 +01:00
}
return (
<ConnectedViewer
studies={this.state.studies}
studyInstanceUids={this.props.studyInstanceUids}
/>
);
}
2018-12-14 15:23:48 +01:00
}
export default ViewerRetrieveStudyData;