|
1 | | -import React, { Component } from "react"; |
2 | | -import PropTypes from "prop-types"; |
3 | | -import OHIF from "@ohif/core"; |
4 | | -import OHIFComponentPlugin from "./OHIFComponentPlugin.js"; |
5 | | -import DicomPDFViewport from "./DicomPDFViewport"; |
| 1 | +import React, { Component } from 'react'; |
| 2 | +import PropTypes from 'prop-types'; |
| 3 | +import OHIF from '@ohif/core'; |
| 4 | +import OHIFComponentPlugin from './OHIFComponentPlugin.js'; |
| 5 | +import DicomPDFViewport from './DicomPDFViewport'; |
6 | 6 |
|
7 | | -const { DICOMWeb } = OHIF; |
| 7 | +const { DicomLoaderService } = OHIF.utils; |
8 | 8 |
|
9 | 9 | class OHIFDicomPDFViewport extends Component { |
10 | 10 | static propTypes = { |
11 | 11 | studies: PropTypes.object, |
12 | 12 | displaySet: PropTypes.object, |
13 | | - viewportIndex: PropTypes.number |
| 13 | + viewportIndex: PropTypes.number, |
14 | 14 | }; |
15 | 15 |
|
16 | 16 | state = { |
17 | 17 | byteArray: null, |
18 | | - error: null |
| 18 | + error: null, |
19 | 19 | }; |
20 | 20 |
|
21 | | - static id = "DicomPDFViewportPDF"; |
| 21 | + static id = 'DicomPDFViewportPDF'; |
22 | 22 |
|
23 | 23 | static init() { |
24 | | - console.log("DicomPDFViewport init()"); |
| 24 | + console.log('DicomPDFViewport init()'); |
25 | 25 | } |
26 | 26 |
|
27 | 27 | static destroy() { |
28 | | - console.log("DicomPDFViewport destroy()"); |
| 28 | + console.log('DicomPDFViewport destroy()'); |
29 | 29 | } |
30 | 30 |
|
31 | 31 | componentDidMount() { |
32 | | - const { displaySet } = this.props.viewportData; |
| 32 | + const { displaySet, studies } = this.props.viewportData; |
33 | 33 | const { |
34 | 34 | studyInstanceUid, |
35 | 35 | seriesInstanceUid, |
36 | 36 | sopInstanceUid, |
37 | 37 | wadoRoot, |
38 | 38 | wadoUri, |
39 | | - authorizationHeaders |
| 39 | + authorizationHeaders, |
40 | 40 | } = displaySet; |
41 | 41 |
|
42 | | - this.retrieveDicomData( |
43 | | - studyInstanceUid, |
44 | | - seriesInstanceUid, |
45 | | - sopInstanceUid, |
46 | | - wadoRoot, |
47 | | - wadoUri, |
48 | | - authorizationHeaders |
49 | | - ).then( |
50 | | - byteArray => { |
| 42 | + DicomLoaderService.findDicomDataPromise(displaySet, studies).then( |
| 43 | + data => { |
| 44 | + const byteArray = new Uint8Array(data); |
51 | 45 | this.setState({ |
52 | | - byteArray |
| 46 | + byteArray: byteArray, |
53 | 47 | }); |
54 | 48 | }, |
55 | 49 | error => { |
56 | 50 | this.setState({ |
57 | | - error |
| 51 | + error, |
58 | 52 | }); |
59 | 53 |
|
60 | 54 | throw new Error(error); |
61 | 55 | } |
62 | 56 | ); |
63 | 57 | } |
64 | 58 |
|
65 | | - retrieveDicomData( |
66 | | - studyInstanceUid, |
67 | | - seriesInstanceUid, |
68 | | - sopInstanceUid, |
69 | | - wadoRoot, |
70 | | - wadoUri, |
71 | | - authorizationHeaders |
72 | | - ) { |
73 | | - // TODO: Passing in a lot of data we aren't using |
74 | | - |
75 | | - // TODO: Authorization header depends on the server. If we ever have multiple servers |
76 | | - // we will need to figure out how / when to pass this information in. |
77 | | - return fetch(wadoUri, { |
78 | | - headers: authorizationHeaders |
79 | | - }) |
80 | | - .then(response => response.arrayBuffer()) |
81 | | - .then(arraybuffer => { |
82 | | - return new Uint8Array(arraybuffer); |
83 | | - }); |
84 | | - } |
85 | | - |
86 | 59 | render() { |
87 | 60 | const { id, init, destroy } = OHIFDicomPDFViewport; |
88 | 61 | const pluginProps = { id, init, destroy }; |
|
0 commit comments