FNNDSC / ami

AMI Medical Imaging (AMI) JS ToolKit
https://fnndsc.github.io/ami/#viewers_upload
MIT License
717 stars 213 forks source link
ami dicom dicom-images fs javascript medical nifti nifti-format nrrd stl threejs trk volume-rendering vtk webgl xtk

Build Status CDNJS Version NPM Version Slack


Content

  1. Hello AMI
  2. Features
  3. Usage
  4. Developer corner
  5. Change log
  6. Credits
  7. Citations

Hello AMI

lesson00 Lesson 00: Load
Load DICOM Data and get a nice Series/Stack/Frame structure.
lesson01 Lesson 01: Visualize 3D
Look at the data we loaded in 3D.
lesson00 Lesson 02: Mesh
Add a mesh to the scene.
lesson00 Lesson 03: Visualize 2D
Look at the data in 2D.
lesson00 Lesson 04: Labelmap
Overlays on top of you data.
Lesson 05: TRK
TRK - coming soon.
lesson00 Lesson 06: Volume Rendering
Volume Rendering.
Lesson 07: Lookup tables
Lookup Tables - coming soon.
lesson00 Lesson 08: Custom progress bar
Custom progress bars.

(more) Advanced demos

Volume rendering, 2D viewer, arbitrary reslicing and more examples and advanced demos there!

Features

✅ READY 🔶 IN PROGRESS OR LIMITED SUPPORT ❌ ON ROADMAP

Capabilities Volumes Meshes Widgets
✅ 2D Visulization ✅ Dicom ✅ VTK (THREEJS) 🔶 Handle (2D/3D)
✅ 3D Visualization ✅ NRRD ✅ STL (THREEJS) 🔶 Probe (2D/3D)
✅ Volume Rendering ✅ Nifti ✅ TRK 🔶 Ruler (2D/3D)
✅ Lookup Tables ✅ MHD/(Z)RAW ✅ FSM 🔶 Orientation (2D/3D)
✅ Label Maps ✅ MGH/MGZ ❌ CURV 🔶 Angle (2D/3D)
❌ JPEG

Usage

Pre-requisites


<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r81/three.js"></script>

Yarn


$> yarn add ami.js

Note: you might need to include babel transforms in you build process.


// app.js
import * as AMI form 'ami.js';
window.console.log('Ready to rock!!');

ami.js

Check-out the lessons to get started quickly.

New: Use the new factory not to have to include three in index.html.

import * as THREE from 'three';
import {stackHelperFactory} from 'ami.js';

const StackHelper = stackHelperFactory(THREE);
const stackHelper = new StackHelper();

Add AMI in your index.html after THREEJS.


<!-- index.html -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r81/three.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ami.js/0.0.12/ami.min.js"></script>
<script src="https://github.com/FNNDSC/ami/raw/master/app.js"></script>

#app.js
const AMI = AMI;
window.console.log('Ready to rock!!');

Developer corner

Get the source code and related packages.


$> git clone https://github.com/FNNDSC/ami.git
$> cd ami
$> yarn install

To run examples (browserify/babelify/serve the example)


$> yarn example <examples name>

#run the geometries_slice example
$> yarn example geometries_slice

Build standalone library to lib/


$> yarn build:ami

Build minified standalone version run


$> yarn build:ami:prod

Tests


$> yarn test

Documentation


$> yarn doc

Build and deploy dist/ to gh-pages


$> yarn deploy

Find out more about the API.

Change log

Credits

AMI would not exist without them:

THREEJS
DicomParser
CornerstoneWADOImageLoader
NIFTI-Reader-JS
NRRD-JS
JPEGLosslessDecoderJS
Image-JPEG2000
Pako

Citations

2017