forked from InsightSoftwareConsortium/itk-wasm
/
readImageDICOMFileSeries.js
31 lines (27 loc) · 1.17 KB
/
readImageDICOMFileSeries.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
import createWebworkerPromise from './createWebworkerPromise'
import PromiseFileReader from 'promise-file-reader'
import config from './itkConfig'
const readImageDICOMFileSeries = (webWorker, fileList) => {
let worker = webWorker
return createWebworkerPromise('ImageIO', worker)
.then(({ webworkerPromise, worker: usedWorker }) => {
worker = usedWorker
const fetchFileDescriptions = Array.from(fileList, function (file) {
return PromiseFileReader.readAsArrayBuffer(file).then(function (arrayBuffer) {
const fileDescription = { name: file.name, type: file.type, data: arrayBuffer }
return fileDescription
})
})
return Promise.all(fetchFileDescriptions).then(function (fileDescriptions) {
const transferables = fileDescriptions.map((description) => {
return description.data
})
return webworkerPromise.postMessage({ operation: 'readDICOMImageSeries', fileDescriptions: fileDescriptions, config: config },
transferables)
}
).then(function (image) {
return Promise.resolve({ image, webWorker: worker })
})
})
}
export default readImageDICOMFileSeries