Examples
Basic usage
| Example | Description |
|---|---|
| Basic Stack Viewport Usage | Displays a single image in a Stack Viewport. |
| Stack Viewport API | Demonstrates how to interact with a Stack viewport (e.g. Set VOI Range, Next/Previous Images, Flip H/V, Rotate, Invert, Zoom/Pan, Reset) |
| Stack Viewport Positioning | Demonstrates basic positioning of the viewport image using display area and flip/rotation |
| Stack Sigmoid LUT | Demonstrates the Sigmoid LUT Function instead of Linear |
| Stack Viewport Events | Demonstrates the Events that are fired during interaction with a Stack Viewport |
| Stack Viewport Canvas-to-World | Demonstrates how to obtain the coordinates in the 3D world from a coordinate on the canvas. |
| Basic Volume Viewport Usage | Displays a set of DICOM images in a Volume Viewport. |
| Volume Viewport API | Demonstrates how to interact with a Volume viewport (e.g. Set VOI Range, Change Camera Position / Orientation, Change Slab Thickness, Flip H/V, Rotate, Invert, Zoom/Pan, Reset) |
| Volume Sigmoid LUT | Demonstrates the Sigmoid LUT Function instead of Linear |
| 3D Volume Rendering | Demonstrates how to 3D render a volume and apply a preset |
| Volume Viewport Events | Demonstrates the Events that are fired during interaction with a Volume Viewport |
| Multiple Volumes in a Volume Viewport | Demonstrates how to interact with a Volume viewport when using multiple volumes (e.g. for PET/CT fusion). |
| Multiple Volume Canvas-to-World | Demonstrates how to use the canvasToWorld API to find the intensity value of each volume on mouse hover |
| Poly Data Actor in a Volume Viewport | Demonstrates how to render poly data with a Volume viewport |
| Legacy DICOMweb (WADO-URI) Support | Demonstrates how to support retrieval of entire Part 10 DICOM files directly via URL |
| Basic Volume using streaming WADOURI | Demonstrates how to displays a DICOM series (via URL) in a Volume viewport |
| Load Web images of PNG or JPG format | Demonstrates how render web images in a stack viewport |
| Load a dynamic 4D data | Demonstrates how you can render 4D data with cornerstone 3d |
| Render To Canvas | Demonstrates how to use the api to render to a canvas directly |
| Change the colormap and adjusting the opacity | Demonstrate how to interact with a fusion viewport, specifically by changing the colormap and adjusting the opacity. |
| Prioritizing Slices during Volume Loading | Demonstrates how to customize the slice loading order using the streaming-image volume loader |
| Programmatic Pan/Zoom | Demonstrates how to programmatically pan/zoom a stack viewport. It can be used for setting initial display area and presentation state. |
| DICOM P10 from the local file system | Provides an interface to load a DICOM P10 image from your local file system to the Cornerstone3D |
| DICOM P10 from the local file system using CPU | Cornerstone3D uses WebGL for rendering by default (if available) and a fallback to CPU. This example force rendering on CPU for debugging purposes. |
| Stack viewport default properties | Demonstrates how you can set per image properties for a stack viewport that acts as default values for that specific image |
| Volume Slab Scroll | Demonstrates how to use the slab scroll tool to scroll through a volume |
| Resize viewport and change aspect ratio | Resize the viewport and allow various aspect ratios/conditions |
| Apply view reference and/or presentation parameters | Demonstrates how to apply various view/reference presentation parameters. |
| Custom Web Worker Function | Demonstrates how to use the web worker manager to register and execute custom web worker functions off the main thread |
Tools library
| Example | Description |
|---|---|
| Multiple Tool Groups | Demonstrates the usage of multiple tool groups for a set of viewports. |
| Stack Manipulation Tools | Demonstrates several manipulation tools (window/level, pan, zoom) as well as Stack Viewport-specific scrolling |
| Stack Manipulation Tools Touch | Demonstrates several manipulation tools (window/level, pan, zoom) as well as Stack Viewport-specific scrolling for mobile touch |
| Annotation Tool Modes | Demonstrates the various tool modes for annotation tools (active, passive, enabled, disabled) |
| Stack Annotation Tools | Demonstrates usage of various annotation tools (Probe, Rectangle ROI, Elliptical ROI, Bidirectional measurements) on a Stack Viewport. |
| Calibration Tools | Demonstrates usage of calibration tools on a Stack Viewport. |
| Volume Annotation Tools | Demonstrates annotation using the Length tool in a Volume Viewport (on axial, sagittal, and oblique views) |
| Annotation Selection and Locking | Demonstrates how to toggle the Locked and Selected states for Annotations |
| Viewports Reset Camera | Demonstrates various options that are available for resetting camera on viewports |
| Annotation changing visibility | Demonstrates how to toggle the Visibility state for Annotations |
| Binding Tools with Modifier Keys | Demonstrates how to bind a tool to a keyboard and mouse combination (e.g. shift+click, ctrl+click) |
| Magnify Tool | Demonstrates the usage of the magnification tool |
| Advanced Magnify Tool | Demonstrates the usage of the advanced magnification tool on stack and volume viewports |
| CINE Tool | Demonstrates the usage of the CINE tool |
| Freehand ROI Tool | Demonstrates drawing of both open and closed freehand ROIs (contour tool) on stack and volume viewports |
| Sculptor Tool | Demonstrates sculpting of freehand ROIs and FreehandContourSegmentations |
| Manipulation Tools with Poly Data in a Volume Viewport API | Demonstrates how to interact with a Volume viewport (Pan, Zoom, Rotate) by mouse events |
| Volume Viewport Orientation | Demonstrates you can switch between different orientation of a volume viewport |
| Referencing Cursors | Demonstrates how to synchronize the cursor between multiple viewports |
| Double Click With Stack Annotation Tools | Demonstrates double click detection before/during/after using various annotation tools on a stack viewport. |
| Load a petCT data where PT series is 4D | Demonstrates how to render a 4D data into multiple viewports and fuse them |
| Colorbar | Demonstrates how to add an interactive colobar to stack viewport |
| Advanced Colorbar | Demonstrates how to add an interactive colobar to stack and volume viewports with PT/CT volumes |
| Ultrasound Enhanced Region | Demonstrates several tools that can be used on Ultrasound data with Sequence of Ultrasound Regions Attributes |
| Window Level Region | Demonstrates how to use the window level region tool to adjust the window level of an image |
| Spline ROI Tools | Demonstrates how to use spline ROI tools (Linear, Cardinal, Catmull-ROM and BSpline) |
| Livewire | Demonstrates how to use the livewire tool to create ROIs |
Segmentation
| Example | Description |
|---|---|
| Labelmap Segmentation Rendering | Demonstrates how to add a Labelmap to the viewports for rendering |
| Contour Segmentation Representation | Demonstrates how to use the Contour Segmentation Representation |
| Surface Segmentation Representation | Demonstrates how to use the Surface Segmentation Representation |
| Labelmap Segmentation Swapping | Demonstrate how to display segmentations on a volume viewport, and swap which segmentation is being displayed |
| Global Labelmap Segmentation Configuration | Demonstrates how to set a global configuration for segmentation representations |
| Contour rendering configuration | Demonstrates how to set a configuration (such as line thickness) for contour rendering |
| ToolGroup Specific Labelmap Segmentation Configuration | Demonstrate how to change the configuration of how a specific tool group displays segmentations through via segmentation representations |
| Labelmap segment-specific Configuration | Demonstrates how to change the configuration of a specific segment |
| Segmentation Tools (Labelmap) - Brush, Scissors | Demonstrates how to use manual segmentation tools to modify the segmentation data |
| Labelmap Segmentation Dynamic Threshold and Preview | Demonstrates how to use dynamic threshold with prevview to modify the segmentation data |
| Labelmap Segment Color Change | Here we demonstrate how to change the color of a segment in a segmentation representation |
| Labelmap Segmentation Locking | Demonstrate how a segment can be locked such that it cannot be edited by segmentation tools |
| Rendering Labelmap with Different Resolutions | Demonstrates that the segmentation resolution need not to be the same as the source data |
| Rectangle ROI Threshold Segmentation | Demonstrates how to use the rectangle roi tool to perform threshold segmentation |
| Segmentation Labelmap creation/edit for stack viewports | Demonstrates how to create and edit a segmentation labelmap for stack viewports |
| Spline ROI Tools | Demonstrates how to use spline ROI tools (Linear, Cardinal, Catmull-ROM and BSpline) |
| Interpolation of Contours between slices | Demonstrates how to setup interpolation between frames for contour segmentations |
| Contour Segmentation Configuration | Demonstrates how to set a configuration for contour segmentations |
| Segmentation Bidirectional Tool | Demonstrates the calculation of largest bidirectional diameters within segmented contours, akin to RECIST measurements for assessing changes in tumor sizes or anatomical structures over time in medical imaging. |
| Segment Select Tool | Demonstrates the segmentSelectTool capabilities which you can use to switch active segment by only hovering over them. |
| Spline Segmentation Tools | Demonstrates how to create contour segmentations using SplineROI tool |
| Advanced Spline Segmentation Tools | Demonstrates how to create contour segmentations using SplineROI tool on multiple viewports (stack and volume), segmentations and different styles for active and inactive states |
| Freehand Segmentation Tool | Demonstrates how to create contour segmentations using planarFreehandROITool tool |
| Livewire Segmentation Tool | Demonstrates how to create contour segmentations using livewireContour tool |
Advanced Tools library
| Example | Description |
|---|---|
| Maximum Intensity Projection (MIP) - Jump to Click | Demonstrates how to obtain the location of the maximum value along the ray in a MIP view, and then navigate another set of viewports to this location. |
| Crosshairs | Here we demonstrate crosshairs linking three orthogonal views of the same data |
| Overlay Grid | Demonstrate overlay grid tool usage with three viewports one for each orientation |
| Reference Lines | Demonstrate reference line tool for rendering viewports location with respect to each other |
| Orientation Marker | Demonstrate orientation marker tool for viewports orientation it has cube, axis and custom actors |
| PET-CT Fusion + MIPLayout | PT-CT fusion layout with Crosshairs, and synchronized cameras, CT W/L and PET threshold |
| Shared Tool State | Demonstrates that annotations are stored on frame of reference, and can therefore be shared between Stack and Volume Viewports. |
| StackViewport <--> VolumeViewport | Demonstrates how annotations are preserved and rendered correctly even when a stack viewport is converted to a volume viewport and vice versa. This is an advanced usage for MPR |
| Stack Segmentation <--> Volume Segmentation | Demonstrates how you can convert stack to volume segmentation and vice versa while the data is preserved and memory is optimized |
| Volume Viewport Synchronization | Demonstrates how to set up synchronization between viewports for viewport-level (e.g. camera) and actor-level (e.g. VOI) properties. |
| Cancel Annotation Drawing | Demonstrates how to use the keyboard (ESC) key to cancel annotation drawing. |
| Scale Overlay Tool | Demonstrates the scale overlay tool for rendering a scale on a viewport showing the real world size of the image. |
| Generate 3D Volume From 4D Data | Demonstrates generating a 3D volume from 4D data using subtract, average or sum. |
Polymorph Segmentation
| Example | Description |
|---|---|
| Convert contour segmentation to stack labelmap | Demonstrates how to convert a contour segmentation to a stack labelmap |
| Convert contour segmentation to volume labelmap | Demonstrates how to convert a contour segmentation to a volume labelmap |
| Convert contour segmentation to surface | Demonstrates how to convert a contour segmentation to a closed surface |
| Convert stack labelmap to surface | Demonstrates how to convert a stack labelmap to a closed surface |
| Convert volume labelmap to surface | Demonstrates how to convert a volume labelmap to a closed surface |
| Convert surface to volume labelmap | Demonstrates how to convert a closed surface to a volume labelmap |
| Convert surface to stack labelmap | Demonstrates how to convert a closed surface to a stack labelmap |
| Convert volume labelmap to contour | Demonstrates how to convert a volume labelmap to a contour segmentation |
| Convert surface to contour | Demonstrates how to convert a closed surface to a contour segmentation |
DICOM image loader
| Example | Description |
|---|---|
| WADO-URI (DICOM P10) | WADO-URI (DICOM P10 via HTTP GET) with different codecs |
| HTJ2K Stack Basic Loading | Demonstrates basic loading of HTJ2K |
| HTJ2K Volume Basic Loading | Demonstrates basic loading of HTJ2K in MPR views |
| Stack Progressive Loading | Stack progressive loading using HTJ2K and/or other methods. |
| Volume Progressive Loading | Volume progressive loading inter and intra image |
Adapters
| Example | Description |
|---|---|
| DICOM SEG export | Demonstrates how to export a segmentation to DICOM SEG |
| DICOM SEG Stack | Demonstrates how to import or export a segmentation to DICOM SEG from a Cornerstone3D stack |
| DICOM SEG Volume | Demonstrates how to import or export a segmentation to DICOM SEG from a Cornerstone3D volume |
Video Viewport
| Example | Description |
|---|---|
| Video Display | Basic video display |
| Video Navigation | Navigation of video playback |
| Video Color Control | Video Color Correction and Brightness/Contrast |
| Video Tools | Video annotation tools |
| Video Annotation Grouping | Annotation grouping tools |
| Video Labelmap Segmentation | Video Labelmap Based Segmentation |
| Video Contour Segmentation | Demonstrates spline and livewire contour segmentation on video viewports |
| Video Range Selection | Video range selection |
Nifti Volume loader
| Example | Description |
|---|---|
| Load Nifti Volume | Demonstrates how to load and render a nifti volume |
| Tool Usage in Nifti | Demonstrates how to use manipulation and annotation tools on a nifti volume |