Files
ohif-viewer/extensions/dicom-pdf/src/OHIFDicomPDFViewport.js
T

71 lines
1.8 KiB
JavaScript
Raw Normal View History

import React, { Component } from 'react';
import PropTypes from 'prop-types';
import OHIF from '@ohif/core';
import OHIFComponentPlugin from './OHIFComponentPlugin.js';
import DicomPDFViewport from './DicomPDFViewport';
2019-04-16 12:00:06 -04:00
const { DicomLoaderService } = OHIF.utils;
2019-08-13 15:36:46 -04:00
class OHIFDicomPDFViewport extends Component {
2019-04-16 12:00:06 -04:00
static propTypes = {
studies: PropTypes.object,
displaySet: PropTypes.object,
viewportIndex: PropTypes.number,
viewportData: PropTypes.object,
activeViewportIndex: PropTypes.number,
setViewportActive: PropTypes.func,
2019-04-16 12:00:06 -04:00
};
state = {
byteArray: null,
error: null,
2019-04-16 12:00:06 -04:00
};
static id = 'DicomPDFViewportPDF';
2019-08-13 15:36:46 -04:00
static init() {
console.log('DicomPDFViewport init()');
2019-08-13 15:36:46 -04:00
}
static destroy() {
console.log('DicomPDFViewport destroy()');
2019-08-13 15:36:46 -04:00
}
2019-04-16 12:00:06 -04:00
componentDidMount() {
const { displaySet, studies } = this.props.viewportData;
DicomLoaderService.findDicomDataPromise(displaySet, studies).then(
data => this.setState({ byteArray: new Uint8Array(data) }),
2019-04-16 12:00:06 -04:00
error => {
this.setState({ error });
2019-04-16 12:00:06 -04:00
throw new Error(error);
}
);
}
render() {
const {
setViewportActive,
viewportIndex,
activeViewportIndex,
} = this.props;
const { byteArray, error } = this.state;
2019-08-13 15:36:46 -04:00
const { id, init, destroy } = OHIFDicomPDFViewport;
const pluginProps = { id, init, destroy };
2019-04-16 12:00:06 -04:00
return (
2019-08-13 15:36:46 -04:00
<OHIFComponentPlugin {...pluginProps}>
{byteArray && (
<DicomPDFViewport
byteArray={byteArray}
setViewportActive={setViewportActive}
viewportIndex={viewportIndex}
activeViewportIndex={activeViewportIndex}
/>
2019-04-16 12:00:06 -04:00
)}
{error && <h2>{JSON.stringify(error)}</h2>}
2019-08-13 15:36:46 -04:00
</OHIFComponentPlugin>
2019-04-16 12:00:06 -04:00
);
}
}
2019-08-13 15:36:46 -04:00
export default OHIFDicomPDFViewport;