# AMI Medical Imaging JS ToolKit **Repository Path**: SimZHM/AMI-Medical-Imaging-JS-ToolKit ## Basic Information - **Project Name**: AMI Medical Imaging JS ToolKit - **Description**: No description available - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-01-22 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Build Status CDNJS Version NPM Version Slack

---------- ### Content 1. [Hello AMI](#hello-ami) 2. [Features](#features) 3. [Usage](#yarn) 4. [Developer corner](#developer-corner) 5. [Change log](#change-log) 6. [Credits](#credits) 7. [Citations](#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](https://fnndsc.github.io/ami)! ## 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 - ES2015 promises support. (consider using polyfills if needed) - Load THREEJS your index.html **BEFORE** AMI. ```hmtl ``` ### Yarn ```bash $> yarn add ami.js ``` *Note*: you might need to include [babel](https://github.com/babel/babel) transforms in you build process. ```javascript // app.js import * as AMI form 'ami.js'; window.console.log('Ready to rock!!'); ``` ### ami.js Check-out the [lessons](#lessons) to get started quickly. **New:** Use the new factory not to have to include `three` in index.html. ```javascript 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. ```html #app.js const AMI = AMI; window.console.log('Ready to rock!!'); ``` ## Developer corner Get the source code and related packages. ```bash $> git clone https://github.com/FNNDSC/ami.git $> cd ami $> yarn install ``` To run examples (browserify/babelify/serve the example) ```bash $> yarn example #run the geometries_slice example $> yarn example geometries_slice ``` Build standalone library to `lib/` ```bash $> yarn build:ami ``` Build minified standalone version run ```bash $> yarn build:ami:prod ``` Tests ```bash $> yarn test ``` Documentation ```bash $> yarn doc ``` Build and deploy dist/ to gh-pages ```bash $> yarn deploy ``` Find out more about the [API](https://fnndsc.github.io/ami/doc). # [Change log](https://github.com/FNNDSC/ami/releases) # Credits AMI would not exist without them: ##### [THREEJS](https://github.com/mrdoob/three.js/) - Base components such as Vectors, Matrices and Objects3D. - HTML template for example page. - Author(s): [mrdoob](https://github.com/mrdoob) ##### [DicomParser](https://github.com/chafey/dicomParser) - DICOM parsing relies on it. - Author(s): [chafey](https://github.com/chafey) ##### [CornerstoneWADOImageLoader](https://github.com/chafey/cornerstoneWADOImageLoader) - Was used to figure out how to use the dicom parser properly. - Author(s): [chafey](https://github.com/chafey) ##### [NIFTI-Reader-JS](https://github.com/rii-mango/NIFTI-Reader-JS) - Nifti parsing relies on it. - Author(s): [rii-mango](https://github.com/rii-mango) ##### [NRRD-JS](https://github.com/scijs/nrrd-js) - NRRD parsing relies on it. - Author(s): [jaspervdg](https://github.com/jaspervdg) ##### [JPEGLosslessDecoderJS](https://github.com/rii-mango/JPEGLosslessDecoderJS) - JPEG Lossless Decoder for DICOM images - Author(s): [rii-mango](https://github.com/rii-mango) ##### [Image-JPEG2000](https://github.com/OHIF/image-JPEG2000) - JPEG 2000 Decoder for DICOM images - Author(s): [jpambrun](https://github.com/jpambrun), [mozilla](https://github.com/mozilla/pdf.js/) ##### [Pako](https://github.com/nodeca/pako) - GZ file decompression - Author(s): [nodeca](https://github.com/nodeca) # Citations ### 2017 - [From brain imaging to weather imaging - McCaie - informaticslab, Met Office (blog post)](http://www.informaticslab.co.uk/side-projects/weather/3d/visualisations/2017/04/04/from-brain-imaging-to-weather-imaging.html) - [Medical imaging in the browser with the A* Medical Imaging (AMI) toolkit. - Rannou et al. - ESMRMB 2017 (poster)](http://epostersonline.com/esmrmb2017/node/3443) - [Reusable Client-Side JavaScript Modules for Immersive Web-Based Real-Time Collaborative Neuroimage Visualization - Bernal-Rusiel et al. - Frontiers in Neuroinformatics 2017 (article)](http://journal.frontiersin.org/article/10.3389/fninf.2017.00032/full) ### 2016 - [Volume Visualization Tools for Medical Applications in Ubiquitous Platforms - Arbelaiz et al. - LNICST 2016 (article)](https://link.springer.com/chapter/10.1007/978-3-319-49655-9_54) - [Interoperable communication of quantitative image analysis results using DICOM standard (DICOM4QI) - Fedorov et al. - RSNA 2016 (poster)](https://docs.google.com/presentation/d/16mZbPiXqU7tKTRAcB7bnP1RGybBLqF-O0319raUWYHo/edit#slide=id.p)