Skip to content

gcapi.models¤

PageResult¤

A paginated result container for API responses.

This class provides a sequence-like interface for handling paginated API responses, containing metadata about the pagination state and the actual results.

Attributes:

  • offset (int) –

    The starting index of the results.

  • limit (int) –

    The maximum number of results in this page.

  • total_count (int) –

    The total number of items available.

Algorithm ¤

Source code in gcapi/models.py
@dataclass
class Algorithm(BaseModel):
    api_url: str
    url: str
    description: Optional[str]
    pk: str
    title: str
    logo: str
    slug: str
    average_duration: Optional[float]
    interfaces: list[AlgorithmInterface]

AlgorithmImage ¤

Source code in gcapi/models.py
@dataclass
class AlgorithmImage(BaseModel):
    pk: str
    url: str
    api_url: str
    algorithm: str
    created: str
    import_status: str
    image: Optional[str]

AlgorithmInterface ¤

Source code in gcapi/models.py
@dataclass
class AlgorithmInterface(BaseModel):
    inputs: list[ComponentInterface]
    outputs: list[ComponentInterface]

Answer ¤

Source code in gcapi/models.py
@dataclass
class Answer(BaseModel):
    answer: Optional[Any]
    api_url: str
    created: str
    creator: str
    display_set: Optional[str]
    pk: str
    question: str
    modified: str
    answer_image: Optional[str]
    last_edit_duration: Optional[str]
    total_edit_duration: Optional[str]
    is_ground_truth: bool

AnswerRequest ¤

Source code in gcapi/models.py
@dataclass
class AnswerRequest(BaseModel):
    answer: Optional[Any]
    display_set: Optional[str]
    question: str
    last_edit_duration: Optional[str]

Archive ¤

Source code in gcapi/models.py
@dataclass
class Archive(BaseModel):
    pk: str
    title: str
    logo: str
    description: Optional[str]
    api_url: str
    url: str

ArchiveItem ¤

Source code in gcapi/models.py
@dataclass
class ArchiveItem(BaseModel):
    pk: str
    archive: str
    values: list[HyperlinkedComponentInterfaceValue]
    hanging_protocol: Optional[HangingProtocol]
    optional_hanging_protocols: list[HangingProtocol]
    view_content: Any
    title: str = ""

ArchiveItemPost ¤

Source code in gcapi/models.py
@dataclass
class ArchiveItemPost(BaseModel):
    pk: str
    archive: Optional[str]
    values: Optional[list[ComponentInterfaceValuePost]]
    hanging_protocol: Optional[HangingProtocol]
    optional_hanging_protocols: list[HangingProtocol]
    view_content: Any
    title: str = ""

ArchiveItemPostRequest ¤

Source code in gcapi/models.py
@dataclass
class ArchiveItemPostRequest(BaseModel):
    archive: Optional[str]
    values: Optional[list[ComponentInterfaceValuePostRequest]]
    title: str = ""

BaseModel ¤

Source code in gcapi/model_base.py
class BaseModel:
    def __getitem__(self, key):
        self._warn_deprecated_access(key, "getting")
        return getattr(self, key)

    def __setitem__(self, key, value):
        self._warn_deprecated_access(key, "setting")
        return setattr(self, key, value)

    def __delitem__(self, key):
        self._warn_deprecated_access(key, "deleting")
        return delattr(self, key)

    @staticmethod
    def _warn_deprecated_access(key, action):
        warnings.warn(
            message=(
                f'Using ["{key}"] for {action} attributes is deprecated '
                "and will be removed in the next release. "
                f'Suggestion: Replace ["{key}"] with .{key}'
            ),
            category=DeprecationWarning,
            stacklevel=3,
        )

BlankEnum ¤

Source code in gcapi/models.py
class BlankEnum(Enum):
    field_ = ""

CategoricalOption ¤

Source code in gcapi/models.py
@dataclass
class CategoricalOption(BaseModel):
    id: int
    title: str
    default: Optional[bool]

Challenge ¤

Source code in gcapi/models.py
@dataclass
class Challenge(BaseModel):
    title: Optional[str]
    short_name: str

ChallengeRequest ¤

Source code in gcapi/models.py
@dataclass
class ChallengeRequest(BaseModel):
    title: Optional[str]
    short_name: str

ColorInterpolationEnum ¤

Source code in gcapi/models.py
class ColorInterpolationEnum(Enum):
    RGB = "RGB"
    HLS = "HLS"
    HLSpos = "HLSpos"
    HLSneg = "HLSneg"
    Constant = "Constant"

ColorSpaceEnum ¤

Source code in gcapi/models.py
class ColorSpaceEnum(Enum):
    GRAY = "GRAY"
    RGB = "RGB"
    RGBA = "RGBA"
    YCBCR = "YCBCR"

ComponentInterface ¤

Source code in gcapi/models.py
@dataclass
class ComponentInterface(BaseModel):
    title: str
    description: Optional[str]
    slug: str
    kind: str
    pk: int
    default_value: Optional[Any]
    super_kind: str
    relative_path: str
    overlay_segments: Optional[Any]
    look_up_table: Optional[LookUpTable]

ComponentInterfaceValue ¤

Source code in gcapi/models.py
@dataclass
class ComponentInterfaceValue(BaseModel):
    interface: ComponentInterface
    value: Optional[Any]
    file: Optional[str]
    image: Optional[SimpleImage]
    pk: int

ComponentInterfaceValuePost ¤

Source code in gcapi/models.py
@dataclass
class ComponentInterfaceValuePost(BaseModel):
    interface: str
    value: Optional[Any]
    file: Optional[str]
    image: Optional[str]
    pk: int

ComponentInterfaceValuePostRequest ¤

Source code in gcapi/models.py
@dataclass
class ComponentInterfaceValuePostRequest(BaseModel):
    interface: str
    value: Optional[Any]
    file: Optional[bytes]
    image: Optional[str]
    upload_session: Optional[str]
    user_upload: Optional[str]

DisplaySet ¤

Source code in gcapi/models.py
@dataclass
class DisplaySet(BaseModel):
    pk: str
    reader_study: str
    values: list[HyperlinkedComponentInterfaceValue]
    order: Optional[int]
    api_url: str
    hanging_protocol: Optional[HangingProtocol]
    optional_hanging_protocols: list[HangingProtocol]
    view_content: Any
    description: str
    index: Optional[int]
    title: str = ""

DisplaySetPost ¤

Source code in gcapi/models.py
@dataclass
class DisplaySetPost(BaseModel):
    pk: str
    reader_study: Optional[str]
    values: Optional[list[ComponentInterfaceValuePost]]
    order: Optional[int]
    api_url: str
    hanging_protocol: Optional[HangingProtocol]
    optional_hanging_protocols: list[HangingProtocol]
    view_content: Any
    description: str
    index: Optional[int]
    title: str = ""

DisplaySetPostRequest ¤

Source code in gcapi/models.py
@dataclass
class DisplaySetPostRequest(BaseModel):
    reader_study: Optional[str]
    values: Optional[list[ComponentInterfaceValuePostRequest]]
    order: Optional[int]
    title: str = ""

Evaluation ¤

Source code in gcapi/models.py
@dataclass
class Evaluation(BaseModel):
    pk: str
    method: Optional[str]
    submission: Submission
    created: str
    published: Optional[bool]
    outputs: list[ComponentInterfaceValue]
    rank: Optional[int]
    rank_score: Optional[float]
    rank_per_metric: Optional[Any]
    status: str
    title: str

ExternalEvaluation ¤

Source code in gcapi/models.py
@dataclass
class ExternalEvaluation(BaseModel):
    pk: str
    method: Optional[str]
    submission: Submission
    created: str
    published: Optional[bool]
    outputs: list[ComponentInterfaceValue]
    rank: Optional[int]
    rank_score: Optional[float]
    rank_per_metric: Optional[Any]
    status: str
    title: str
    algorithm_model: Optional[dict[str, Any]]
    algorithm_image: dict[str, Any]
    claimed_by: Optional[int]
    phase_pk: str

ExternalEvaluationUpdate ¤

