MRI Viewer is a high performance web tool for advanced visualization (both in 2D and 3D modes) medical volumetric data, provided in popular file formats: DICOM, NIfTI, KTX™, HDR.
MRI Viewer can read local data from files/folders and from predefined web locations.
The demonstration project shows both (local data / remote data) usage types.
MRI Viewer can be used in a medical center with diagnostic equipment.
- ⚡️ MRI and CT scanning results can be viewed in any computer (inside the medical office and in the client home)
- 💡 Qualified medical personnel can provide diagnosis or conclusion based on provided visualization.
- 🌐 App can be used as a web application as a part of large websites and services
- 🎓 Can be used by research institutes due to NIfTI, HDR, etc. file standards support
- 🏥 Medical centers can create their clients database, based on this viewer.
This is a monorepo. Sub-projects are organized as follows:
mriviewer/
├── web/ # React web application (HTML5 viewer)
├── visionos/ # Swift/SwiftUI app for Apple Vision Pro (future)
├── mri-core/ # C++ + WASM core processing library (future)
├── scripts/ # Shared automation and tooling scripts
├── assets/ # Shared assets (images, models, etc.)
└── docs/ # Architecture diagrams and documentation
The web app lives in web/. It works as a standalone HTML5 web application. The latest version can be used with
WebGL-enabled desktop browsers (Chrome, Firefox, Opera) and allows limited usage
with mobile browsers (Android Chrome). Version for Safari (macOS, iOS) is planned for future.
cd web
npm install
npm run start
DICOM file format description can be found here and here. KTX™ file format details are listed in KTX. Popular DICOM loader framework: GDCM. Some JavaScript libraries to work with DICOM file format:
Three.js is used as some gateway to WebGL renderer. The current Three.js version does not support 3D textures, so we use tricky way to build 2D texture from initial 3D texture by linking 2D slices all together as a large tile map. This idea (with source codes) can be seen in project WebGL Volume Rendering.
Links to publications that contain the product references
- Belyaev, S., Smirnov, P., Smirnova, N., Shubnikov, V. Fast adaptive undersampling for volume rendering
- Belyaev, S.Y., Smirnova, N.D., Smirnov, P.O., Savchuk, D.A. Fast selective antialiasing for direct volume rendering
- Savchuk, D.A., Belyaev, S.Y. Two-pass real-Time direct isosurface rendering algorithm optimization for HTC Vive and low performance devices
- Belyaev, S., Shubnikov, V., Motornyi, N. Adaptive screen sampling algorithm acceleration for volume rendering
- Belyaev, S., Smirnov, P., Shubnikov, V., Smirnova, N. Adaptive algorithm for accelerating direct isosurface rendering on GPU
Here you can find a demo app.
See Contributing Guide.
Copyright (c) 2015–2021 EPAM Systems, Inc.
