-
Notifications
You must be signed in to change notification settings - Fork 49
/
index.js
37 lines (29 loc) · 1.12 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import readImageDICOMFileSeries from 'itk/readImageDICOMFileSeries'
import curry from 'curry'
import setupDicomForm from './dicomForm'
import parseDicomFiles from './parseDicomFiles'
const outputFileInformation = curry(async function outputFileInformation (outputTextArea, event) {
outputTextArea.textContent = "Parsing..."
// Get files
const dataTransfer = event.dataTransfer
const files = event.target.files || dataTransfer.files
// Parse DICOM metadata
const { patientDict, failures } = await parseDicomFiles(files, true)
// Select DICOM serie
outputTextArea.textContent = "Please select serie..."
setupDicomForm(patientDict, async (files) => {
outputTextArea.textContent = "Loading..."
// Read DICOM serie
const { image, webWorker } = await readImageDICOMFileSeries(null, files)
webWorker.terminate()
// Display
function replacer (key, value) {
if (!!value && value.byteLength !== undefined) {
return String(value.slice(0, 6)) + '...'
}
return value
}
outputTextArea.textContent = JSON.stringify(image, replacer, 4)
})
})
export { outputFileInformation }