Source code in gcapi/models.py
@dataclass
class ExternalEvaluationUpdate(BaseModel):
    metrics: Optional[Any]
    status: StatusEnum
    error_message: Optional[str]

EyeChoiceEnum ¤

Source code in gcapi/models.py
class EyeChoiceEnum(Enum):
    OD = "OD"
    OS = "OS"
    U = "U"
    NA = "NA"

Feedback ¤

Source code in gcapi/models.py
@dataclass
class Feedback(BaseModel):
    session: str
    screenshot: Optional[str]
    user_comment: str
    context: Optional[Any]

FeedbackRequest ¤

Source code in gcapi/models.py
@dataclass
class FeedbackRequest(BaseModel):
    session: str
    screenshot: Optional[bytes]
    user_comment: str
    context: Optional[Any]

FieldOfViewEnum ¤

Source code in gcapi/models.py
class FieldOfViewEnum(Enum):
    F1M = "F1M"
    F2 = "F2"
    F3M = "F3M"
    F4 = "F4"
    F5 = "F5"
    F6 = "F6"
    F7 = "F7"
    U = "U"

Follow ¤

Source code in gcapi/models.py
@dataclass
class Follow(BaseModel):
    pk: int
    flag: Optional[str]

FollowRequest ¤

Source code in gcapi/models.py
@dataclass
class FollowRequest(BaseModel):
    flag: Optional[str]

GCAPIVersion ¤

Source code in gcapi/models.py
@dataclass
class GCAPIVersion(BaseModel):
    latest_version: str
    lowest_supported_version: str

HangingProtocol ¤

Source code in gcapi/models.py
@dataclass
class HangingProtocol(BaseModel):
    json: Any
    title: str
    pk: str
    svg_icon: str

HangingProtocolRequest ¤

Source code in gcapi/models.py
@dataclass
class HangingProtocolRequest(BaseModel):
    json: Any
    title: str

HyperlinkedComponentInterfaceValue ¤

Source code in gcapi/models.py
@dataclass
class HyperlinkedComponentInterfaceValue(BaseModel):
    interface: ComponentInterface
    value: Optional[Any]
    file: Optional[str]
    image: Optional[str]
    pk: int

HyperlinkedImage ¤

Source code in gcapi/models.py
@dataclass
class HyperlinkedImage(BaseModel):
    pk: str
    name: str
    files: list[ImageFile]
    width: int
    height: int
    depth: Optional[int]
    color_space: ColorSpaceEnum
    modality: Optional[ImagingModality]
    eye_choice: Optional[EyeChoiceEnum]
    stereoscopic_choice: Optional[
        Union[StereoscopicChoiceEnum, BlankEnum, NullEnum]
    ]
    field_of_view: Optional[Union[FieldOfViewEnum, BlankEnum, NullEnum]]
    shape_without_color: list[int]
    shape: list[int]
    voxel_width_mm: Optional[float]
    voxel_height_mm: Optional[float]
    voxel_depth_mm: Optional[float]
    api_url: str
    patient_id: Optional[str]
    patient_name: Optional[str]
    patient_birth_date: Optional[str]
    patient_age: Optional[str]
    patient_sex: Optional[Union[PatientSexEnum, BlankEnum]]
    study_date: Optional[str]
    study_instance_uid: Optional[str]
    series_instance_uid: Optional[str]
    study_description: Optional[str]
    series_description: Optional[str]
    window_center: Optional[float]
    window_width: Optional[float]
    segments: Optional[Any]

HyperlinkedJob ¤

Source code in gcapi/models.py
@dataclass
class HyperlinkedJob(BaseModel):
    pk: str
    url: str
    api_url: str
    algorithm_image: str
    inputs: list[HyperlinkedComponentInterfaceValue]
    outputs: list[HyperlinkedComponentInterfaceValue]
    status: str
    hanging_protocol: Optional[HangingProtocol]
    optional_hanging_protocols: list[HangingProtocol]
    view_content: Any
    algorithm: str

ImageFile ¤

Source code in gcapi/models.py
@dataclass
class ImageFile(BaseModel):
    pk: str
    image: Optional[str]
    file: str
    image_type: Optional[ImageTypeEnum]

ImageTypeEnum ¤

Source code in gcapi/models.py
class ImageTypeEnum(Enum):
    MHD = "MHD"
    TIFF = "TIFF"
    DZI = "DZI"

ImagingModality ¤

Source code in gcapi/models.py
@dataclass
class ImagingModality(BaseModel):
    modality: str

JobPost ¤

Source code in gcapi/models.py
@dataclass
class JobPost(BaseModel):
    pk: str
    inputs: list[ComponentInterfaceValuePost]
    status: str

JobPostRequest ¤

Source code in gcapi/models.py
@dataclass
class JobPostRequest(BaseModel):
    algorithm: str
    inputs: list[ComponentInterfaceValuePostRequest]

LocationEnum ¤

Source code in gcapi/models.py
class LocationEnum(Enum):
    AF = "AF"
    AX = "AX"
    AL = "AL"
    DZ = "DZ"
    AS = "AS"
    AD = "AD"
    AO = "AO"
    AI = "AI"
    AQ = "AQ"
    AG = "AG"
    AR = "AR"
    AM = "AM"
    AW = "AW"
    AU = "AU"
    AT = "AT"
    AZ = "AZ"
    BS = "BS"
    BH = "BH"
    BD = "BD"
    BB = "BB"
    BY = "BY"
    BE = "BE"
    BZ = "BZ"
    BJ = "BJ"
    BM = "BM"
    BT = "BT"
    BO = "BO"
    BQ = "BQ"
    BA = "BA"
    BW = "BW"
    BV = "BV"
    BR = "BR"
    IO = "IO"
    BN = "BN"
    BG = "BG"
    BF = "BF"
    BI = "BI"
    CV = "CV"
    KH = "KH"
    CM = "CM"
    CA = "CA"
    KY = "KY"
    CF = "CF"
    TD = "TD"
    CL = "CL"
    CN = "CN"
    CX = "CX"
    CC = "CC"
    CO = "CO"
    KM = "KM"
    CG = "CG"
    CD = "CD"
    CK = "CK"
    CR = "CR"
    CI = "CI"
    HR = "HR"
    CU = "CU"
    CW = "CW"
    CY = "CY"
    CZ = "CZ"
    DK = "DK"
    DJ = "DJ"
    DM = "DM"
    DO = "DO"
    EC = "EC"
    EG = "EG"
    SV = "SV"
    GQ = "GQ"
    ER = "ER"
    EE = "EE"
    SZ = "SZ"
    ET = "ET"
    FK = "FK"
    FO = "FO"
    FJ = "FJ"
    FI = "FI"
    FR = "FR"
    GF = "GF"
    PF = "PF"
    TF = "TF"
    GA = "GA"
    GM = "GM"
    GE = "GE"
    DE = "DE"
    GH = "GH"
    GI = "GI"
    GR = "GR"
    GL = "GL"
    GD = "GD"
    GP = "GP"
    GU = "GU"
    GT = "GT"
    GG = "GG"
    GN = "GN"
    GW = "GW"
    GY = "GY"
    HT = "HT"
    HM = "HM"
    VA = "VA"
    HN = "HN"
    HK = "HK"
    HU = "HU"
    IS = "IS"
    IN = "IN"
    ID = "ID"
    IR = "IR"
    IQ = "IQ"
    IE = "IE"
    IM = "IM"
    IL = "IL"
    IT = "IT"
    JM = "JM"
    JP = "JP"
    JE = "JE"
    JO = "JO"
    KZ = "KZ"
    KE = "KE"
    KI = "KI"
    KW = "KW"
    KG = "KG"
    LA = "LA"
    LV = "LV"
    LB = "LB"
    LS = "LS"
    LR = "LR"
    LY = "LY"
    LI = "LI"
    LT = "LT"
    LU = "LU"
    MO = "MO"
    MG = "MG"
    MW = "MW"
    MY = "MY"
    MV = "MV"
    ML = "ML"
    MT = "MT"
    MH = "MH"
    MQ = "MQ"
    MR = "MR"
    MU = "MU"
    YT = "YT"
    MX = "MX"
    FM = "FM"
    MD = "MD"
    MC = "MC"
    MN = "MN"
    ME = "ME"
    MS = "MS"
    MA = "MA"
    MZ = "MZ"
    MM = "MM"
    NA = "NA"
    NR = "NR"
    NP = "NP"
    NL = "NL"
    NC = "NC"
    NZ = "NZ"
    NI = "NI"
    NE = "NE"
    NG = "NG"
    NU = "NU"
    NF = "NF"
    KP = "KP"
    MK = "MK"
    MP = "MP"
    NO = "NO"
    OM = "OM"
    PK = "PK"
    PW = "PW"
    PS = "PS"
    PA = "PA"
    PG = "PG"
    PY = "PY"
    PE = "PE"
    PH = "PH"
    PN = "PN"
    PL = "PL"
    PT = "PT"
    PR = "PR"
    QA = "QA"
    RE = "RE"
    RO = "RO"
    RU = "RU"
    RW = "RW"
    BL = "BL"
    SH = "SH"
    KN = "KN"
    LC = "LC"
    MF = "MF"
    PM = "PM"
    VC = "VC"
    WS = "WS"
    SM = "SM"
    ST = "ST"
    SA = "SA"
    SN = "SN"
    RS = "RS"
    SC = "SC"
    SL = "SL"
    SG = "SG"
    SX = "SX"
    SK = "SK"
    SI = "SI"
    SB = "SB"
    SO = "SO"
    ZA = "ZA"
    GS = "GS"
    KR = "KR"
    SS = "SS"
    ES = "ES"
    LK = "LK"
    SD = "SD"
    SR = "SR"
    SJ = "SJ"
    SE = "SE"
    CH = "CH"
    SY = "SY"
    TW = "TW"
    TJ = "TJ"
    TZ = "TZ"
    TH = "TH"
    TL = "TL"
    TG = "TG"
    TK = "TK"
    TO = "TO"
    TT = "TT"
    TN = "TN"
    TR = "TR"
    TM = "TM"
    TC = "TC"
    TV = "TV"
    UG = "UG"
    UA = "UA"
    AE = "AE"
    GB = "GB"
    UM = "UM"
    US = "US"
    UY = "UY"
    UZ = "UZ"
    VU = "VU"
    VE = "VE"
    VN = "VN"
    VG = "VG"
    VI = "VI"
    WF = "WF"
    EH = "EH"
    YE = "YE"
    ZM = "ZM"
    ZW = "ZW"

