UNPKG

paraview-glance

Version:

Web application for Visualizing Scientific and Medical datasets

71 lines (59 loc) 2.11 kB
import vtkITKImageReader from 'vtk.js/Sources/IO/Misc/ITKImageReader'; import vtkITKPolyDataReader from 'vtk.js/Sources/IO/Misc/ITKPolyDataReader'; import extensionToImageIO from 'itk/extensionToImageIO'; import readImageArrayBuffer from 'itk/readImageArrayBuffer'; import extensionToPolyDataIO from 'itk/extensionToPolyDataIO'; import readPolyDataArrayBuffer from 'itk/readPolyDataArrayBuffer'; import vtkITKDicomImageReader from './ITKDicomImageReader'; vtkITKImageReader.setReadImageArrayBufferFromITK(readImageArrayBuffer); vtkITKPolyDataReader.setReadPolyDataArrayBufferFromITK(readPolyDataArrayBuffer); const imgExtSet = new Set( Array.from(extensionToImageIO.keys()).map((ext) => ext.toLowerCase()) ); // blacklist json, since we load in measurements.json instead imgExtSet.delete('json'); export const imageExtensions = Array.from(imgExtSet); export const polyDataExtensions = Array.from( new Set( Array.from(extensionToPolyDataIO.keys()).map((ext) => ext.toLowerCase()) ) ); export const extensions = imageExtensions.concat(polyDataExtensions); export function registerToGlance(Glance) { if (Glance) { imageExtensions .filter((e) => e !== 'dcm') .forEach((extension) => Glance.registerReader({ extension, name: `${extension.toUpperCase()} Reader`, vtkReader: vtkITKImageReader, binary: true, fileNameMethod: 'setFileName', }) ); polyDataExtensions.forEach((extension) => Glance.registerReader({ extension, name: `${extension.toUpperCase()} Reader`, vtkReader: vtkITKPolyDataReader, binary: true, fileNameMethod: 'setFileName', }) ); Glance.registerReader({ extension: 'dcm', name: 'DICOM File Series Reader', vtkReader: vtkITKDicomImageReader, fileNameMethod: 'setFileName', fileSeriesMethod: 'readFileSeries', binary: true, }); } } export default { extensions, registerToGlance, }; const Glance = (typeof window === 'undefined' ? {} : window).Glance; registerToGlance(Glance);