UNPKG

@niivue/dicom-loader

Version:

a module to load DICOM files into a format that can be used by niivue

36 lines 1.32 kB
// src/index.ts import { Dcm2niix } from "@niivue/dcm2niix"; async function dicomLoader(data) { const dcm2niix = new Dcm2niix(); await dcm2niix.init(); let returnedFiles = []; if (Array.isArray(data) && data.length === 1 && data[0].data instanceof ArrayBuffer) { const fileObj = data[0]; const file = new File([fileObj.data], fileObj.name, { type: "application/octet-stream" }); returnedFiles = await dcm2niix.input([file]).run(); } else if (Array.isArray(data) && data.length > 0) { const first = data[0]; if (first.data instanceof ArrayBuffer) { const files = []; for (let i = 0; i < data.length; i++) { const dicom = data[i]; const file = new File([dicom.data], dicom.name, { type: "application/octet-stream" }); files.push(file); } returnedFiles = await dcm2niix.input(files).run(); } else { returnedFiles = await dcm2niix.input(data).run(); } } const niiFiles = returnedFiles.filter((file) => file.name.endsWith(".nii") || file.name.endsWith(".nii.gz")); const arrayBuffers = []; for (const file of niiFiles) { const niiArrayBuffer = await file.arrayBuffer(); arrayBuffers.push({ name: file.name, data: niiArrayBuffer }); } return arrayBuffers; } export { dicomLoader }; //# sourceMappingURL=index.mjs.map