LookUpTable ¤

Source code in gcapi/models.py
@dataclass
class LookUpTable(BaseModel):
    pk: int
    slug: str
    title: str
    description: Optional[str]
    color: str
    alpha: str
    color_invert: Optional[str]
    alpha_invert: Optional[str]
    range_min: Optional[int]
    range_max: Optional[int]
    relative: Optional[bool]
    color_interpolation: Optional[ColorInterpolationEnum]
    color_interpolation_invert: Optional[ColorInterpolationEnum]

Notification ¤

Source code in gcapi/models.py
@dataclass
class Notification(BaseModel):
    read: Optional[bool]

NotificationRequest ¤

Source code in gcapi/models.py
@dataclass
class NotificationRequest(BaseModel):
    read: Optional[bool]

NullEnum ¤

Source code in gcapi/models.py
class NullEnum(Enum):
    NoneType_None = None

PaginatedAlgorithmImageList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedAlgorithmImageList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[AlgorithmImage]

PaginatedAlgorithmList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedAlgorithmList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[Algorithm]

PaginatedAnswerList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedAnswerList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[Answer]

PaginatedArchiveItemList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedArchiveItemList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[ArchiveItem]

PaginatedArchiveList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedArchiveList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[Archive]

PaginatedComponentInterfaceList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedComponentInterfaceList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[ComponentInterface]

PaginatedDisplaySetList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedDisplaySetList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[DisplaySet]

PaginatedEvaluationList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedEvaluationList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[Evaluation]

PaginatedFeedbackList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedFeedbackList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[Feedback]

PaginatedFollowList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedFollowList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[Follow]

PaginatedHyperlinkedImageList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedHyperlinkedImageList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[HyperlinkedImage]

PaginatedHyperlinkedJobList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedHyperlinkedJobList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[HyperlinkedJob]

PaginatedNotificationList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedNotificationList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[Notification]

PaginatedPublicChallengeList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedPublicChallengeList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[PublicChallenge]

PaginatedQuestionList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedQuestionList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[Question]

PaginatedRawImageUploadSessionList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedRawImageUploadSessionList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[RawImageUploadSession]

PaginatedReaderStudyList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedReaderStudyList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[ReaderStudy]

PaginatedSessionList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedSessionList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[Session]

PaginatedUserUploadList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedUserUploadList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[UserUpload]

PaginatedWorkstationConfigList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedWorkstationConfigList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[WorkstationConfig]

PaginatedWorkstationList ¤

Source code in gcapi/models.py
@dataclass
class PaginatedWorkstationList(BaseModel):
    count: int
    next: Optional[str]
    previous: Optional[str]
    results: list[Workstation]

Part ¤

Source code in gcapi/models.py
@dataclass
class Part(BaseModel):
    ETag: str
    PartNumber: int
    LastModified: str
    Size: int

PartRequest ¤

Source code in gcapi/models.py
@dataclass
class PartRequest(BaseModel):
    ETag: str
    PartNumber: int
    LastModified: str
    Size: int

PatchedAnswerRequest ¤

Source code in gcapi/models.py
@dataclass
class PatchedAnswerRequest(BaseModel):
    answer: Optional[Any]
    display_set: Optional[str]
    question: Optional[str]
    last_edit_duration: Optional[str]

PatchedArchiveItemPostRequest ¤

Source code in gcapi/models.py
@dataclass
class PatchedArchiveItemPostRequest(BaseModel):
    archive: Optional[str]
    values: Optional[list[ComponentInterfaceValuePostRequest]]
    title: str = ""

PatchedDisplaySetPostRequest ¤

Source code in gcapi/models.py
@dataclass
class PatchedDisplaySetPostRequest(BaseModel):
    reader_study: Optional[str]
    values: Optional[list[ComponentInterfaceValuePostRequest]]
    order: Optional[int]
    title: str = ""

PatchedExternalEvaluationRequest ¤

Source code in gcapi/models.py
@dataclass
class PatchedExternalEvaluationRequest(BaseModel):
    method: Optional[str]
    submission: Optional[SubmissionRequest]
    published: Optional[bool]
    rank: Optional[int]
    rank_score: Optional[float]
    rank_per_metric: Optional[Any]
    claimed_by: Optional[int]
    phase_pk: Optional[str]

PatchedExternalEvaluationUpdateRequest ¤

Source code in gcapi/models.py
@dataclass
class PatchedExternalEvaluationUpdateRequest(BaseModel):
    metrics: Optional[Any]
    status: Optional[StatusEnum]
    error_message: Optional[str]

PatchedFollowRequest ¤

Source code in gcapi/models.py
@dataclass
class PatchedFollowRequest(BaseModel):
    flag: Optional[str]

PatchedNotificationRequest ¤

Source code in gcapi/models.py
@dataclass
class PatchedNotificationRequest(BaseModel):
    read: Optional[bool]

PatchedUserUploadCompleteRequest ¤

Source code in gcapi/models.py
@dataclass
class PatchedUserUploadCompleteRequest(BaseModel):
    parts: Optional[list[PartRequest]]

PatchedUserUploadPresignedURLsRequest ¤

Source code in gcapi/models.py
@dataclass
class PatchedUserUploadPresignedURLsRequest(BaseModel):
    part_numbers: Optional[list[int]]

PatientSexEnum ¤

Source code in gcapi/models.py
class PatientSexEnum(Enum):
    M = "M"
    F = "F"
    O = "O"

Phase ¤

Source code in gcapi/models.py
@dataclass
class Phase(BaseModel):
    challenge: Challenge
    title: str
    slug: str

PhaseRequest ¤

Source code in gcapi/models.py
@dataclass
class PhaseRequest(BaseModel):
    challenge: ChallengeRequest
    title: str

PublicChallenge ¤

