Skip to main content

Generate Hanging Protocol script using AI

Open in Cursor
The Custom Hanging Protocol feature allows you to write a script that will programmatically define the visual layout of your Annotation Tool at the Project level. Pre-configuring parameters such as Windowing settings, Thresholding settings, the number of viewports in a Layout Tab, which views display by default, etc., is both an easy way to save time for your labelers and makes for a much smoother overall annotation experience.
This guide provides an overview of the available functions and types to help you effectively manage these settings. At present, you can control the following:
  • The dimensions of a Layout Tab (setDimensions):
    • REQUIRED: the number of columns in a Layout Tab (numColumns)
    • REQUIRED: the number of rows in a Layout Tab (numRows)
  • The contents of each viewport in a Layout Tab (setViews):
    • REQUIRED: an array describing each viewport’s content (views)
    • REQUIRED: Which series to show (seriesIndex)
    • REQUIRED: Which way to view the series (plane)
    • Flip the view horizontally (flippedHorizontally)
    • Flip the view vertically (flippedVertically)
    • Activate Intellisync (synchronized)
    • Maximize a single viewport in a Layout Tab (expanded)
  • The default Windowing setting for each Series (setWindowing):
    • REQUIRED: the number of the Series (seriesIndex)
    • REQUIRED: the desired Windowing Level (level)
    • REQUIRED: the desired Windowing Width (width)
  • The default Thresholding setting for each Series (setThresholding):
    • REQUIRED: the number of the Series (seriesIndex)
    • REQUIRED: the lower limit of the Thresholding range (min)
    • REQUIRED: the upper limit of the Thresholding range (max)
  • The default label settings for the Task (setLabelSettings):
    • REQUIRED: the LabelSetting object (labelSetting)
  • Activate Label Mirroring for a Layout Tab (setLabelMirroring)
    • REQUIRED: the index of the viewport to mirror from (viewIndex)
  • Create and configure a new Layout Tab in your Task (nextTab)
  • Disable certain viewports (disableViewType)
The Custom Hanging Protocol script takes the available Series for a particular Task as input and returns the layout dimensions and list of views to display.

Custom Hanging Protocol Format Reference

Examples

Default Script

This default script uses some defined macros to make setting the view easier.

Set Single View


Set Multi-Series Layout

This script sets each Series as a single viewport that is viewed on the imaging axis.

Set Multi-Planar Reconstruction


Set and Configure Multiple Layout Tabs

The following script creates 2 Layout Tabs, each containing 2 Series.

Disable a Specific Viewport

The following script will disable all 3D viewports in the RedBrick Annotation Tool.

Synchronize Views

Hanging protocols can be used alongside intellisync for ease of use when annotating scans in a study. For example, let’s assume that we have uploaded a single Task containing 4 Series from an MRI study: T1, T1CE, T2, and Flair weighted MR scans. After we enable Hanging Protocols, the hangingProtocol() function will take the 4 Series as an input and parse them in the following way:
We can then use the information that has been parsed by the hangingProtocol() function to generate a script that sorts our views, displays the imaging axis and activates Intellisync.