Sockets

Sockets are used to describe objects such as images, masks, annotations and other values used throughout Grand Challenge. They are used to define the inputs and outputs of algorithms (where a combination of input and output sockets is called an interface), the display set values in a reader study, and the archive item values in an archive. Consider for example an image uploaded to Grand Challenge. Without a socket, it can be any kind of image. By linking the socket Brain MRI to the image, it defines the type of image. Sockets are thus used to give meaning to objects.

There are several socket types, which can be categorized into three types:

  1. Images, which are subdivided in
    • Images
    • Segmentations
    • Heat maps
  2. Files
  3. Values

For algorithms, the sockets determine the paths where input values are provided to the algorithm and where output values are expected.

For reader studies, the sockets can be used to create display sets, custom layouts and to link default values to questions.

Segmentation masks

For sockets of type Segmentation, a dictionary needs to be provided that lists the possible voxel values and corresponding labels for each voxel value. This dictionary is called Overlay Segments. This will be used to validate any data linked to that socket that is uploaded to Grand Challenge. If the data contains voxel values not listed in the Overlay Segments, an error will be shown and the data will not be stored in Grand Challenge. The most simple Overlay Segments for a binary mask would look like this:

[
    {"name": "Background", "visible": true, "voxel_value": 0},
    {"name": "Tissue", "visible": true, "voxel_value": 1}
]

Json data

For sockets of type Json, a Json schema needs to be provided. Any data linked to the socket that is uploaded to Grand Challenge will be validated against that schema.