Source code in gcapi/models.py
@dataclass
class PublicChallenge(BaseModel):
    api_url: str
    url: str
    slug: str
    title: Optional[str]
    description: Optional[str]
    public: bool
    status: str
    logo: Optional[str]
    submission_types: list[str]
    start_date: Optional[str]
    end_date: Optional[str]
    publications: list[str]
    created: str
    modified: str
    incentives: list[str]

Question ¤

Source code in gcapi/models.py
@dataclass
class Question(BaseModel):
    answer_type: str
    api_url: str
    form_direction: str
    help_text: Optional[str]
    image_port: str
    default_annotation_color: Optional[str]
    pk: str
    question_text: str
    reader_study: str
    required: Optional[bool]
    options: list[CategoricalOption]
    interface: Optional[ComponentInterface]
    overlay_segments: Optional[Any]
    look_up_table: Optional[LookUpTable]
    widget: str
    answer_min_value: Optional[int]
    answer_max_value: Optional[int]
    answer_step_size: Optional[Decimal]
    answer_min_length: Optional[int]
    answer_max_length: Optional[int]
    answer_match_pattern: Optional[str]
    empty_answer_confirmation: Optional[bool]
    empty_answer_confirmation_label: Optional[str]
    interactive_algorithms: list[str]

RawImageUploadSession ¤

Source code in gcapi/models.py
@dataclass
class RawImageUploadSession(BaseModel):
    pk: str
    creator: Optional[int]
    status: str
    error_message: Optional[str]
    image_set: list[str]
    api_url: str
    user_uploads: Optional[list[str]]
    uploads: list[str]

RawImageUploadSessionRequest ¤

Source code in gcapi/models.py
@dataclass
class RawImageUploadSessionRequest(BaseModel):
    creator: Optional[int]
    error_message: Optional[str]
    user_uploads: Optional[list[str]]
    archive: Optional[str]
    answer: Optional[str]
    interface: Optional[str]
    archive_item: Optional[str]
    display_set: Optional[str]
    uploads: list[str]

ReaderStudy ¤

Source code in gcapi/models.py
@dataclass
class ReaderStudy(BaseModel):
    api_url: str
    url: str
    slug: str
    logo: str
    description: Optional[str]
    help_text: str
    pk: str
    questions: list[Question]
    title: str
    is_educational: Optional[bool]
    instant_verification: Optional[bool]
    has_ground_truth: bool
    allow_answer_modification: Optional[bool]
    allow_case_navigation: Optional[bool]
    allow_show_all_annotations: Optional[bool]
    roll_over_answers_for_n_cases: Optional[int]

Session ¤

Source code in gcapi/models.py
@dataclass
class Session(BaseModel):
    pk: str
    status: str

SimpleImage ¤

Source code in gcapi/models.py
@dataclass
class SimpleImage(BaseModel):
    pk: str
    name: str

StatusEnum ¤

Source code in gcapi/models.py
class StatusEnum(Enum):
    Succeeded = "Succeeded"
    Failed = "Failed"

StereoscopicChoiceEnum ¤

Source code in gcapi/models.py
class StereoscopicChoiceEnum(Enum):
    L = "L"
    R = "R"
    U = "U"

Submission ¤

Source code in gcapi/models.py
@dataclass
class Submission(BaseModel):
    pk: str
    phase: Phase
    created: str
    creator: User
    comment: Optional[str]
    predictions_file: Optional[str]
    supplementary_file: Optional[str]
    supplementary_url: Optional[str]
    algorithm_image: str

SubmissionRequest ¤

Source code in gcapi/models.py
@dataclass
class SubmissionRequest(BaseModel):
    phase: PhaseRequest
    creator: UserRequest
    comment: Optional[str]
    predictions_file: Optional[bytes]
    supplementary_file: Optional[bytes]
    supplementary_url: Optional[str]

Timezone ¤

Source code in gcapi/models.py
@dataclass
class Timezone(BaseModel):
    timezone: TimezoneEnum

TimezoneEnum ¤

