Skip to main content
Version: 3.9.0-beta.111 (Latest)

New Architecture

New Architecture​

  • Viewport-Centric Architecture

    • Previous: Segmentations were tied to toolGroups
    • Now: Segmentations are tied directly to viewports
    • Impact: More granular control but requires significant code changes
  • Representation Management

    • Previous: Required managing segmentation representation UIDs
    • Now: Uses simpler segmentationId + type combination
    • Impact: Simplified but requires API updates

If you are not familiar with the difference between a segmentation and a segmentation representation, below

Read More

In Cornerstone3DTools, we have decoupled the concept of a Segmentation from a Segmentation Representation. This means that from one Segmentation we can create multiple Segmentation Representations. For instance, a Segmentation Representation of a 3D Labelmap, can be created from a Segmentation data, and a Segmentation Representation of a Contour can be created from the same Segmentation data. This way we have decouple the presentational aspect of a Segmentation from the underlying data.

Similar relationship structure has been adapted in popular medical imaging softwares such as 3D Slicer with the addition of polymorph segmentation.

Architecture Overview​

The new architecture in Cornerstone3D 2.0 makes a clear distinction between:

  • A segmentation (the data structure containing segments)
  • A segmentation representation (how that segmentation is visualized in a specific viewport)

Let's now review what has changed