Source code in gcapi/models.py
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
class TimezoneEnum(Enum):
    Africa_Abidjan = "Africa/Abidjan"
    Africa_Accra = "Africa/Accra"
    Africa_Addis_Ababa = "Africa/Addis_Ababa"
    Africa_Algiers = "Africa/Algiers"
    Africa_Asmara = "Africa/Asmara"
    Africa_Asmera = "Africa/Asmera"
    Africa_Bamako = "Africa/Bamako"
    Africa_Bangui = "Africa/Bangui"
    Africa_Banjul = "Africa/Banjul"
    Africa_Bissau = "Africa/Bissau"
    Africa_Blantyre = "Africa/Blantyre"
    Africa_Brazzaville = "Africa/Brazzaville"
    Africa_Bujumbura = "Africa/Bujumbura"
    Africa_Cairo = "Africa/Cairo"
    Africa_Casablanca = "Africa/Casablanca"
    Africa_Ceuta = "Africa/Ceuta"
    Africa_Conakry = "Africa/Conakry"
    Africa_Dakar = "Africa/Dakar"
    Africa_Dar_es_Salaam = "Africa/Dar_es_Salaam"
    Africa_Djibouti = "Africa/Djibouti"
    Africa_Douala = "Africa/Douala"
    Africa_El_Aaiun = "Africa/El_Aaiun"
    Africa_Freetown = "Africa/Freetown"
    Africa_Gaborone = "Africa/Gaborone"
    Africa_Harare = "Africa/Harare"
    Africa_Johannesburg = "Africa/Johannesburg"
    Africa_Juba = "Africa/Juba"
    Africa_Kampala = "Africa/Kampala"
    Africa_Khartoum = "Africa/Khartoum"
    Africa_Kigali = "Africa/Kigali"
    Africa_Kinshasa = "Africa/Kinshasa"
    Africa_Lagos = "Africa/Lagos"
    Africa_Libreville = "Africa/Libreville"
    Africa_Lome = "Africa/Lome"
    Africa_Luanda = "Africa/Luanda"
    Africa_Lubumbashi = "Africa/Lubumbashi"
    Africa_Lusaka = "Africa/Lusaka"
    Africa_Malabo = "Africa/Malabo"
    Africa_Maputo = "Africa/Maputo"
    Africa_Maseru = "Africa/Maseru"
    Africa_Mbabane = "Africa/Mbabane"
    Africa_Mogadishu = "Africa/Mogadishu"
    Africa_Monrovia = "Africa/Monrovia"
    Africa_Nairobi = "Africa/Nairobi"
    Africa_Ndjamena = "Africa/Ndjamena"
    Africa_Niamey = "Africa/Niamey"
    Africa_Nouakchott = "Africa/Nouakchott"
    Africa_Ouagadougou = "Africa/Ouagadougou"
    Africa_Porto_Novo = "Africa/Porto-Novo"
    Africa_Sao_Tome = "Africa/Sao_Tome"
    Africa_Timbuktu = "Africa/Timbuktu"
    Africa_Tripoli = "Africa/Tripoli"
    Africa_Tunis = "Africa/Tunis"
    Africa_Windhoek = "Africa/Windhoek"
    America_Adak = "America/Adak"
    America_Anchorage = "America/Anchorage"
    America_Anguilla = "America/Anguilla"
    America_Antigua = "America/Antigua"
    America_Araguaina = "America/Araguaina"
    America_Argentina_Buenos_Aires = "America/Argentina/Buenos_Aires"
    America_Argentina_Catamarca = "America/Argentina/Catamarca"
    America_Argentina_ComodRivadavia = "America/Argentina/ComodRivadavia"
    America_Argentina_Cordoba = "America/Argentina/Cordoba"
    America_Argentina_Jujuy = "America/Argentina/Jujuy"
    America_Argentina_La_Rioja = "America/Argentina/La_Rioja"
    America_Argentina_Mendoza = "America/Argentina/Mendoza"
    America_Argentina_Rio_Gallegos = "America/Argentina/Rio_Gallegos"
    America_Argentina_Salta = "America/Argentina/Salta"
    America_Argentina_San_Juan = "America/Argentina/San_Juan"
    America_Argentina_San_Luis = "America/Argentina/San_Luis"
    America_Argentina_Tucuman = "America/Argentina/Tucuman"
    America_Argentina_Ushuaia = "America/Argentina/Ushuaia"
    America_Aruba = "America/Aruba"
    America_Asuncion = "America/Asuncion"
    America_Atikokan = "America/Atikokan"
    America_Atka = "America/Atka"
    America_Bahia = "America/Bahia"
    America_Bahia_Banderas = "America/Bahia_Banderas"
    America_Barbados = "America/Barbados"
    America_Belem = "America/Belem"
    America_Belize = "America/Belize"
    America_Blanc_Sablon = "America/Blanc-Sablon"
    America_Boa_Vista = "America/Boa_Vista"
    America_Bogota = "America/Bogota"
    America_Boise = "America/Boise"
    America_Buenos_Aires = "America/Buenos_Aires"
    America_Cambridge_Bay = "America/Cambridge_Bay"
    America_Campo_Grande = "America/Campo_Grande"
    America_Cancun = "America/Cancun"
    America_Caracas = "America/Caracas"
    America_Catamarca = "America/Catamarca"
    America_Cayenne = "America/Cayenne"
    America_Cayman = "America/Cayman"
    America_Chicago = "America/Chicago"
    America_Chihuahua = "America/Chihuahua"
    America_Ciudad_Juarez = "America/Ciudad_Juarez"
    America_Coral_Harbour = "America/Coral_Harbour"
    America_Cordoba = "America/Cordoba"
    America_Costa_Rica = "America/Costa_Rica"
    America_Coyhaique = "America/Coyhaique"
    America_Creston = "America/Creston"
    America_Cuiaba = "America/Cuiaba"
    America_Curacao = "America/Curacao"
    America_Danmarkshavn = "America/Danmarkshavn"
    America_Dawson = "America/Dawson"
    America_Dawson_Creek = "America/Dawson_Creek"
    America_Denver = "America/Denver"
    America_Detroit = "America/Detroit"
    America_Dominica = "America/Dominica"
    America_Edmonton = "America/Edmonton"
    America_Eirunepe = "America/Eirunepe"
    America_El_Salvador = "America/El_Salvador"
    America_Ensenada = "America/Ensenada"
    America_Fort_Nelson = "America/Fort_Nelson"
    America_Fort_Wayne = "America/Fort_Wayne"
    America_Fortaleza = "America/Fortaleza"
    America_Glace_Bay = "America/Glace_Bay"
    America_Godthab = "America/Godthab"
    America_Goose_Bay = "America/Goose_Bay"
    America_Grand_Turk = "America/Grand_Turk"
    America_Grenada = "America/Grenada"
    America_Guadeloupe = "America/Guadeloupe"
    America_Guatemala = "America/Guatemala"
    America_Guayaquil = "America/Guayaquil"
    America_Guyana = "America/Guyana"
    America_Halifax = "America/Halifax"
    America_Havana = "America/Havana"
    America_Hermosillo = "America/Hermosillo"
    America_Indiana_Indianapolis = "America/Indiana/Indianapolis"
    America_Indiana_Knox = "America/Indiana/Knox"
    America_Indiana_Marengo = "America/Indiana/Marengo"
    America_Indiana_Petersburg = "America/Indiana/Petersburg"
    America_Indiana_Tell_City = "America/Indiana/Tell_City"
    America_Indiana_Vevay = "America/Indiana/Vevay"
    America_Indiana_Vincennes = "America/Indiana/Vincennes"
    America_Indiana_Winamac = "America/Indiana/Winamac"
    America_Indianapolis = "America/Indianapolis"
    America_Inuvik = "America/Inuvik"
    America_Iqaluit = "America/Iqaluit"
    America_Jamaica = "America/Jamaica"
    America_Jujuy = "America/Jujuy"
    America_Juneau = "America/Juneau"
    America_Kentucky_Louisville = "America/Kentucky/Louisville"
    America_Kentucky_Monticello = "America/Kentucky/Monticello"
    America_Knox_IN = "America/Knox_IN"
    America_Kralendijk = "America/Kralendijk"
    America_La_Paz = "America/La_Paz"
    America_Lima = "America/Lima"
    America_Los_Angeles = "America/Los_Angeles"
    America_Louisville = "America/Louisville"
    America_Lower_Princes = "America/Lower_Princes"
    America_Maceio = "America/Maceio"
    America_Managua = "America/Managua"
    America_Manaus = "America/Manaus"
    America_Marigot = "America/Marigot"
    America_Martinique = "America/Martinique"
    America_Matamoros = "America/Matamoros"
    America_Mazatlan = "America/Mazatlan"
    America_Mendoza = "America/Mendoza"
    America_Menominee = "America/Menominee"
    America_Merida = "America/Merida"
    America_Metlakatla = "America/Metlakatla"
    America_Mexico_City = "America/Mexico_City"
    America_Miquelon = "America/Miquelon"
    America_Moncton = "America/Moncton"
    America_Monterrey = "America/Monterrey"
    America_Montevideo = "America/Montevideo"
    America_Montreal = "America/Montreal"
    America_Montserrat = "America/Montserrat"
    America_Nassau = "America/Nassau"
    America_New_York = "America/New_York"
    America_Nipigon = "America/Nipigon"
    America_Nome = "America/Nome"
    America_Noronha = "America/Noronha"
    America_North_Dakota_Beulah = "America/North_Dakota/Beulah"
    America_North_Dakota_Center = "America/North_Dakota/Center"
    America_North_Dakota_New_Salem = "America/North_Dakota/New_Salem"
    America_Nuuk = "America/Nuuk"
    America_Ojinaga = "America/Ojinaga"
    America_Panama = "America/Panama"
    America_Pangnirtung = "America/Pangnirtung"
    America_Paramaribo = "America/Paramaribo"
    America_Phoenix = "America/Phoenix"
    America_Port_au_Prince = "America/Port-au-Prince"
    America_Port_of_Spain = "America/Port_of_Spain"
    America_Porto_Acre = "America/Porto_Acre"
    America_Porto_Velho = "America/Porto_Velho"
    America_Puerto_Rico = "America/Puerto_Rico"
    America_Punta_Arenas = "America/Punta_Arenas"
    America_Rainy_River = "America/Rainy_River"
    America_Rankin_Inlet = "America/Rankin_Inlet"
    America_Recife = "America/Recife"
    America_Regina = "America/Regina"
    America_Resolute = "America/Resolute"
    America_Rio_Branco = "America/Rio_Branco"
    America_Rosario = "America/Rosario"
    America_Santa_Isabel = "America/Santa_Isabel"
    America_Santarem = "America/Santarem"
    America_Santiago = "America/Santiago"
    America_Santo_Domingo = "America/Santo_Domingo"
    America_Sao_Paulo = "America/Sao_Paulo"
    America_Scoresbysund = "America/Scoresbysund"
    America_Shiprock = "America/Shiprock"
    America_Sitka = "America/Sitka"
    America_St_Barthelemy = "America/St_Barthelemy"
    America_St_Johns = "America/St_Johns"
    America_St_Kitts = "America/St_Kitts"
    America_St_Lucia = "America/St_Lucia"
    America_St_Thomas = "America/St_Thomas"
    America_St_Vincent = "America/St_Vincent"
    America_Swift_Current = "America/Swift_Current"
    America_Tegucigalpa = "America/Tegucigalpa"
    America_Thule = "America/Thule"
    America_Thunder_Bay = "America/Thunder_Bay"
    America_Tijuana = "America/Tijuana"
    America_Toronto = "America/Toronto"
    America_Tortola = "America/Tortola"
    America_Vancouver = "America/Vancouver"
    America_Virgin = "America/Virgin"
    America_Whitehorse = "America/Whitehorse"
    America_Winnipeg = "America/Winnipeg"
    America_Yakutat = "America/Yakutat"
    America_Yellowknife = "America/Yellowknife"
    Antarctica_Casey = "Antarctica/Casey"
    Antarctica_Davis = "Antarctica/Davis"
    Antarctica_DumontDUrville = "Antarctica/DumontDUrville"
    Antarctica_Macquarie = "Antarctica/Macquarie"
    Antarctica_Mawson = "Antarctica/Mawson"
    Antarctica_McMurdo = "Antarctica/McMurdo"
    Antarctica_Palmer = "Antarctica/Palmer"
    Antarctica_Rothera = "Antarctica/Rothera"
    Antarctica_South_Pole = "Antarctica/South_Pole"
    Antarctica_Syowa = "Antarctica/Syowa"
    Antarctica_Troll = "Antarctica/Troll"
    Antarctica_Vostok = "Antarctica/Vostok"
    Arctic_Longyearbyen = "Arctic/Longyearbyen"
    Asia_Aden = "Asia/Aden"
    Asia_Almaty = "Asia/Almaty"
    Asia_Amman = "Asia/Amman"
    Asia_Anadyr = "Asia/Anadyr"
    Asia_Aqtau = "Asia/Aqtau"
    Asia_Aqtobe = "Asia/Aqtobe"
    Asia_Ashgabat = "Asia/Ashgabat"
    Asia_Ashkhabad = "Asia/Ashkhabad"
    Asia_Atyrau = "Asia/Atyrau"
    Asia_Baghdad = "Asia/Baghdad"
    Asia_Bahrain = "Asia/Bahrain"
    Asia_Baku = "Asia/Baku"
    Asia_Bangkok = "Asia/Bangkok"
    Asia_Barnaul = "Asia/Barnaul"
    Asia_Beirut = "Asia/Beirut"
    Asia_Bishkek = "Asia/Bishkek"
    Asia_Brunei = "Asia/Brunei"
    Asia_Calcutta = "Asia/Calcutta"
    Asia_Chita = "Asia/Chita"
    Asia_Choibalsan = "Asia/Choibalsan"
    Asia_Chongqing = "Asia/Chongqing"
    Asia_Chungking = "Asia/Chungking"
    Asia_Colombo = "Asia/Colombo"
    Asia_Dacca = "Asia/Dacca"
    Asia_Damascus = "Asia/Damascus"
    Asia_Dhaka = "Asia/Dhaka"
    Asia_Dili = "Asia/Dili"
    Asia_Dubai = "Asia/Dubai"
    Asia_Dushanbe = "Asia/Dushanbe"
    Asia_Famagusta = "Asia/Famagusta"
    Asia_Gaza = "Asia/Gaza"
    Asia_Harbin = "Asia/Harbin"
    Asia_Hebron = "Asia/Hebron"
    Asia_Ho_Chi_Minh = "Asia/Ho_Chi_Minh"
    Asia_Hong_Kong = "Asia/Hong_Kong"
    Asia_Hovd = "Asia/Hovd"
    Asia_Irkutsk = "Asia/Irkutsk"
    Asia_Istanbul = "Asia/Istanbul"
    Asia_Jakarta = "Asia/Jakarta"
    Asia_Jayapura = "Asia/Jayapura"
    Asia_Jerusalem = "Asia/Jerusalem"
    Asia_Kabul = "Asia/Kabul"
    Asia_Kamchatka = "Asia/Kamchatka"
    Asia_Karachi = "Asia/Karachi"
    Asia_Kashgar = "Asia/Kashgar"
    Asia_Kathmandu = "Asia/Kathmandu"
    Asia_Katmandu = "Asia/Katmandu"
    Asia_Khandyga = "Asia/Khandyga"
    Asia_Kolkata = "Asia/Kolkata"
    Asia_Krasnoyarsk = "Asia/Krasnoyarsk"
    Asia_Kuala_Lumpur = "Asia/Kuala_Lumpur"
    Asia_Kuching = "Asia/Kuching"
    Asia_Kuwait = "Asia/Kuwait"
    Asia_Macao = "Asia/Macao"
    Asia_Macau = "Asia/Macau"
    Asia_Magadan = "Asia/Magadan"
    Asia_Makassar = "Asia/Makassar"
    Asia_Manila = "Asia/Manila"
    Asia_Muscat = "Asia/Muscat"
    Asia_Nicosia = "Asia/Nicosia"
    Asia_Novokuznetsk = "Asia/Novokuznetsk"
    Asia_Novosibirsk = "Asia/Novosibirsk"
    Asia_Omsk = "Asia/Omsk"
    Asia_Oral = "Asia/Oral"
    Asia_Phnom_Penh = "Asia/Phnom_Penh"
    Asia_Pontianak = "Asia/Pontianak"
    Asia_Pyongyang = "Asia/Pyongyang"
    Asia_Qatar = "Asia/Qatar"
    Asia_Qostanay = "Asia/Qostanay"
    Asia_Qyzylorda = "Asia/Qyzylorda"
    Asia_Rangoon = "Asia/Rangoon"
    Asia_Riyadh = "Asia/Riyadh"
    Asia_Saigon = "Asia/Saigon"
    Asia_Sakhalin = "Asia/Sakhalin"
    Asia_Samarkand = "Asia/Samarkand"
    Asia_Seoul = "Asia/Seoul"
    Asia_Shanghai = "Asia/Shanghai"
    Asia_Singapore = "Asia/Singapore"
    Asia_Srednekolymsk = "Asia/Srednekolymsk"
    Asia_Taipei = "Asia/Taipei"
    Asia_Tashkent = "Asia/Tashkent"
    Asia_Tbilisi = "Asia/Tbilisi"
    Asia_Tehran = "Asia/Tehran"
    Asia_Tel_Aviv = "Asia/Tel_Aviv"
    Asia_Thimbu = "Asia/Thimbu"
    Asia_Thimphu = "Asia/Thimphu"
    Asia_Tokyo = "Asia/Tokyo"
    Asia_Tomsk = "Asia/Tomsk"
    Asia_Ujung_Pandang = "Asia/Ujung_Pandang"
    Asia_Ulaanbaatar = "Asia/Ulaanbaatar"
    Asia_Ulan_Bator = "Asia/Ulan_Bator"
    Asia_Urumqi = "Asia/Urumqi"
    Asia_Ust_Nera = "Asia/Ust-Nera"
    Asia_Vientiane = "Asia/Vientiane"
    Asia_Vladivostok = "Asia/Vladivostok"
    Asia_Yakutsk = "Asia/Yakutsk"
    Asia_Yangon = "Asia/Yangon"
    Asia_Yekaterinburg = "Asia/Yekaterinburg"
    Asia_Yerevan = "Asia/Yerevan"
    Atlantic_Azores = "Atlantic/Azores"
    Atlantic_Bermuda = "Atlantic/Bermuda"
    Atlantic_Canary = "Atlantic/Canary"
    Atlantic_Cape_Verde = "Atlantic/Cape_Verde"
    Atlantic_Faeroe = "Atlantic/Faeroe"
    Atlantic_Faroe = "Atlantic/Faroe"
    Atlantic_Jan_Mayen = "Atlantic/Jan_Mayen"
    Atlantic_Madeira = "Atlantic/Madeira"
    Atlantic_Reykjavik = "Atlantic/Reykjavik"
    Atlantic_South_Georgia = "Atlantic/South_Georgia"
    Atlantic_St_Helena = "Atlantic/St_Helena"
    Atlantic_Stanley = "Atlantic/Stanley"
    Australia_ACT = "Australia/ACT"
    Australia_Adelaide = "Australia/Adelaide"
    Australia_Brisbane = "Australia/Brisbane"
    Australia_Broken_Hill = "Australia/Broken_Hill"
    Australia_Canberra = "Australia/Canberra"
    Australia_Currie = "Australia/Currie"
    Australia_Darwin = "Australia/Darwin"
    Australia_Eucla = "Australia/Eucla"
    Australia_Hobart = "Australia/Hobart"
    Australia_LHI = "Australia/LHI"
    Australia_Lindeman = "Australia/Lindeman"
    Australia_Lord_Howe = "Australia/Lord_Howe"
    Australia_Melbourne = "Australia/Melbourne"
    Australia_NSW = "Australia/NSW"
    Australia_North = "Australia/North"
    Australia_Perth = "Australia/Perth"
    Australia_Queensland = "Australia/Queensland"
    Australia_South = "Australia/South"
    Australia_Sydney = "Australia/Sydney"
    Australia_Tasmania = "Australia/Tasmania"
    Australia_Victoria = "Australia/Victoria"
    Australia_West = "Australia/West"
    Australia_Yancowinna = "Australia/Yancowinna"
    Brazil_Acre = "Brazil/Acre"
    Brazil_DeNoronha = "Brazil/DeNoronha"
    Brazil_East = "Brazil/East"
    Brazil_West = "Brazil/West"
    CET = "CET"
    CST6CDT = "CST6CDT"
    Canada_Atlantic = "Canada/Atlantic"
    Canada_Central = "Canada/Central"
    Canada_Eastern = "Canada/Eastern"
    Canada_Mountain = "Canada/Mountain"
    Canada_Newfoundland = "Canada/Newfoundland"
    Canada_Pacific = "Canada/Pacific"
    Canada_Saskatchewan = "Canada/Saskatchewan"
    Canada_Yukon = "Canada/Yukon"
    Chile_Continental = "Chile/Continental"
    Chile_EasterIsland = "Chile/EasterIsland"
    Cuba = "Cuba"
    EET = "EET"
    EST = "EST"
    EST5EDT = "EST5EDT"
    Egypt = "Egypt"
    Eire = "Eire"
    Etc_GMT = "Etc/GMT"
    Etc_GMT_0 = "Etc/GMT+0"
    Etc_GMT_1 = "Etc/GMT+1"
    Etc_GMT_10 = "Etc/GMT+10"
    Etc_GMT_11 = "Etc/GMT+11"
    Etc_GMT_12 = "Etc/GMT+12"
    Etc_GMT_2 = "Etc/GMT+2"
    Etc_GMT_3 = "Etc/GMT+3"
    Etc_GMT_4 = "Etc/GMT+4"
    Etc_GMT_5 = "Etc/GMT+5"
    Etc_GMT_6 = "Etc/GMT+6"
    Etc_GMT_7 = "Etc/GMT+7"
    Etc_GMT_8 = "Etc/GMT+8"
    Etc_GMT_9 = "Etc/GMT+9"
    Etc_GMT_0_1 = "Etc/GMT-0"
    Etc_GMT_1_1 = "Etc/GMT-1"
    Etc_GMT_10_1 = "Etc/GMT-10"
    Etc_GMT_11_1 = "Etc/GMT-11"
    Etc_GMT_12_1 = "Etc/GMT-12"
    Etc_GMT_13 = "Etc/GMT-13"
    Etc_GMT_14 = "Etc/GMT-14"
    Etc_GMT_2_1 = "Etc/GMT-2"
    Etc_GMT_3_1 = "Etc/GMT-3"
    Etc_GMT_4_1 = "Etc/GMT-4"
    Etc_GMT_5_1 = "Etc/GMT-5"
    Etc_GMT_6_1 = "Etc/GMT-6"
    Etc_GMT_7_1 = "Etc/GMT-7"
    Etc_GMT_8_1 = "Etc/GMT-8"
    Etc_GMT_9_1 = "Etc/GMT-9"
    Etc_GMT0 = "Etc/GMT0"
    Etc_Greenwich = "Etc/Greenwich"
    Etc_UCT = "Etc/UCT"
    Etc_UTC = "Etc/UTC"
    Etc_Universal = "Etc/Universal"
    Etc_Zulu = "Etc/Zulu"
    Europe_Amsterdam = "Europe/Amsterdam"
    Europe_Andorra = "Europe/Andorra"
    Europe_Astrakhan = "Europe/Astrakhan"
    Europe_Athens = "Europe/Athens"
    Europe_Belfast = "Europe/Belfast"
    Europe_Belgrade = "Europe/Belgrade"
    Europe_Berlin = "Europe/Berlin"
    Europe_Bratislava = "Europe/Bratislava"
    Europe_Brussels = "Europe/Brussels"
    Europe_Bucharest = "Europe/Bucharest"
    Europe_Budapest = "Europe/Budapest"
    Europe_Busingen = "Europe/Busingen"
    Europe_Chisinau = "Europe/Chisinau"
    Europe_Copenhagen = "Europe/Copenhagen"
    Europe_Dublin = "Europe/Dublin"
    Europe_Gibraltar = "Europe/Gibraltar"
    Europe_Guernsey = "Europe/Guernsey"
    Europe_Helsinki = "Europe/Helsinki"
    Europe_Isle_of_Man = "Europe/Isle_of_Man"
    Europe_Istanbul = "Europe/Istanbul"
    Europe_Jersey = "Europe/Jersey"
    Europe_Kaliningrad = "Europe/Kaliningrad"
    Europe_Kiev = "Europe/Kiev"
    Europe_Kirov = "Europe/Kirov"
    Europe_Kyiv = "Europe/Kyiv"
    Europe_Lisbon = "Europe/Lisbon"
    Europe_Ljubljana = "Europe/Ljubljana"
    Europe_London = "Europe/London"
    Europe_Luxembourg = "Europe/Luxembourg"
    Europe_Madrid = "Europe/Madrid"
    Europe_Malta = "Europe/Malta"
    Europe_Mariehamn = "Europe/Mariehamn"
    Europe_Minsk = "Europe/Minsk"
    Europe_Monaco = "Europe/Monaco"
    Europe_Moscow = "Europe/Moscow"
    Europe_Nicosia = "Europe/Nicosia"
    Europe_Oslo = "Europe/Oslo"
    Europe_Paris = "Europe/Paris"
    Europe_Podgorica = "Europe/Podgorica"
    Europe_Prague = "Europe/Prague"
    Europe_Riga = "Europe/Riga"
    Europe_Rome = "Europe/Rome"
    Europe_Samara = "Europe/Samara"
    Europe_San_Marino = "Europe/San_Marino"
    Europe_Sarajevo = "Europe/Sarajevo"
    Europe_Saratov = "Europe/Saratov"
    Europe_Simferopol = "Europe/Simferopol"
    Europe_Skopje = "Europe/Skopje"
    Europe_Sofia = "Europe/Sofia"
    Europe_Stockholm = "Europe/Stockholm"
    Europe_Tallinn = "Europe/Tallinn"
    Europe_Tirane = "Europe/Tirane"
    Europe_Tiraspol = "Europe/Tiraspol"
    Europe_Ulyanovsk = "Europe/Ulyanovsk"
    Europe_Uzhgorod = "Europe/Uzhgorod"
    Europe_Vaduz = "Europe/Vaduz"
    Europe_Vatican = "Europe/Vatican"
    Europe_Vienna = "Europe/Vienna"
    Europe_Vilnius = "Europe/Vilnius"
    Europe_Volgograd = "Europe/Volgograd"
    Europe_Warsaw = "Europe/Warsaw"
    Europe_Zagreb = "Europe/Zagreb"
    Europe_Zaporozhye = "Europe/Zaporozhye"
    Europe_Zurich = "Europe/Zurich"
    Factory = "Factory"
    GB = "GB"
    GB_Eire = "GB-Eire"
    GMT = "GMT"
    GMT_0 = "GMT+0"
    GMT_0_1 = "GMT-0"
    GMT0 = "GMT0"
    Greenwich = "Greenwich"
    HST = "HST"
    Hongkong = "Hongkong"
    Iceland = "Iceland"
    Indian_Antananarivo = "Indian/Antananarivo"
    Indian_Chagos = "Indian/Chagos"
    Indian_Christmas = "Indian/Christmas"
    Indian_Cocos = "Indian/Cocos"
    Indian_Comoro = "Indian/Comoro"
    Indian_Kerguelen = "Indian/Kerguelen"
    Indian_Mahe = "Indian/Mahe"
    Indian_Maldives = "Indian/Maldives"
    Indian_Mauritius = "Indian/Mauritius"
    Indian_Mayotte = "Indian/Mayotte"
    Indian_Reunion = "Indian/Reunion"
    Iran = "Iran"
    Israel = "Israel"
    Jamaica = "Jamaica"
    Japan = "Japan"
    Kwajalein = "Kwajalein"
    Libya = "Libya"
    MET = "MET"
    MST = "MST"
    MST7MDT = "MST7MDT"
    Mexico_BajaNorte = "Mexico/BajaNorte"
    Mexico_BajaSur = "Mexico/BajaSur"
    Mexico_General = "Mexico/General"
    NZ = "NZ"
    NZ_CHAT = "NZ-CHAT"
    Navajo = "Navajo"
    PRC = "PRC"
    PST8PDT = "PST8PDT"
    Pacific_Apia = "Pacific/Apia"
    Pacific_Auckland = "Pacific/Auckland"
    Pacific_Bougainville = "Pacific/Bougainville"
    Pacific_Chatham = "Pacific/Chatham"
    Pacific_Chuuk = "Pacific/Chuuk"
    Pacific_Easter = "Pacific/Easter"
    Pacific_Efate = "Pacific/Efate"
    Pacific_Enderbury = "Pacific/Enderbury"
    Pacific_Fakaofo = "Pacific/Fakaofo"
    Pacific_Fiji = "Pacific/Fiji"
    Pacific_Funafuti = "Pacific/Funafuti"
    Pacific_Galapagos = "Pacific/Galapagos"
    Pacific_Gambier = "Pacific/Gambier"
    Pacific_Guadalcanal = "Pacific/Guadalcanal"
    Pacific_Guam = "Pacific/Guam"
    Pacific_Honolulu = "Pacific/Honolulu"
    Pacific_Johnston = "Pacific/Johnston"
    Pacific_Kanton = "Pacific/Kanton"
    Pacific_Kiritimati = "Pacific/Kiritimati"
    Pacific_Kosrae = "Pacific/Kosrae"
    Pacific_Kwajalein = "Pacific/Kwajalein"
    Pacific_Majuro = "Pacific/Majuro"
    Pacific_Marquesas = "Pacific/Marquesas"
    Pacific_Midway = "Pacific/Midway"
    Pacific_Nauru = "Pacific/Nauru"
    Pacific_Niue = "Pacific/Niue"
    Pacific_Norfolk = "Pacific/Norfolk"
    Pacific_Noumea = "Pacific/Noumea"
    Pacific_Pago_Pago = "Pacific/Pago_Pago"
    Pacific_Palau = "Pacific/Palau"
    Pacific_Pitcairn = "Pacific/Pitcairn"
    Pacific_Pohnpei = "Pacific/Pohnpei"
    Pacific_Ponape = "Pacific/Ponape"
    Pacific_Port_Moresby = "Pacific/Port_Moresby"
    Pacific_Rarotonga = "Pacific/Rarotonga"
    Pacific_Saipan = "Pacific/Saipan"
    Pacific_Samoa = "Pacific/Samoa"
    Pacific_Tahiti = "Pacific/Tahiti"
    Pacific_Tarawa = "Pacific/Tarawa"
    Pacific_Tongatapu = "Pacific/Tongatapu"
    Pacific_Truk = "Pacific/Truk"
    Pacific_Wake = "Pacific/Wake"
    Pacific_Wallis = "Pacific/Wallis"
    Pacific_Yap = "Pacific/Yap"
    Poland = "Poland"
    Portugal = "Portugal"
    ROC = "ROC"
    ROK = "ROK"
    Singapore = "Singapore"
    Turkey = "Turkey"
    UCT = "UCT"
    US_Alaska = "US/Alaska"
    US_Aleutian = "US/Aleutian"
    US_Arizona = "US/Arizona"
    US_Central = "US/Central"
    US_East_Indiana = "US/East-Indiana"
    US_Eastern = "US/Eastern"
    US_Hawaii = "US/Hawaii"
    US_Indiana_Starke = "US/Indiana-Starke"
    US_Michigan = "US/Michigan"
    US_Mountain = "US/Mountain"
    US_Pacific = "US/Pacific"
    US_Samoa = "US/Samoa"
    UTC = "UTC"
    Universal = "Universal"
    W_SU = "W-SU"
    WET = "WET"
    Zulu = "Zulu"
    localtime = "localtime"

TimezoneRequest ¤

Source code in gcapi/models.py
@dataclass
class TimezoneRequest(BaseModel):
    timezone: TimezoneEnum

User ¤

Source code in gcapi/models.py
@dataclass
class User(BaseModel):
    username: str

UserProfile ¤

Source code in gcapi/models.py
@dataclass
class UserProfile(BaseModel):
    user: User
    mugshot: str
    institution: str
    department: str
    location: LocationEnum
    website: Optional[str]

UserRequest ¤

Source code in gcapi/models.py
@dataclass
class UserRequest(BaseModel):
    username: str

UserUpload ¤

Source code in gcapi/models.py
@dataclass
class UserUpload(BaseModel):
    pk: str
    created: str
    filename: str
    key: str
    s3_upload_id: str
    status: str
    api_url: str

UserUploadComplete ¤

Source code in gcapi/models.py
@dataclass
class UserUploadComplete(BaseModel):
    pk: str
    created: str
    filename: str
    key: str
    s3_upload_id: str
    status: str
    api_url: str

UserUploadCreate ¤

Source code in gcapi/models.py
@dataclass
class UserUploadCreate(BaseModel):
    pk: str
    created: str
    filename: str
    key: str
    s3_upload_id: str
    status: str
    api_url: str

UserUploadCreateRequest ¤

Source code in gcapi/models.py
@dataclass
class UserUploadCreateRequest(BaseModel):
    filename: str

UserUploadParts ¤

Source code in gcapi/models.py
@dataclass
class UserUploadParts(BaseModel):
    pk: str
    created: str
    filename: str
    key: str
    s3_upload_id: str
    status: str
    api_url: str
    parts: list[Part]

UserUploadPresignedURLs ¤

Source code in gcapi/models.py
@dataclass
class UserUploadPresignedURLs(BaseModel):
    pk: str
    created: str
    filename: str
    key: str
    s3_upload_id: str
    status: str
    api_url: str
    presigned_urls: dict[str, str]

WindowPreset ¤

Source code in gcapi/models.py
@dataclass
class WindowPreset(BaseModel):
    pk: int
    slug: str
    title: str
    description: Optional[str]
    center: Optional[int]
    width: Optional[int]
    lower_percentile: Optional[int]
    upper_percentile: Optional[int]

Workstation ¤

Source code in gcapi/models.py
@dataclass
class Workstation(BaseModel):
    pk: str
    title: str
    slug: str
    url: str

WorkstationConfig ¤

Source code in gcapi/models.py
@dataclass
class WorkstationConfig(BaseModel):
    pk: str
    slug: str
    title: str
    description: Optional[str]
    created: str
    modified: str
    creator: str
    image_context: str
    window_presets: list[WindowPreset]
    default_window_preset: WindowPreset
    default_slab_thickness_mm: float
    default_slab_render_method: str
    default_orientation: str
    default_overlay_alpha: float
    overlay_luts: list[LookUpTable]
    default_overlay_lut: LookUpTable
    default_overlay_interpolation: str
    default_image_interpolation: str
    default_limit_view_area_to_image_volume: Optional[bool]
    ghosting_slice_depth: Optional[int]
    overlay_segments: Optional[Any]
    key_bindings: Optional[Any]
    default_zoom_scale: float
    default_brush_size: Optional[Decimal]
    default_annotation_color: Optional[str]
    default_annotation_line_width: Optional[int]
    show_image_info_plugin: Optional[bool]
    show_display_plugin: Optional[bool]
    show_image_switcher_plugin: Optional[bool]
    show_algorithm_output_plugin: Optional[bool]
    show_overlay_plugin: Optional[bool]
    show_annotation_statistics_plugin: Optional[bool]
    show_swivel_tool: Optional[bool]
    show_invert_tool: Optional[bool]
    show_flip_tool: Optional[bool]
    show_window_level_tool: Optional[bool]
    show_reset_tool: Optional[bool]
    show_overlay_selection_tool: Optional[bool]
    show_lut_selection_tool: Optional[bool]
    show_annotation_counter_tool: Optional[bool]
    enabled_preprocessors: list[str]
    auto_jump_center_of_gravity: Optional[bool]
    link_images: Optional[bool]
    link_panning: Optional[bool]
    link_zooming: Optional[bool]
    link_slicing: Optional[bool]
    link_orienting: Optional[bool]
    link_windowing: Optional[bool]
    link_inverting: Optional[bool]
    link_flipping: Optional[bool]
    point_bounding_box_size_mm: float