diff --git a/.github/commitFile.js b/.github/commitFile.js new file mode 100644 index 000000000..8c75e629c --- /dev/null +++ b/.github/commitFile.js @@ -0,0 +1,42 @@ +async function getFileSha(fileName, github_ref, octokit, context) { + const path = "chord_metadata_service/mohpackets/docs/" + fileName; + const { data } = await octokit.repos.getContent({ + owner: context.repo.owner, + repo: context.repo.repo, + path, + ref: github_ref, + }); + return data.sha; +} + +async function commitAndPushChanges( + fileName, + github_ref, + fs, + octokit, + context +) { + const repoPath = "chord_metadata_service/mohpackets/docs/"; + const fileSha = await getFileSha(fileName, github_ref, octokit, context); + + // Read the content of the updated file + const fileContent = fs.readFileSync(`./${repoPath}${fileName}`, "utf8"); + + // Commit and push changes + await octokit.request( + `PUT /repos/{owner}/{repo}/contents/${repoPath}{fileName}`, + { + owner: context.repo.owner, + repo: context.repo.repo, + fileName, + message: `Update ${fileName}`, + content: Buffer.from(fileContent).toString("base64"), + sha: fileSha, + branch: github_ref, + } + ); +} + +module.exports = { + commitAndPushChanges, +}; diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index ce6e07249..df091077c 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -13,11 +13,11 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-python@v4 name: Set up Python with: - python-version: '3.10' + python-version: '3.12' - name: Install flake8 run: python -m pip install flake8 - name: Run linter diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 65efa39f4..7bf96fe66 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -47,11 +47,11 @@ jobs: # If you want to test multiple python version(s) strategy: matrix: - python-version: ['3.9', '3.10', '3.11'] + python-version: ['3.10', '3.11', '3.12'] steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: true - name: Set up Python ${{ matrix.python-version }} diff --git a/.github/workflows/update-schema.yaml b/.github/workflows/update-schema.yaml index 277d4fd0d..e06ddaf71 100644 --- a/.github/workflows/update-schema.yaml +++ b/.github/workflows/update-schema.yaml @@ -3,6 +3,7 @@ name: Docs on: pull_request: types: [review_requested, ready_for_review] + jobs: generate-moh-schema: @@ -10,20 +11,36 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: true - name: Install Python uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.12" - name: Install dependencies - run: python -m pip install -r requirements/dev.txt + run: python -m pip install -r requirements/base.txt + + - name: Generate new schema.json + run: | + export DJANGO_SETTINGS_MODULE=config.settings.base + python manage.py export_openapi_schema --api chord_metadata_service.mohpackets.apis.core.api | python -m json.tool > chord_metadata_service/mohpackets/docs/schema.json + + - name: Update schema.json with new SHA + run: | + REPO_OWNER=${{ github.repository_owner }} + REPO_NAME=${{ github.repository }} + HEAD_REF=${{ github.head_ref }} + SHA=$(git rev-parse HEAD) + + SCHEMA_PATH=chord_metadata_service/mohpackets/docs/schema.json + + sed -i 's|"description": "This is the RESTful API for the MoH Service."|"description": "This is the RESTful API for the MoH Service. Based on https://raw.githubusercontent.com/'"$REPO_NAME"'/'"$SHA"'/'"$SCHEMA_PATH"'"|' $SCHEMA_PATH - name: Set up Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 18 @@ -34,88 +51,41 @@ jobs: - name: Install npm run: npm install - - name: Install widdershins - run: npm install -g widdershins - - - name: Generate new schema.yml - run: python manage.py spectacular --file ./chord_metadata_service/mohpackets/docs/schema.yml --validate --fail-on-warn - - - name: Convert schema to OpenAPI documentation - run: | - npx widdershins ./chord_metadata_service/mohpackets/docs/schema.yml -o ./chord_metadata_service/mohpackets/docs/openapi.md -u ./chord_metadata_service/mohpackets/docs/widdershins/templates/openapi3 -c true --omitHeader true - - name: Install octokit/rest run: npm install @octokit/rest - - name: Update schema.yml and openapi.md + - name: Commit and push changes to schema.json uses: actions/github-script@v6 with: script: | const fs = require('fs'); const { Octokit } = require('@octokit/rest'); const octokit = new Octokit({ request: { fetch: fetch, }, auth: "${{ secrets.GITHUB_TOKEN }}" }); + const { commitAndPushChanges } = require("./.github/commitFile.js"); + + await commitAndPushChanges('schema.json', `${{ github.head_ref }}`, fs, octokit, context); - // get SHA from each file - const repoPath = 'chord_metadata_service/mohpackets/docs/'; - const getFileSha = async (path) => { - const { data } = await octokit.repos.getContent({ - owner: context.repo.owner, - repo: context.repo.repo, - path: `${repoPath}${path}`, - ref: `${{ github.head_ref }}` - }); - return data.sha; - } - - // get last commit sha for repo - const getRepoSha = async () => { - const { data } = await octokit.rest.repos.getCommit({ - owner: context.repo.owner, - repo: context.repo.repo, - ref: `${{ github.head_ref }}` - }); - return data.sha; - } - - const schemaSha = await getFileSha('schema.yml'); - const openApiSha = await getFileSha('openapi.md'); - const repoSha = await getRepoSha(); - - // Read the content of updated files - let schemaYml = fs.readFileSync(`./${repoPath}schema.yml`, 'utf8'); - const openApiMd = fs.readFileSync(`./${repoPath}openapi.md`, 'utf8'); - - // Update description to include sha of - let schemaLines = schemaYml.split('\n'); - for (let i = 0; i < schemaLines.length; ++i) { - if ("description: This is the RESTful API for the MoH Service." === schemaLines[i].trim()) { - schemaLines[i] += ' Based on https://raw.githubusercontent.com/' + context.repo.owner + '/' + context.repo.repo + '/' + repoSha + '/' + repoPath + 'schema.yml'; - } - } - schemaYml = schemaLines.join('\n'); - fs.writeFileSync(`./${repoPath}schema.yml`, schemaYml, 'utf8'); - - // Commit and push changes - await octokit.request(`PUT /repos/{owner}/{repo}/contents/${repoPath}{path}`, { - owner: context.repo.owner, - repo: context.repo.repo, - path: 'schema.yml', - message: 'Update schema.yml', - content: Buffer.from(schemaYml).toString('base64'), - sha: schemaSha, - branch: `${{ github.head_ref }}` - }); - - await octokit.request(`PUT /repos/{owner}/{repo}/contents/${repoPath}{path}`, { - owner: context.repo.owner, - repo: context.repo.repo, - path: 'openapi.md', - message: 'Update openapi.md', - content: Buffer.from(openApiMd).toString('base64'), - sha: openApiSha, - branch: `${{ github.head_ref }}` - }); + - name: Install widdershins + run: npm install -g widdershins + - name: Convert schema to OpenAPI documentation + run: | + npx widdershins ./chord_metadata_service/mohpackets/docs/schema.json -o ./chord_metadata_service/mohpackets/docs/schema.md -u ./chord_metadata_service/mohpackets/docs/widdershins/templates/openapi3 -c true --omitHeader true + + - name: Install PyYAML + run: pip install PyYAML + - name: Convert schema.json to schema.yml + run: python -c 'import json, yaml; json.load(open("chord_metadata_service/mohpackets/docs/schema.json")); print(yaml.dump(json.load(open("chord_metadata_service/mohpackets/docs/schema.json"))))' > chord_metadata_service/mohpackets/docs/schema.yml + - name: Commit and push changes to schema.yml and schema.md + uses: actions/github-script@v6 + with: + script: | + const fs = require('fs'); + const { Octokit } = require('@octokit/rest'); + const octokit = new Octokit({ request: { fetch: fetch, }, auth: "${{ secrets.GITHUB_TOKEN }}" }); + const { commitAndPushChanges } = require("./.github/commitFile.js"); + await commitAndPushChanges('schema.yml', `${{ github.head_ref }}`, fs, octokit, context); + await commitAndPushChanges('schema.md', `${{ github.head_ref }}`, fs, octokit, context); diff --git a/README.md b/README.md index c9819539a..485c491ff 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ py -3 -m venv .venv With your virtual environment activated, navigate to the project directory and install the project dependencies: ```bash -pip install -r requirements/dev.txt +pip install -r requirements/local.txt ``` This will install all the packages needed for development. diff --git a/chord_metadata_service/mohpackets/api_authorized.py b/chord_metadata_service/mohpackets/api_authorized.py deleted file mode 100644 index d08d0b7b5..000000000 --- a/chord_metadata_service/mohpackets/api_authorized.py +++ /dev/null @@ -1,321 +0,0 @@ -import os - -from django.apps import apps -from django.db.models import Prefetch -from drf_spectacular.utils import ( - OpenApiParameter, - OpenApiTypes, - extend_schema, - extend_schema_view, -) -from rest_framework import mixins, status, viewsets -from rest_framework.response import Response - -from chord_metadata_service.mohpackets.api_base import ( - BaseBiomarkerViewSet, - BaseChemotherapyViewSet, - BaseComorbidityViewSet, - BaseDonorViewSet, - BaseExposureViewSet, - BaseFollowUpViewSet, - BaseHormoneTherapyViewSet, - BaseImmunotherapyViewSet, - BasePrimaryDiagnosisViewSet, - BaseProgramViewSet, - BaseRadiationViewSet, - BaseSampleRegistrationViewSet, - BaseSpecimenViewSet, - BaseSurgeryViewSet, - BaseTreatmentViewSet, -) -from chord_metadata_service.mohpackets.authentication import ( - LocalAuthentication, - TokenAuthentication, -) -from chord_metadata_service.mohpackets.models import Donor, FollowUp, Program -from chord_metadata_service.mohpackets.pagination import ( - SmallResultsSetPagination, - StandardResultsSetPagination, -) -from chord_metadata_service.mohpackets.serializers_nested import ( - DonorWithClinicalDataSerializer, -) - -""" - This module inheriting from the base views and adding the authorized mixin, - which returns the objects related to the datasets that the user is authorized to see. -""" - - -########################################## -# # -# HELPER FUNCTIONS # -# # -########################################## - - -class AuthorizedMixin: - """ - This mixin should be used for viewsets that need to restrict access. - - The authentication classes are set based on the `DJANGO_SETTINGS_MODULE`. - If the env is "dev" or "prod", the `TokenAuthentication` class is - used. Otherwise, the `LocalAuthentication` class is used. - - Methods - ------- - get_queryset() - Returns a filtered queryset that includes only the objects that the user is - authorized to see based on their permissions. - """ - - pagination_class = StandardResultsSetPagination - settings_module = os.environ.get("DJANGO_SETTINGS_MODULE") - auth_methods = [] - # Use jwt token auth in prod/dev environment - if "dev" in settings_module or "prod" in settings_module: - auth_methods.append(TokenAuthentication) - else: - auth_methods.append(LocalAuthentication) - authentication_classes = auth_methods - - def get_queryset(self): - authorized_datasets = self.request.authorized_datasets - filtered_queryset = ( - super().get_queryset().filter(program_id__in=authorized_datasets) - ) - return filtered_queryset - - -############################################## -# # -# AUTHORIZED API VIEWS # -# # -############################################## - - -class AuthorizedProgramViewSet( - AuthorizedMixin, BaseProgramViewSet, mixins.DestroyModelMixin -): - def destroy(self, request, pk=None): - """ - Delete a program, must be an admin that can access all programs - """ - self.queryset = Program.objects.all() - try: - dataset = Program.objects.get(pk=pk) - dataset.delete() - return Response(status=status.HTTP_204_NO_CONTENT) - except Program.DoesNotExist: - return Response( - {"detail": "Program matching query does not exist."}, - status=status.HTTP_404_NOT_FOUND, - ) - - -class AuthorizedDonorViewSet(AuthorizedMixin, BaseDonorViewSet): - """ - Retrieves a list of authorized donors. - """ - - pass - - -class AuthorizedSpecimenViewSet(AuthorizedMixin, BaseSpecimenViewSet): - """ - Retrieves a list of authorized specimens. - """ - - pass - - -class AuthorizedSampleRegistrationViewSet( - AuthorizedMixin, BaseSampleRegistrationViewSet -): - """ - Retrieves a list of authorized sample registrations. - """ - - pass - - -class AuthorizedPrimaryDiagnosisViewSet(AuthorizedMixin, BasePrimaryDiagnosisViewSet): - """ - Retrieves a list of authorized primary diagnosises. - """ - - pass - - -class AuthorizedTreatmentViewSet(AuthorizedMixin, BaseTreatmentViewSet): - """ - Retrieves a list of authorized treatments. - """ - - pass - - -class AuthorizedChemotherapyViewSet(AuthorizedMixin, BaseChemotherapyViewSet): - """ - Retrieves a list of authorized chemotherapies. - """ - - pass - - -class AuthorizedHormoneTherapyViewSet(AuthorizedMixin, BaseHormoneTherapyViewSet): - """ - Retrieves a list of authorized hormone therapies. - """ - - pass - - -class AuthorizedRadiationViewSet(AuthorizedMixin, BaseRadiationViewSet): - """ - Retrieves a list of authorized radiations. - """ - - pass - - -class AuthorizedImmunotherapyViewSet(AuthorizedMixin, BaseImmunotherapyViewSet): - """ - Retrieves a list of authorized immuno therapies. - """ - - pass - - -class AuthorizedSurgeryViewSet(AuthorizedMixin, BaseSurgeryViewSet): - """ - Retrieves a list of authorized surgeries. - """ - - pass - - -class AuthorizedFollowUpViewSet(AuthorizedMixin, BaseFollowUpViewSet): - """ - Retrieves a list of authorized follow ups. - """ - - pass - - -class AuthorizedBiomarkerViewSet(AuthorizedMixin, BaseBiomarkerViewSet): - """ - Retrieves a list of authorized biomarkers. - """ - - pass - - -class AuthorizedComorbidityViewSet(AuthorizedMixin, BaseComorbidityViewSet): - """ - Retrieves a list of authorized comorbidities. - """ - - pass - - -class AuthorizedExposureViewSet(AuthorizedMixin, BaseExposureViewSet): - """ - Retrieves a list of authorized exposures. - """ - - pass - - -############################################### -# # -# CUSTOM API ENDPOINTS # -# # -############################################### - - -class OnDemandViewSet(AuthorizedMixin, viewsets.ViewSet): - @extend_schema( - parameters=[ - OpenApiParameter( - name="model", - description="Model name", - required=True, - type=str, - location=OpenApiParameter.QUERY, - ), - OpenApiParameter( - name="include_fields", - description="Comma-separated list of included fields", - required=True, - type=str, - location=OpenApiParameter.QUERY, - ), - ], - responses={201: OpenApiTypes.STR}, - ) - def list(self, request): - model_name = request.query_params.get("model") - include_fields = request.query_params.getlist("include_fields") - - try: - model = apps.get_model("mohpackets", model_name) - except LookupError: - return Response( - {"error": f"Model '{model_name}' not found."}, - status=status.HTTP_400_BAD_REQUEST, - ) - - queryset = model.objects.values(*include_fields) - - return Response(queryset) - - -@extend_schema_view( - list=extend_schema( - description="Retrieves a list of authorized Donor with clinical data." - ) -) -class AuthorizedDonorWithClinicalDataViewSet(AuthorizedMixin, BaseDonorViewSet): - """ - This viewset provides access to Donor model and its related clinical data. - It uses the DonorWithClinicalDataSerializer for serialization. - - The viewset pre-fetches related objects using the `prefetch_related` method - to minimize database queries. This ensures that all the related objects are - available in a single database query, improving the performance of the viewset. - """ - - serializer_class = DonorWithClinicalDataSerializer - pagination_class = SmallResultsSetPagination - - donor_followups_prefetch = Prefetch( - "followup_set", - queryset=FollowUp.objects.filter( - submitter_primary_diagnosis_id__isnull=True, - submitter_treatment_id__isnull=True, - ), - ) - - primary_diagnosis_followups_prefetch = Prefetch( - "primarydiagnosis_set__followup_set", - queryset=FollowUp.objects.filter( - submitter_primary_diagnosis_id__isnull=False, - submitter_treatment_id__isnull=True, - ), - ) - - queryset = Donor.objects.prefetch_related( - donor_followups_prefetch, - primary_diagnosis_followups_prefetch, - "biomarker_set", - "comorbidity_set", - "exposure_set", - "primarydiagnosis_set__treatment_set__chemotherapy_set", - "primarydiagnosis_set__treatment_set__hormonetherapy_set", - "primarydiagnosis_set__treatment_set__immunotherapy_set", - "primarydiagnosis_set__treatment_set__radiation_set", - "primarydiagnosis_set__treatment_set__surgery_set", - "primarydiagnosis_set__treatment_set__followup_set", - "primarydiagnosis_set__specimen_set__sampleregistration_set", - ).all() diff --git a/chord_metadata_service/mohpackets/api_base.py b/chord_metadata_service/mohpackets/api_base.py deleted file mode 100644 index 2a977dbd9..000000000 --- a/chord_metadata_service/mohpackets/api_base.py +++ /dev/null @@ -1,190 +0,0 @@ -from rest_framework import mixins, viewsets - -from chord_metadata_service.mohpackets.filters import ( - BiomarkerFilter, - ChemotherapyFilter, - ComorbidityFilter, - DonorFilter, - ExposureFilter, - FollowUpFilter, - HormoneTherapyFilter, - ImmunotherapyFilter, - PrimaryDiagnosisFilter, - ProgramFilter, - RadiationFilter, - SampleRegistrationFilter, - SpecimenFilter, - SurgeryFilter, - TreatmentFilter, -) -from chord_metadata_service.mohpackets.models import ( - Biomarker, - Chemotherapy, - Comorbidity, - Donor, - Exposure, - FollowUp, - HormoneTherapy, - Immunotherapy, - PrimaryDiagnosis, - Program, - Radiation, - SampleRegistration, - Specimen, - Surgery, - Treatment, -) -from chord_metadata_service.mohpackets.permissions import CanDIGAdminOrReadOnly -from chord_metadata_service.mohpackets.serializers import ( - BiomarkerSerializer, - ChemotherapySerializer, - ComorbiditySerializer, - DonorSerializer, - ExposureSerializer, - FollowUpSerializer, - HormoneTherapySerializer, - ImmunotherapySerializer, - PrimaryDiagnosisSerializer, - ProgramSerializer, - RadiationSerializer, - SampleRegistrationSerializer, - SpecimenSerializer, - SurgerySerializer, - TreatmentSerializer, -) -from chord_metadata_service.mohpackets.throttling import MoHRateThrottle - -""" - This module contains the base view class for discovery and authorized views. - - The queryset filter is not implemented in this base class to force its implementation - in the discovery and authorized views. Implementing the queryset filter in - each view provides more control over the data that is returned and helps to - prevent unintentional exposure of unauthorized data. -""" - -######################################## -# # -# BASE API VIEWS # -# # -######################################## - - -class BaseProgramViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = ProgramSerializer - filterset_class = ProgramFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = Program.objects.all() - - -class BaseDonorViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = DonorSerializer - filterset_class = DonorFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = Donor.objects.all() - - -class BaseSpecimenViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = SpecimenSerializer - filterset_class = SpecimenFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = Specimen.objects.all() - - -class BaseSampleRegistrationViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = SampleRegistrationSerializer - filterset_class = SampleRegistrationFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = SampleRegistration.objects.all() - - -class BasePrimaryDiagnosisViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = PrimaryDiagnosisSerializer - filterset_class = PrimaryDiagnosisFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = PrimaryDiagnosis.objects.all() - - -class BaseTreatmentViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = TreatmentSerializer - filterset_class = TreatmentFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = Treatment.objects.all() - - -class BaseChemotherapyViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = ChemotherapySerializer - filterset_class = ChemotherapyFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = Chemotherapy.objects.all() - - -class BaseHormoneTherapyViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = HormoneTherapySerializer - filterset_class = HormoneTherapyFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = HormoneTherapy.objects.all() - - -class BaseRadiationViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = RadiationSerializer - filterset_class = RadiationFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = Radiation.objects.all() - - -class BaseImmunotherapyViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = ImmunotherapySerializer - filterset_class = ImmunotherapyFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = Immunotherapy.objects.all() - - -class BaseSurgeryViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = SurgerySerializer - filterset_class = SurgeryFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = Surgery.objects.all() - - -class BaseFollowUpViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = FollowUpSerializer - filterset_class = FollowUpFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = FollowUp.objects.all() - - -class BaseBiomarkerViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = BiomarkerSerializer - filterset_class = BiomarkerFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = Biomarker.objects.all() - - -class BaseComorbidityViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = ComorbiditySerializer - filterset_class = ComorbidityFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = Comorbidity.objects.all() - - -class BaseExposureViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - serializer_class = ExposureSerializer - filterset_class = ExposureFilter - permission_classes = [CanDIGAdminOrReadOnly] - throttle_classes = [MoHRateThrottle] - queryset = Exposure.objects.all() diff --git a/chord_metadata_service/mohpackets/api_discovery.py b/chord_metadata_service/mohpackets/api_discovery.py deleted file mode 100644 index cbff4b9a2..000000000 --- a/chord_metadata_service/mohpackets/api_discovery.py +++ /dev/null @@ -1,512 +0,0 @@ -from collections import Counter, defaultdict -from datetime import date, datetime - -from django.conf import settings -from django.db.models import Count -from django.http import JsonResponse -from drf_spectacular.utils import ( - OpenApiTypes, - extend_schema, - extend_schema_serializer, - inline_serializer, -) -from rest_framework import serializers, status, viewsets -from rest_framework.decorators import api_view, throttle_classes -from rest_framework.response import Response - -from chord_metadata_service.mohpackets.api_base import ( - BaseBiomarkerViewSet, - BaseChemotherapyViewSet, - BaseComorbidityViewSet, - BaseDonorViewSet, - BaseExposureViewSet, - BaseFollowUpViewSet, - BaseHormoneTherapyViewSet, - BaseImmunotherapyViewSet, - BasePrimaryDiagnosisViewSet, - BaseRadiationViewSet, - BaseSampleRegistrationViewSet, - BaseSpecimenViewSet, - BaseSurgeryViewSet, - BaseTreatmentViewSet, -) -from chord_metadata_service.mohpackets.models import ( - Chemotherapy, - Donor, - HormoneTherapy, - Immunotherapy, - PrimaryDiagnosis, - Program, - Treatment, -) -from chord_metadata_service.mohpackets.permissible_values import ( - PRIMARY_SITE, - TREATMENT_TYPE, -) -from chord_metadata_service.mohpackets.throttling import MoHRateThrottle - -from .utils import get_schema_url - -""" - This module inheriting from the base views and adding the discovery mixin, - which returns the number of donors only. - - The discovery feature can help users without authorization explore the - available data without exposing the details. -""" - - -########################################## -# # -# HELPER FUNCTIONS # -# # -########################################## - - -@extend_schema_serializer(many=False) -class DiscoverySerializer(serializers.Serializer): - """ - This serializer is used to return the discovery_donor. - It also override the list serializer to a single object - """ - - discovery_donor = serializers.IntegerField() - - -class DiscoveryMixin: - """ - This mixin should be used for viewsets that need to expose - discovery information about the donor they represent. - - Methods - ------- - list(request, *args, **kwargs) - Returns a response that contains the number of unique donors in the - queryset. - """ - - @extend_schema(responses=DiscoverySerializer(many=False)) - def list(self, request, *args, **kwargs): - queryset = self.filter_queryset(self.get_queryset()) - donor_counts = ( - queryset.values("program_id") - .annotate(count=Count("submitter_donor_id")) - .order_by("program_id") - ) - discovery_donor = { - f"{donor['program_id']}": donor["count"] for donor in donor_counts - } - return Response({"discovery_donor": discovery_donor}) - - -def count_terms(terms): - """ - Return a dictionary of counts for every term in a list, used in overview endpoints - for fields with lists as entries. - """ - if len(terms) > 0 and isinstance(terms[0], list): # Unnest list if nested - terms = sum(terms, []) - return Counter(terms) - - -############################################### -# # -# DISCOVERY API VIEWS # -# # -############################################### - - -class DiscoveryDonorViewSet(DiscoveryMixin, BaseDonorViewSet): - """ - Retrieves a number of discovery donors. - """ - - pass - - -class DiscoverySpecimenViewSet(DiscoveryMixin, BaseSpecimenViewSet): - """ - Retrieves a number of discovery specimens. - """ - - pass - - -class DiscoverySampleRegistrationViewSet(DiscoveryMixin, BaseSampleRegistrationViewSet): - """ - Retrieves a number of discovery samples. - """ - - pass - - -class DiscoveryPrimaryDiagnosisViewSet(DiscoveryMixin, BasePrimaryDiagnosisViewSet): - """ - Retrieves a number of discovery primary diagnosises. - """ - - pass - - -class DiscoveryTreatmentViewSet(DiscoveryMixin, BaseTreatmentViewSet): - """ - Retrieves a number of discovery treatments. - """ - - pass - - -class DiscoveryChemotherapyViewSet(DiscoveryMixin, BaseChemotherapyViewSet): - """ - Retrieves a number of discovery chemotherapies. - """ - - pass - - -class DiscoveryHormoneTherapyViewSet(DiscoveryMixin, BaseHormoneTherapyViewSet): - """ - Retrieves a number of discovery hormone therapies. - """ - - pass - - -class DiscoveryRadiationViewSet(DiscoveryMixin, BaseRadiationViewSet): - """ - Retrieves a number of discovery radiations. - """ - - pass - - -class DiscoveryImmunotherapyViewSet(DiscoveryMixin, BaseImmunotherapyViewSet): - """ - Retrieves a number of discovery immuno therapies. - """ - - pass - - -class DiscoverySurgeryViewSet(DiscoveryMixin, BaseSurgeryViewSet): - """ - Retrieves a number of discovery surgeries. - """ - - pass - - -class DiscoveryFollowUpViewSet(DiscoveryMixin, BaseFollowUpViewSet): - """ - Retrieves a number of discovery follow ups. - """ - - pass - - -class DiscoveryBiomarkerViewSet(DiscoveryMixin, BaseBiomarkerViewSet): - """ - Retrieves a number of discovery biomarkers. - """ - - pass - - -class DiscoveryComorbidityViewSet(DiscoveryMixin, BaseComorbidityViewSet): - """ - Retrieves a number of discovery comorbidities. - """ - - pass - - -class DiscoveryExposureViewSet(DiscoveryMixin, BaseExposureViewSet): - """ - Retrieves a number of discovery exposures. - """ - - pass - - -############################################### -# # -# CUSTOM OVERVIEW API ENDPOINTS # -# # -############################################### - - -class SidebarListViewSet(viewsets.ViewSet): - """ - A viewset that provides a list of queryable names for various treatments and drugs. - """ - - @extend_schema( - responses={201: OpenApiTypes.STR}, - ) - def list(self, request): - """ - Retrieve the list of available values for all fields (including for - datasets that the user is not authorized to view) - """ - # Drugs queryable for chemotherapy - chemotherapy_drug_names = ( - Chemotherapy.objects.exclude(drug_name__isnull=True) - .values_list("drug_name", flat=True) - .order_by("drug_name") - .distinct() - ) - # Drugs queryable for immunotherapy - immunotherapy_drug_names = ( - Immunotherapy.objects.exclude(drug_name__isnull=True) - .values_list("drug_name", flat=True) - .order_by("drug_name") - .distinct() - ) - - # Drugs queryable for hormone therapy - hormone_therapy_drug_names = ( - HormoneTherapy.objects.exclude(drug_name__isnull=True) - .values_list("drug_name", flat=True) - .order_by("drug_name") - .distinct() - ) - - # Create a dictionary of results - results = { - "treatment_types": TREATMENT_TYPE, - "tumour_primary_sites": PRIMARY_SITE, - "chemotherapy_drug_names": chemotherapy_drug_names, - "immunotherapy_drug_names": immunotherapy_drug_names, - "hormone_therapy_drug_names": hormone_therapy_drug_names, - } - - # Return the results as a JSON response - return Response(results) - - -@extend_schema( - description="MoH cohorts count", - responses={ - 200: inline_serializer( - name="moh_overview_cohort_count_response", - fields={ - "cohort_count": serializers.IntegerField(), - }, - ) - }, -) -@api_view(["GET"]) -@throttle_classes([MoHRateThrottle]) -def cohort_count(_request): - """ - Return the number of cohorts in the database. - """ - return Response({"cohort_count": Program.objects.count()}) - - -@extend_schema( - description="MoH patients per cohort count", - responses={ - 200: inline_serializer( - name="moh_overview_patient_per_cohort_response", - fields={ - "patients_per_cohort_count": serializers.IntegerField(), - }, - ) - }, -) -@api_view(["GET"]) -@throttle_classes([MoHRateThrottle]) -def patient_per_cohort_count(_request): - """ - Return the number of patients per cohort in the database. - """ - cohorts = Donor.objects.values_list("program_id", flat=True) - return Response(count_terms(cohorts)) - - -@extend_schema( - description="MoH individuals count", - responses={ - 200: inline_serializer( - name="moh_overview_individual_count_response", - fields={ - "individual_count": serializers.IntegerField(), - }, - ) - }, -) -@api_view(["GET"]) -@throttle_classes([MoHRateThrottle]) -def individual_count(_request): - """ - Return the number of individuals in the database. - """ - return Response({"individual_count": Donor.objects.count()}) - - -@extend_schema( - description="MoH gender count", - responses={ - 200: inline_serializer( - name="moh_overview_gender_count_response", - fields={ - "gender_count": serializers.IntegerField(), - }, - ) - }, -) -@api_view(["GET"]) -@throttle_classes([MoHRateThrottle]) -def gender_count(_request): - """ - Return the count for every gender in the database. - """ - genders = Donor.objects.values_list("gender", flat=True) - return Response(count_terms(genders)) - - -@extend_schema( - description="MoH cancer types count", - responses={ - 200: inline_serializer( - name="moh_overview_cancer_type_count_response", - fields={ - "cancer_type_count": serializers.IntegerField(), - }, - ) - }, -) -@api_view(["GET"]) -@throttle_classes([MoHRateThrottle]) -def cancer_type_count(_request): - """ - Return the count for every cancer type in the database. - """ - cancer_types = list(Donor.objects.values_list("primary_site", flat=True)) - - # Handle missing values as empty arrays - for i in range(len(cancer_types)): - if cancer_types[i] is None: - cancer_types[i] = [None] - - return Response(count_terms(cancer_types)) - - -@extend_schema( - description="MoH Treatments type count", - responses={ - 200: inline_serializer( - name="moh_overview_treatment_type_count_response", - fields={ - "treatment_type_count": serializers.IntegerField(), - }, - ) - }, -) -@api_view(["GET"]) -@throttle_classes([MoHRateThrottle]) -def treatment_type_count(_request): - """ - Return the count for every treatment type in the database. - """ - treatment_types = list(Treatment.objects.values_list("treatment_type", flat=True)) - - # Handle missing values as empty arrays - for i in range(len(treatment_types)): - if treatment_types[i] is None: - treatment_types[i] = [None] - - return Response(count_terms(treatment_types)) - - -@extend_schema( - description="MoH Diagnosis age count", - responses={ - 200: inline_serializer( - name="moh_overview_diagnosis_age_count_response", - fields={ - "age_range_count": serializers.IntegerField(), - }, - ) - }, -) -@api_view(["GET"]) -@throttle_classes([MoHRateThrottle]) -def diagnosis_age_count(_request): - """ - Return the count for age of diagnosis in the database. - """ - # Find the earliest diagnosis date per donor - diagnosis_dates = PrimaryDiagnosis.objects.values( - "submitter_donor_id", "date_of_diagnosis" - ) - min_dates = {} - for d_date in diagnosis_dates: - donor = d_date["submitter_donor_id"] - cur_date = ( - datetime.strptime(d_date["date_of_diagnosis"], "%Y-%m").date() - if d_date["date_of_diagnosis"] is not None - else date.max - ) - if donor not in min_dates.keys(): - min_dates[donor] = cur_date - else: - if cur_date < min_dates[donor]: - min_dates[donor] = cur_date - - # Calculate donor's age of diagnosis - birth_dates = Donor.objects.values("submitter_donor_id", "date_of_birth") - birth_dates = { - date["submitter_donor_id"]: date["date_of_birth"] for date in birth_dates - } - ages = {} - for donor, diagnosis_date in min_dates.items(): - if birth_dates[donor] is not None and diagnosis_date is not date.max: - birth_date = datetime.strptime(birth_dates[donor], "%Y-%m").date() - ages[donor] = (diagnosis_date - birth_date).days // 365.25 - else: - ages[donor] = None - - age_counts = defaultdict(int) - for age in ages.values(): - if age is None: - age_counts["null"] += 1 - elif age <= 19: - age_counts["0-19"] += 1 - elif age <= 29: - age_counts["20-29"] += 1 - elif age <= 39: - age_counts["30-39"] += 1 - elif age <= 49: - age_counts["40-49"] += 1 - elif age <= 59: - age_counts["50-59"] += 1 - elif age <= 69: - age_counts["60-69"] += 1 - elif age <= 79: - age_counts["70-79"] += 1 - else: - age_counts["80+"] += 1 - - return Response(age_counts) - - -@extend_schema( - responses={200: OpenApiTypes.STR}, -) -@api_view(["GET"]) -def service_info(_request): - schema_url = get_schema_url() - - return JsonResponse( - { - "name": "katsu", - "description": "A CanDIG clinical data service", - "version": settings.KATSU_VERSION, - "schema_url": schema_url, - }, - status=status.HTTP_200_OK, - safe=False, - json_dumps_params={"indent": 2}, - ) diff --git a/chord_metadata_service/mohpackets/api_ingest.py b/chord_metadata_service/mohpackets/api_ingest.py deleted file mode 100644 index 5b86aeaa6..000000000 --- a/chord_metadata_service/mohpackets/api_ingest.py +++ /dev/null @@ -1,452 +0,0 @@ -import logging - -from django.db import transaction -from drf_spectacular.types import OpenApiTypes -from drf_spectacular.utils import extend_schema -from rest_framework import status -from rest_framework.decorators import api_view, permission_classes -from rest_framework.response import Response - -from chord_metadata_service.mohpackets.permissions import CanDIGAdminOrReadOnly -from chord_metadata_service.mohpackets.serializers import ( - BiomarkerSerializer, - ChemotherapySerializer, - ComorbiditySerializer, - DonorSerializer, - ExposureSerializer, - FollowUpSerializer, - HormoneTherapySerializer, - ImmunotherapySerializer, - IngestRequestSerializer, - PrimaryDiagnosisSerializer, - ProgramSerializer, - RadiationSerializer, - SampleRegistrationSerializer, - SpecimenSerializer, - SurgerySerializer, - TreatmentSerializer, -) - -""" - This module contains the API endpoints for ingesting bulk data into the database. - It take a JSON object with a "data" key and a list of JSON objects as the value. - It then uses the serializer class to validate the input data before creating the objects in bulk. - The function has some decorators: - - @extend_schema: document the API endpoint using OpenAPI. - - @api_view: specify the HTTP methods that the endpoint accepts. - - @permission_classes: specify the permissions required to access the endpoint. -""" - -########################################## -# # -# HELPER FUNCTIONS # -# # -########################################## - -logger = logging.getLogger(__name__) - - -def create_bulk_objects(serializer_class, data: dict): - """Create a list of objects in bulk using a list of JSON strings. - - This function uses the provided serializer class to validate the input data before - creating the objects in bulk using the provided model. - - Parameters - ---------- - data : dict - A JSON object representing the objects to be created. - serializer_class: class - The serializer class used to validate the input data before creating the objects. - """ - - # Use the serializer to validate the input data - serializer = serializer_class(data=data, many=True) - serializer.is_valid(raise_exception=True) - # Note: bulk_create() would be faster but it requires to append the _id to the foreign keys - with transaction.atomic(): - serializer.save() - objs = serializer.data - return objs - - -########################################## -# # -# BULK INGEST FUNCTIONS # -# # -########################################## - - -# PROGRAM -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_programs(request): - serializer = ProgramSerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# DONOR -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_donors(request): - serializer = DonorSerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# PRIMARY DIAGNOSIS -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_primary_diagnosises(request): - serializer = PrimaryDiagnosisSerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# SPECIMEN -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_specimens(request): - serializer = SpecimenSerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# SAMPLE REGISTRATION -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_sample_registrations(request): - serializer = SampleRegistrationSerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# TREATMENT -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_treatments(request): - serializer = TreatmentSerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# CHEMOTHERAPY -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_chemotherapies(request): - serializer = ChemotherapySerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# RADIATION -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_radiations(request): - serializer = RadiationSerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# SURGERY -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_surgeries(request): - serializer = SurgerySerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# HORMONE THERAPY -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_hormonetherapies(request): - serializer = HormoneTherapySerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# IMMUNOTHERAPY -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_immunotherapies(request): - serializer = ImmunotherapySerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# FOLLOW UP -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_followups(request): - serializer = FollowUpSerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# BIOMARKER -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_biomarkers(request): - serializer = BiomarkerSerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# COMORBIDITY -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_comorbidities(request): - serializer = ComorbiditySerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) - - -# EXPOSURE -# --------------- -@extend_schema( - request=IngestRequestSerializer, - responses={201: OpenApiTypes.STR}, -) -@api_view(["POST"]) -@permission_classes([CanDIGAdminOrReadOnly]) -def ingest_exposures(request): - serializer = ExposureSerializer - data = request.data - try: - objs = create_bulk_objects(serializer, data) - except Exception as e: - return Response( - status=status.HTTP_400_BAD_REQUEST, - data={"error": str(e)}, - ) - - return Response( - status=status.HTTP_201_CREATED, - data={"result": len(objs)}, - ) diff --git a/chord_metadata_service/mohpackets/apis/clinical_data.py b/chord_metadata_service/mohpackets/apis/clinical_data.py new file mode 100644 index 000000000..ee3869765 --- /dev/null +++ b/chord_metadata_service/mohpackets/apis/clinical_data.py @@ -0,0 +1,339 @@ +from functools import wraps +from http import HTTPStatus +from typing import Dict, List + +from django.db.models import Prefetch, Q +from ninja import Query + +from chord_metadata_service.mohpackets.models import ( + Biomarker, + Chemotherapy, + Comorbidity, + Donor, + Exposure, + FollowUp, + HormoneTherapy, + Immunotherapy, + PrimaryDiagnosis, + Program, + Radiation, + SampleRegistration, + Specimen, + Surgery, + Treatment, +) +from chord_metadata_service.mohpackets.pagination import ( + CustomRouterPaginated, +) +from chord_metadata_service.mohpackets.schemas.filter import ( + BiomarkerFilterSchema, + ChemotherapyFilterSchema, + ComorbidityFilterSchema, + DonorFilterSchema, + ExposureFilterSchema, + FollowUpFilterSchema, + HormoneTherapyFilterSchema, + ImmunotherapyFilterSchema, + PrimaryDiagnosisFilterSchema, + ProgramFilterSchema, + RadiationFilterSchema, + SampleRegistrationFilterSchema, + SpecimenFilterSchema, + SurgeryFilterSchema, + TreatmentFilterSchema, +) +from chord_metadata_service.mohpackets.schemas.model import ( + BiomarkerModelSchema, + ChemotherapyModelSchema, + ComorbidityModelSchema, + DonorModelSchema, + ExposureModelSchema, + FollowUpModelSchema, + HormoneTherapyModelSchema, + ImmunotherapyModelSchema, + PrimaryDiagnosisModelSchema, + ProgramModelSchema, + RadiationModelSchema, + SampleRegistrationModelSchema, + SpecimenModelSchema, + SurgeryModelSchema, + TreatmentModelSchema, +) +from chord_metadata_service.mohpackets.schemas.nested_data import ( + DonorWithClinicalDataSchema, +) + +""" +Module with authorized APIs for patient clinical data. +These APIs require authorization and only returns the objects related +to the datasets that user authorized to see. + +Author: Son Chau +""" + + +router = CustomRouterPaginated() + + +########################################## +# # +# HELPER FUNCTIONS # +# # +########################################## +def require_donor_by_program(func): + @wraps(func) + def wrapper(request, filters): + if filters.submitter_donor_id and not filters.program_id: + error_message = {"error": "filter missing program_id"} + return HTTPStatus.BAD_REQUEST, error_message + + return func(request, filters) + + return wrapper + + +########################################## +# # +# DELETE FUNCTIONS # +# # +########################################## +@router.delete( + "/program/{program_id}/", + response={204: None, 404: Dict[str, str]}, +) +def delete_program(request, program_id: str): + try: + dataset = Program.objects.get(pk=program_id) + dataset.delete() + return HTTPStatus.NO_CONTENT, None + except Program.DoesNotExist: + return HTTPStatus.NOT_FOUND, {"error": "Program matching query does not exist"} + + +########################################## +# # +# DONOR WITH CLINICAL DATA # +# # +########################################## +@router.get( + "/donor_with_clinical_data/program/{program_id}/donor/{donor_id}", + response={200: DonorWithClinicalDataSchema, 404: Dict[str, str]}, +) +def get_donor_with_clinical_data(request, program_id: str, donor_id: str): + authorized_datasets = request.authorized_datasets + q = ( + Q(program_id__in=authorized_datasets) + & Q(program_id=program_id) + & Q(submitter_donor_id=donor_id) + ) + queryset = Donor.objects.filter(q) + + donor_followups_prefetch = Prefetch( + "followup_set", + queryset=FollowUp.objects.filter( + submitter_primary_diagnosis_id__isnull=True, + submitter_treatment_id__isnull=True, + ), + ) + + primary_diagnosis_followups_prefetch = Prefetch( + "primarydiagnosis_set__followup_set", + queryset=FollowUp.objects.filter( + submitter_primary_diagnosis_id__isnull=False, + submitter_treatment_id__isnull=True, + ), + ) + try: + donor = queryset.prefetch_related( + donor_followups_prefetch, + primary_diagnosis_followups_prefetch, + "biomarker_set", + "comorbidity_set", + "exposure_set", + "primarydiagnosis_set__treatment_set__chemotherapy_set", + "primarydiagnosis_set__treatment_set__hormonetherapy_set", + "primarydiagnosis_set__treatment_set__immunotherapy_set", + "primarydiagnosis_set__treatment_set__radiation_set", + "primarydiagnosis_set__treatment_set__surgery_set", + "primarydiagnosis_set__treatment_set__followup_set", + "primarydiagnosis_set__specimen_set__sampleregistration_set", + ).get() + return donor + except Donor.DoesNotExist: + return HTTPStatus.NOT_FOUND, { + "error": "Donor matching query does not exist or inaccessible" + } + + +########################################## +# # +# CLINICAL DATA # +# # +########################################## +@router.get( + "/programs/", + response=List[ProgramModelSchema], +) +def list_programs(request, filters: Query[ProgramFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return Program.objects.filter(q) + + +@router.get("/donors/", response=List[DonorModelSchema]) +def list_donors(request, filters: Query[DonorFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return Donor.objects.filter(q) + + +def check_filter_donor_with_program(filters): + if filters.submitter_donor_id and not filters.program_id: + error_message = {"error": "submitter_donor_id filter requires program_id"} + return HTTPStatus.BAD_REQUEST, error_message + return filters + + +@router.get( + "/primary_diagnoses/", + response=List[PrimaryDiagnosisModelSchema], +) +def list_primary_diagnoses(request, filters: Query[PrimaryDiagnosisFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return PrimaryDiagnosis.objects.filter(q) + + +@router.get( + "/biomarkers/", + response=List[BiomarkerModelSchema], +) +def list_biomarkers(request, filters: Query[BiomarkerFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return Biomarker.objects.filter(q) + + +@router.get( + "/chemotherapies/", + response=List[ChemotherapyModelSchema], +) +def list_chemotherapies(request, filters: Query[ChemotherapyFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return Chemotherapy.objects.filter(q) + + +@router.get( + "/comorbidities/", + response=List[ComorbidityModelSchema], +) +def list_comorbidities(request, filters: Query[ComorbidityFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return Comorbidity.objects.filter(q) + + +@router.get( + "/exposures/", + response=List[ExposureModelSchema], +) +def list_exposures(request, filters: Query[ExposureFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return Exposure.objects.filter(q) + + +@router.get( + "/follow_ups/", + response=List[FollowUpModelSchema], +) +def list_follow_ups(request, filters: Query[FollowUpFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return FollowUp.objects.filter(q) + + +@router.get( + "/hormone_therapies/", + response=List[HormoneTherapyModelSchema], +) +def list_hormone_therapies(request, filters: Query[HormoneTherapyFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return HormoneTherapy.objects.filter(q) + + +@router.get( + "/immunotherapies/", + response=List[ImmunotherapyModelSchema], +) +def list_immunotherapies(request, filters: Query[ImmunotherapyFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return Immunotherapy.objects.filter(q) + + +@router.get( + "/radiations/", + response=List[RadiationModelSchema], +) +def list_radiations(request, filters: Query[RadiationFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return Radiation.objects.filter(q) + + +@router.get( + "/sample_registrations/", + response=List[SampleRegistrationModelSchema], +) +def list_sample_registrations(request, filters: Query[SampleRegistrationFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return SampleRegistration.objects.filter(q) + + +@router.get( + "/specimens/", + response=List[SpecimenModelSchema], +) +def list_specimens(request, filters: Query[SpecimenFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return Specimen.objects.filter(q) + + +@router.get( + "/surgeries/", + response=List[SurgeryModelSchema], +) +def list_surgeries(request, filters: Query[SurgeryFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return Surgery.objects.filter(q) + + +@router.get( + "/treatments/", + response=List[TreatmentModelSchema], +) +def list_treatments(request, filters: Query[TreatmentFilterSchema]): + authorized_datasets = request.authorized_datasets + q = Q(program_id__in=authorized_datasets) + q &= filters.get_filter_expression() + return Treatment.objects.filter(q) diff --git a/chord_metadata_service/mohpackets/apis/core.py b/chord_metadata_service/mohpackets/apis/core.py new file mode 100644 index 000000000..186cbe7d3 --- /dev/null +++ b/chord_metadata_service/mohpackets/apis/core.py @@ -0,0 +1,154 @@ +import logging +import os +import sys + +import orjson +from authx.auth import get_opa_datasets, is_site_admin +from django.conf import settings +from django.http import JsonResponse +from ninja import NinjaAPI, Swagger +from ninja.parser import Parser +from ninja.renderers import BaseRenderer +from ninja.security import HttpBearer + +from chord_metadata_service.mohpackets.apis.clinical_data import ( + router as authorzied_router, +) +from chord_metadata_service.mohpackets.apis.discovery import ( + discovery_router as discovery_router, +) +from chord_metadata_service.mohpackets.apis.ingestion import router as ingest_router +from chord_metadata_service.mohpackets.utils import get_schema_url + +""" +Module with configurations for APIs + +Author: Son Chau +""" + +logger = logging.getLogger(__name__) +SAFE_METHODS = ("GET", "HEAD", "OPTIONS") + + +########################################## +# # +# RENDERER # +# # +########################################## +class ORJSONRenderer(BaseRenderer): + media_type = "application/json" + + def render(self, request, data, *, response_status): + return orjson.dumps(data) + + +class ORJSONParser(Parser): + def parse_body(self, request): + return orjson.loads(request.body) + + +########################################## +# # +# AUTHORIZATION # +# # +########################################## +class OPAAuth(HttpBearer): + def authenticate(self, request, token): + try: + opa_secret = settings.CANDIG_OPA_SECRET + request.has_permission = request.method in SAFE_METHODS or is_site_admin( + request, admin_secret=opa_secret + ) + if not request.has_permission: + return None + authorized_datasets = get_opa_datasets(request, admin_secret=opa_secret) + request.authorized_datasets = authorized_datasets + + except Exception as e: + logger.exception(f"An error occurred in OPA: {e}") + raise Exception("Error with OPA authentication.") + + logger.debug( + "OPA Authentication completed for request '%s' with token: %s. Authorized datasets: %s. Permission: %s", + request.get_full_path(), + token, + authorized_datasets, + request.has_permission, + ) + return token + + +class LocalAuth(HttpBearer): + def authenticate(self, request, token): + request.has_permission = request.method in SAFE_METHODS or any( + d.get("is_admin", False) + for d in settings.LOCAL_AUTHORIZED_DATASET + if d["token"] == token + ) + if not request.has_permission: + return None + + authorized_datasets = [ + dataset + for d in settings.LOCAL_AUTHORIZED_DATASET + if d["token"] == token + for dataset in d["datasets"] + ] + request.authorized_datasets = authorized_datasets + + logger.debug( + "Local Authentication completed for request '%s' with token: %s. Authorized datasets: %s. Permission: %s", + request.get_full_path(), + token, + authorized_datasets, + request.has_permission, + ) + + return token + + +########################################## +# # +# SETTINGS # +# # +########################################## +settings_module = os.environ.get("DJANGO_SETTINGS_MODULE") +# Use OPA in prod/dev environment +if "dev" in settings_module or "prod" in settings_module: + auth = OPAAuth() +else: + auth = LocalAuth() + +if "test" in sys.argv: + auth = LocalAuth() + +api = NinjaAPI( + renderer=ORJSONRenderer(), + parser=ORJSONParser(), + docs=Swagger( + settings={"docExpansion": "none"} + ), # collapse all endpoints by default + title="MoH Service API", + version=settings.KATSU_VERSION, + description="This is the RESTful API for the MoH Service.", +) +api.add_router("/ingest/", ingest_router, auth=auth, tags=["ingest"]) +api.add_router("/authorized/", authorzied_router, auth=auth, tags=["authorized"]) +api.add_router("/discovery/", discovery_router, tags=["discovery"]) + + +@api.get("/service-info") +def service_info(request): + schema_url = get_schema_url() + + return JsonResponse( + { + "name": "katsu", + "description": "A CanDIG clinical data service", + "version": settings.KATSU_VERSION, + "schema_url": schema_url, + }, + status=200, + safe=False, + json_dumps_params={"indent": 2}, + ) diff --git a/chord_metadata_service/mohpackets/apis/discovery.py b/chord_metadata_service/mohpackets/apis/discovery.py new file mode 100644 index 000000000..134a72de7 --- /dev/null +++ b/chord_metadata_service/mohpackets/apis/discovery.py @@ -0,0 +1,352 @@ +from collections import Counter, defaultdict +from datetime import date, datetime +from typing import Any, Dict, Type + +from django.db.models import ( + Count, + Model, +) +from ninja import Query, Router + +from chord_metadata_service.mohpackets.models import ( + Biomarker, + Chemotherapy, + Comorbidity, + Donor, + Exposure, + FollowUp, + HormoneTherapy, + Immunotherapy, + PrimaryDiagnosis, + Program, + Radiation, + SampleRegistration, + Specimen, + Surgery, + Treatment, +) +from chord_metadata_service.mohpackets.permissible_values import ( + PRIMARY_SITE, + TREATMENT_TYPE, +) +from chord_metadata_service.mohpackets.schemas.discovery import ( + DiscoverySchema, + ProgramDiscoverySchema, +) +from chord_metadata_service.mohpackets.schemas.filter import DonorFilterSchema + +""" +Module with overview APIs for the summary page and discovery APIs. +These APIs do not require authorization but return only donor counts. + +Author: Son Chau +""" + +discovery_router = Router() +overview_router = Router() +discovery_router.add_router("/overview/", overview_router, tags=["overview"]) + + +########################################## +# # +# HELPER FUNCTIONS # +# # +########################################## +def count_terms(terms): + """ + Return a dictionary of counts for every term in a list, used in overview endpoints + for fields with lists as entries. + """ + # Unnest list if nested + if terms and isinstance(terms[0], list): + terms = sum(terms, []) + + # Convert None values to "null" + terms = ["null" if term is None else term for term in terms] + return Counter(terms) + + +def count_donors(model: Type[Model], filters=None) -> Dict[str, int]: + queryset = model.objects.all() + if model == Donor: + count_field = "uuid" + else: + count_field = "donor_uuid" + + if filters is not None: + queryset = filters.filter(queryset) + + item_counts = ( + queryset.values("program_id") + .annotate(donor_count=Count(count_field, distinct=True)) + .order_by("program_id") + ) + + return {f"{item['program_id']}": item["donor_count"] for item in item_counts} + + +############################################### +# # +# DISCOVERY API # +# # +############################################### +@discovery_router.get("/programs/", response=ProgramDiscoverySchema) +def discover_programs(request): + programs_list = Program.objects.values_list("program_id", flat=True) + return ProgramDiscoverySchema(cohort_list=programs_list) + + +@discovery_router.get("/donors/", response=DiscoverySchema) +def discover_donors(request, filters: DonorFilterSchema = Query(...)): + donors = count_donors(Donor, filters) + return DiscoverySchema(donors_by_cohort=donors) + + +@discovery_router.get("/specimen/", response=DiscoverySchema) +def discover_specimens(request): + specimens = count_donors(Specimen) + return DiscoverySchema(donors_by_cohort=specimens) + + +@discovery_router.get("/sample_registrations/", response=DiscoverySchema) +def discover_sample_registrations(request): + sample_registrations = count_donors(SampleRegistration) + return DiscoverySchema(donors_by_cohort=sample_registrations) + + +@discovery_router.get("/primary_diagnoses/", response=DiscoverySchema) +def discover_primary_diagnoses(request): + primary_diagnoses = count_donors(PrimaryDiagnosis) + return DiscoverySchema(donors_by_cohort=primary_diagnoses) + + +@discovery_router.get("/treatments/", response=DiscoverySchema) +def discover_treatments(request): + treatments = count_donors(Treatment) + return DiscoverySchema(donors_by_cohort=treatments) + + +@discovery_router.get("/chemotherapies/", response=DiscoverySchema) +def discover_chemotherapies(request): + chemotherapies = count_donors(Chemotherapy) + return DiscoverySchema(donors_by_cohort=chemotherapies) + + +@discovery_router.get("/hormone_therapies/", response=DiscoverySchema) +def discover_hormone_therapies(request): + hormone_therapies = count_donors(HormoneTherapy) + return DiscoverySchema(donors_by_cohort=hormone_therapies) + + +@discovery_router.get("/radiations/", response=DiscoverySchema) +def discover_radiations(request): + radiations = count_donors(Radiation) + return DiscoverySchema(donors_by_cohort=radiations) + + +@discovery_router.get("/immunotherapies/", response=DiscoverySchema) +def discover_immunotherapies(request): + immunotherapies = count_donors(Immunotherapy) + return DiscoverySchema(donors_by_cohort=immunotherapies) + + +@discovery_router.get("/surgeries/", response=DiscoverySchema) +def discover_surgeries(request): + surgeries = count_donors(Surgery) + return DiscoverySchema(donors_by_cohort=surgeries) + + +@discovery_router.get("/follow_ups/", response=DiscoverySchema) +def discover_follow_ups(request): + follow_ups = count_donors(FollowUp) + return DiscoverySchema(donors_by_cohort=follow_ups) + + +@discovery_router.get("/biomarkers/", response=DiscoverySchema) +def discover_biomarkers(request): + biomarkers = count_donors(Biomarker) + return DiscoverySchema(donors_by_cohort=biomarkers) + + +@discovery_router.get("/comorbidities/", response=DiscoverySchema) +def discover_comorbidities(request): + comorbidities = count_donors(Comorbidity) + return DiscoverySchema(donors_by_cohort=comorbidities) + + +@discovery_router.get("/exposures/", response=DiscoverySchema) +def discover_exposures(request): + exposures = count_donors(Exposure) + return DiscoverySchema(donors_by_cohort=exposures) + + +############################################### +# # +# OVERVIEW API # +# # +############################################### +@discovery_router.get("/sidebar_list/", response=Dict[str, Any]) +def discover_sidebar_list(request): + """ + Retrieve the list of available values for all fields (including for + datasets that the user is not authorized to view) + """ + # Drugs queryable for chemotherapy + chemotherapy_drug_names = list( + Chemotherapy.objects.exclude(drug_name__isnull=True) + .values_list("drug_name", flat=True) + .order_by("drug_name") + .distinct() + ) + # Drugs queryable for immunotherapy + immunotherapy_drug_names = list( + Immunotherapy.objects.exclude(drug_name__isnull=True) + .values_list("drug_name", flat=True) + .order_by("drug_name") + .distinct() + ) + + # Drugs queryable for hormone therapy + hormone_therapy_drug_names = list( + HormoneTherapy.objects.exclude(drug_name__isnull=True) + .values_list("drug_name", flat=True) + .order_by("drug_name") + .distinct() + ) + + # Create a dictionary of results + results = { + "treatment_types": TREATMENT_TYPE, + "tumour_primary_sites": PRIMARY_SITE, + "chemotherapy_drug_names": chemotherapy_drug_names, + "immunotherapy_drug_names": immunotherapy_drug_names, + "hormone_therapy_drug_names": hormone_therapy_drug_names, + } + + return results + + +@overview_router.get("/cohort_count/", response=Dict[str, int]) +def discover_cohort_count(request): + """ + Return the number of cohorts in the database. + """ + return {"cohort_count": Program.objects.count()} + + +@overview_router.get("/patients_per_cohort/", response=Dict[str, int]) +def discover_patients_per_cohort(request): + """ + Return the number of patients per cohort in the database. + """ + cohorts = Donor.objects.values_list("program_id", flat=True) + return count_terms(cohorts) + + +@overview_router.get("/individual_count/", response=Dict[str, int]) +def discover_individual_count(request): + """ + Return the number of individuals in the database. + """ + + return {"individual_count": Donor.objects.count()} + + +@overview_router.get("/gender_count/", response=Dict[str, int]) +def discover_gender_count(request): + """ + Return the count for every gender in the database. + """ + genders = Donor.objects.values_list("gender", flat=True) + return count_terms(genders) + + +@overview_router.get("/cancer_type_count/", response=Dict[str, int]) +def discover_cancer_type_count(request): + """ + Return the count for every cancer type in the database. + """ + cancer_types = list(Donor.objects.values_list("primary_site", flat=True)) + + # Handle missing values as empty arrays + for i in range(len(cancer_types)): + if cancer_types[i] is None: + cancer_types[i] = [None] + + return count_terms(cancer_types) + + +@overview_router.get("/treatment_type_count/", response=Dict[str, int]) +def discover_treatment_type_count(request): + """ + Return the count for every treatment type in the database. + """ + treatment_types = list(Treatment.objects.values_list("treatment_type", flat=True)) + + # Handle missing values as empty arrays + for i in range(len(treatment_types)): + if treatment_types[i] is None: + treatment_types[i] = [None] + + return count_terms(treatment_types) + + +@overview_router.get("/diagnosis_age_count/", response=Dict[str, int]) +def discover_diagnosis_age_count(request): + """ + Return the count for age of diagnosis in the database. + If there are multiple date_of_diagnosis, get the earliest + """ + # Find the earliest diagnosis date per donor + diagnosis_dates = PrimaryDiagnosis.objects.values( + "submitter_donor_id", "date_of_diagnosis" + ) + min_dates = {} + for d_date in diagnosis_dates: + donor = d_date["submitter_donor_id"] + cur_date = ( + datetime.strptime(d_date["date_of_diagnosis"], "%Y-%m").date() + if d_date["date_of_diagnosis"] is not None + else date.max + ) + if donor not in min_dates.keys(): + min_dates[donor] = cur_date + else: + if cur_date < min_dates[donor]: + min_dates[donor] = cur_date + + # Calculate donor's age of diagnosis + birth_dates = Donor.objects.values("submitter_donor_id", "date_of_birth") + birth_dates = { + date["submitter_donor_id"]: date["date_of_birth"] for date in birth_dates + } + ages = {} + for donor, diagnosis_date in min_dates.items(): + if birth_dates[donor] is not None and diagnosis_date is not date.max: + birth_date = datetime.strptime(birth_dates[donor], "%Y-%m").date() + ages[donor] = (diagnosis_date - birth_date).days // 365.25 + else: + ages[donor] = None + + age_counts = defaultdict(int) + for age in ages.values(): + if age is None: + age_counts["null"] += 1 + elif age <= 19: + age_counts["0-19"] += 1 + elif age <= 29: + age_counts["20-29"] += 1 + elif age <= 39: + age_counts["30-39"] += 1 + elif age <= 49: + age_counts["40-49"] += 1 + elif age <= 59: + age_counts["50-59"] += 1 + elif age <= 69: + age_counts["60-69"] += 1 + elif age <= 79: + age_counts["70-79"] += 1 + else: + age_counts["80+"] += 1 + + return age_counts diff --git a/chord_metadata_service/mohpackets/apis/ingestion.py b/chord_metadata_service/mohpackets/apis/ingestion.py new file mode 100644 index 000000000..b8777121f --- /dev/null +++ b/chord_metadata_service/mohpackets/apis/ingestion.py @@ -0,0 +1,150 @@ +from http import HTTPStatus +from typing import Type + +from django.http import HttpResponse, JsonResponse +from ninja import Router + +from chord_metadata_service.mohpackets.models import ( + Biomarker, + Chemotherapy, + Comorbidity, + Donor, + Exposure, + FollowUp, + HormoneTherapy, + Immunotherapy, + PrimaryDiagnosis, + Program, + Radiation, + SampleRegistration, + Specimen, + Surgery, + Treatment, +) +from chord_metadata_service.mohpackets.schemas.ingestion import ( + BiomarkerIngestSchema, + ChemotherapyIngestSchema, + ComorbidityIngestSchema, + DonorIngestSchema, + ExposureIngestSchema, + FollowUpIngestSchema, + HormoneTherapyIngestSchema, + ImmunotherapyIngestSchema, + PrimaryDiagnosisIngestSchema, + RadiationIngestSchema, + SampleRegistrationIngestSchema, + SpecimenIngestSchema, + SurgeryIngestSchema, + TreatmentIngestSchema, +) +from chord_metadata_service.mohpackets.schemas.model import ProgramModelSchema + +""" +Module with create APIs for clinical data. +These APIs require admin authorization + +Author: Son Chau +""" + +router = Router() + + +def create_instance(payload, model_cls: Type): + try: + instance = model_cls.objects.create(**payload.dict()) + except Exception as e: + return JsonResponse( + status=HTTPStatus.BAD_REQUEST, + data={"error": str(e)}, + ) + return JsonResponse( + status=HTTPStatus.CREATED, + data={"created": str(instance)}, + ) + + +@router.post("/program/") +def create_program(request, payload: ProgramModelSchema, response: HttpResponse): + return create_instance(payload, Program) + + +@router.post("/donor/") +def create_donor(request, payload: DonorIngestSchema, response: HttpResponse): + return create_instance(payload, Donor) + + +@router.post("/biomarker/") +def create_biomarker(request, payload: BiomarkerIngestSchema, response: HttpResponse): + return create_instance(payload, Biomarker) + + +@router.post("/chemotherapy/") +def create_chemotherapy( + request, payload: ChemotherapyIngestSchema, response: HttpResponse +): + return create_instance(payload, Chemotherapy) + + +@router.post("/comorbidity/") +def create_comorbidity( + request, payload: ComorbidityIngestSchema, response: HttpResponse +): + return create_instance(payload, Comorbidity) + + +@router.post("/exposure/") +def create_exposure(request, payload: ExposureIngestSchema, response: HttpResponse): + return create_instance(payload, Exposure) + + +@router.post("/follow_up/") +def create_follow_up(request, payload: FollowUpIngestSchema, response: HttpResponse): + return create_instance(payload, FollowUp) + + +@router.post("/hormone_therapy/") +def create_hormone_therapy( + request, payload: HormoneTherapyIngestSchema, response: HttpResponse +): + return create_instance(payload, HormoneTherapy) + + +@router.post("/immunotherapy/") +def create_immunotherapy( + request, payload: ImmunotherapyIngestSchema, response: HttpResponse +): + return create_instance(payload, Immunotherapy) + + +@router.post("/primary_diagnosis/") +def create_primary_diagnosis( + request, payload: PrimaryDiagnosisIngestSchema, response: HttpResponse +): + return create_instance(payload, PrimaryDiagnosis) + + +@router.post("/radiation/") +def create_radiation(request, payload: RadiationIngestSchema, response: HttpResponse): + return create_instance(payload, Radiation) + + +@router.post("/sample_registration/") +def create_sample_registration( + request, payload: SampleRegistrationIngestSchema, response: HttpResponse +): + return create_instance(payload, SampleRegistration) + + +@router.post("/specimen/") +def create_specimen(request, payload: SpecimenIngestSchema, response: HttpResponse): + return create_instance(payload, Specimen) + + +@router.post("/surgery/") +def create_surgery(request, payload: SurgeryIngestSchema, response: HttpResponse): + return create_instance(payload, Surgery) + + +@router.post("/treatment/") +def create_treatment(request, payload: TreatmentIngestSchema, response: HttpResponse): + return create_instance(payload, Treatment) diff --git a/chord_metadata_service/mohpackets/apps.py b/chord_metadata_service/mohpackets/apps.py index 79ff8d0f4..0bdf34a78 100644 --- a/chord_metadata_service/mohpackets/apps.py +++ b/chord_metadata_service/mohpackets/apps.py @@ -4,3 +4,6 @@ class MohpacketsConfig(AppConfig): default_auto_field = "django.db.models.BigAutoField" name = "chord_metadata_service.mohpackets" + + def ready(self): + from . import signals # noqa: F401 diff --git a/chord_metadata_service/mohpackets/authentication.py b/chord_metadata_service/mohpackets/authentication.py deleted file mode 100644 index c37bae028..000000000 --- a/chord_metadata_service/mohpackets/authentication.py +++ /dev/null @@ -1,71 +0,0 @@ -import logging - -from authx.auth import get_opa_datasets -from django.conf import settings -from drf_spectacular.extensions import OpenApiAuthenticationExtension -from drf_spectacular.plumbing import build_bearer_security_scheme_object -from rest_framework.authentication import BaseAuthentication, get_authorization_header -from rest_framework.exceptions import AuthenticationFailed - -logger = logging.getLogger(__name__) - - -class TokenAuthentication(BaseAuthentication): - def authenticate(self, request): - auth = get_authorization_header(request).split() - if not auth: - raise AuthenticationFailed("Authorization required") - else: - opa_secret = settings.CANDIG_OPA_SECRET - try: - authorized_datasets = get_opa_datasets(request, admin_secret=opa_secret) - # add dataset to request - logger.debug(f"User is authorized to access {authorized_datasets}") - request.authorized_datasets = authorized_datasets - - except Exception as e: - logger.exception( - f"An error occurred in OPA get_authorized_datasets: {e}" - ) - raise AuthenticationFailed("Error retrieving datasets from OPA.") - - -class LocalAuthentication(BaseAuthentication): - def authenticate(self, request): - auth = get_authorization_header(request).split() - if not auth: - raise AuthenticationFailed("Authorization required") - token = auth[1].decode("utf-8") - # get authorized datasets from local settings - authorized_datasets = [ - dataset - for d in settings.LOCAL_AUTHORIZED_DATASET - if d["token"] == token - for dataset in d["datasets"] - ] - - request.authorized_datasets = authorized_datasets - - -class TokenScheme(OpenApiAuthenticationExtension): - target_class = TokenAuthentication - name = "tokenAuth" - match_subclasses = True - priority = -1 - - def get_security_definition(self, auto_schema): - return build_bearer_security_scheme_object( - header_name="Authorization", - token_prefix="Bearer", - ) - - -class LocalAuthScheme(OpenApiAuthenticationExtension): - target_class = LocalAuthentication - name = "localAuth" - - def get_security_definition(self, auto_schema): - return build_bearer_security_scheme_object( - header_name="Authorization", - token_prefix="Bearer", - ) diff --git a/chord_metadata_service/mohpackets/data/README.md b/chord_metadata_service/mohpackets/data/README.md index 3f9960e8b..40f329626 100644 --- a/chord_metadata_service/mohpackets/data/README.md +++ b/chord_metadata_service/mohpackets/data/README.md @@ -5,30 +5,16 @@ This folder contains the necessary tools to generate synthetic data. Each datase - `mockaroo_schemas`: contains the blueprints needed to generate data using the Mockaroo service. - `no_relationships_data`: generated from mockaroo that doesn't include any relationships. - `synthetic_data`: assigned relationships data, can be used for ingest APIs. -- `fixtures`: Django fixtures, can be used to load directly into the database without ingest APIs. -## Create Fixtures - -Run the following command and choose the dataset you want to generate fixtures for: +## To load data ```python -python chord_metadata_service/mohpackets/data/convert.py +python chord_metadata_service/mohpackets/data/data_loader.py ``` -## Load Fixtures - -Run the following commands (change the `fixtures_path` to small_dataset, medium_dataset, or large_dataset): - -```bash -fixtures_path="chord_metadata_service/mohpackets/data/{fixtures_path}/fixtures" -python manage.py loaddata $fixtures_path/fixtures.json -v 3 -``` +## To clean up data -## Clean up data - -To start again, use: - -```bash +```python python manage.py flush ``` @@ -41,6 +27,6 @@ If you want to modify the mock data to your preferences, you can follow these st 3. Make changes 4. Download the data as a JSON file, and put it in `no_relationships_data` 5. Modify `relationships.json` if needed -6. Run `convert.py` to generate the final data +6. Run `data_converter.py` to generate the final data *NOTE*: The synthetic data provided here is intended for frontend testing, and the logic is not strictly enforced. For other types of testing purposes, it is recommended to create your own data to ensure accuracy. diff --git a/chord_metadata_service/mohpackets/data/convert.py b/chord_metadata_service/mohpackets/data/data_converter.py similarity index 79% rename from chord_metadata_service/mohpackets/data/convert.py rename to chord_metadata_service/mohpackets/data/data_converter.py index 1f14f9a46..e3d1afee7 100644 --- a/chord_metadata_service/mohpackets/data/convert.py +++ b/chord_metadata_service/mohpackets/data/data_converter.py @@ -20,45 +20,6 @@ } -def convert_to_fixtures(path): - """ - Convert synthetic data to Django fixtures. - The data should been assigned foreign keys already. - """ - print("Step 2: Convert to Fixtures:\n") - # Get the absolute path to the synthetic data folder - script_dir = os.path.dirname(__file__) - synthetic_data_folder = os.path.join(script_dir, f"{path}/synthetic_data") - fixtures_folder = os.path.join(script_dir, f"{path}/fixtures") - - # Create the fixtures folder if it doesn't already exist - os.makedirs(fixtures_folder, exist_ok=True) - - # Get all the JSON file names in ingest order - json_file_names = list(MODEL_NAME_MAPPING.values()) - - fixtures = [] - - # Convert each JSON file to a Django fixture - for json_file_name in json_file_names: - print(f"Processing {json_file_name}...") - model_name = json_file_name.split(".")[0].lower() - - with open(os.path.join(synthetic_data_folder, json_file_name)) as json_file: - raw_data = json.load(json_file) - - for data_item in raw_data: - fixture = {"model": "mohpackets." + model_name, "fields": data_item} - fixtures.append(fixture) - - with open(os.path.join(fixtures_folder, "fixtures.json"), "w") as fixtures_file: - json.dump(fixtures, fixtures_file, indent=4) - - print( - "\nSuccess! Converted files to fixtures completed and saved to folder fixtures.\n" - ) - - def set_foreign_keys(path): """ Set foreign keys for synthetic data. @@ -203,7 +164,6 @@ def main(): return set_foreign_keys(path) - convert_to_fixtures(path) if __name__ == "__main__": diff --git a/chord_metadata_service/mohpackets/data/data_loader.py b/chord_metadata_service/mohpackets/data/data_loader.py new file mode 100644 index 000000000..0b6f7ddd4 --- /dev/null +++ b/chord_metadata_service/mohpackets/data/data_loader.py @@ -0,0 +1,119 @@ +import json +import os +import sys +from collections import OrderedDict + +import django +from django.db import transaction + +# Add your Django project's root directory to the Python path +sys.path.append( + os.path.abspath(os.path.join(os.path.dirname(__file__), "../../..")) +) # This assumes your script is in the data directory + +# Set the DJANGO_SETTINGS_MODULE to your project's settings module +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.local") +# Initialize Django +django.setup() +from chord_metadata_service.mohpackets.models import ( # noqa: E402 + Biomarker, + Chemotherapy, + Comorbidity, + Donor, + Exposure, + FollowUp, + HormoneTherapy, + Immunotherapy, + PrimaryDiagnosis, + Program, + Radiation, + SampleRegistration, + Specimen, + Surgery, + Treatment, +) + + +def ingest_data(path): + try: + from tqdm import tqdm + except ImportError: + raise ImportError( + "tqdm is not installed. This function is not designed to use in production'." + ) + + script_dir = os.path.dirname(__file__) + synthetic_data_folder = os.path.join(script_dir, f"{path}/synthetic_data") + file_mapping = OrderedDict( + [ + (Donor, "Donor.json"), + (PrimaryDiagnosis, "PrimaryDiagnosis.json"), + (Specimen, "Specimen.json"), + (SampleRegistration, "SampleRegistration.json"), + (Treatment, "Treatment.json"), + (Chemotherapy, "Chemotherapy.json"), + (HormoneTherapy, "HormoneTherapy.json"), + (Radiation, "Radiation.json"), + (Immunotherapy, "Immunotherapy.json"), + (Surgery, "Surgery.json"), + (FollowUp, "FollowUp.json"), + (Biomarker, "Biomarker.json"), + (Comorbidity, "Comorbidity.json"), + (Exposure, "Exposure.json"), + ] + ) + program_file_path = f"{synthetic_data_folder}/Program.json" + with open(program_file_path, "r") as json_file: + program_data = json.load(json_file) + + # Iterate through the data and create model instances + with transaction.atomic(): + for program in program_data: + program_instance = Program(**program) + program_instance.save() + + for model, filename in file_mapping.items(): + # Read the JSON file + file_path = f"{synthetic_data_folder}/{filename}" + with open(file_path, "r") as json_file: + data = json.load(json_file) + + # Iterate through the data and create model instances + with transaction.atomic(): + for item in tqdm( + data, + desc=f"{filename}", + bar_format="{desc}: {percentage:3.0f}% {n_fmt}/{total_fmt}", + ): + item["program_id_id"] = item.pop("program_id", None) + model_instance = model(**item) + model_instance.save() + + +def main(): + print("Select an option:") + print("1. Load small dataset") + print("2. Load medium dataset") + print("3. Load large dataset") + print("4. Exit") + + choice = int(input("Enter your choice [1-4]: ")) + + if choice == 1: + path = "small_dataset" + elif choice == 2: + path = "medium_dataset" + elif choice == 3: + path = "large_dataset" + elif choice == 4: + print("Exiting...") + exit() + else: + print("Invalid option. Please try again.") + return + + ingest_data(path) + + +if __name__ == "__main__": + main() diff --git a/chord_metadata_service/mohpackets/docs/README.MD b/chord_metadata_service/mohpackets/docs/README.MD index 9431bef6c..7cacbcb2f 100644 --- a/chord_metadata_service/mohpackets/docs/README.MD +++ b/chord_metadata_service/mohpackets/docs/README.MD @@ -4,18 +4,18 @@ This folder contains the schema and documentation for **MoH models** ## Katsu API Documentation -To view the API documentation, simply open [openapi.md](openapi.md) or [Redoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/CanDIG/katsu/develop/chord_metadata_service/mohpackets/docs/schema.yml). +To view the API documentation, simply open [openapi.md](openapi.md) or [Redoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/CanDIG/katsu/develop/chord_metadata_service/mohpackets/docs/schema.json). -To generate the `schema.yml` file, run the following command: +To generate the `schema.json` file, run the following command: ```bash -python manage.py spectacular --file ./chord_metadata_service/mohpackets/docs/schema.yml --validate --fail-on-warn +python manage.py export_openapi_schema --api chord_metadata_service.mohpackets.apis.core.api | python -m json.tool > chord_metadata_service/mohpackets/docs/schema.json ``` To generate the `openapi.md` file, install [widdershins](https://github.com/Mermade/widdershins) and then run the following command: ```bash -widdershins ./chord_metadata_service/mohpackets/docs/schema.yml -o ./chord_metadata_service/mohpackets/docs/openapi.md -u ./chord_metadata_service/mohpackets/docs/widdershins/templates/openapi3 -c true --omitHeader true +widdershins ./chord_metadata_service/mohpackets/docs/schema.json -o ./chord_metadata_service/mohpackets/docs/openapi.md -u ./chord_metadata_service/mohpackets/docs/widdershins/templates/openapi3 -c true --omitHeader true ``` This will create the openapi.md file with the updated documentation. @@ -34,3 +34,8 @@ To update the markdown file ```bash python make_er_diagram.py ``` + +``` + + +``` \ No newline at end of file diff --git a/chord_metadata_service/mohpackets/docs/openapi.md b/chord_metadata_service/mohpackets/docs/openapi.md deleted file mode 100644 index f8849d850..000000000 --- a/chord_metadata_service/mohpackets/docs/openapi.md +++ /dev/null @@ -1,11529 +0,0 @@ - -

MoH Service API v2.3.0

- -This is the RESTful API for the MoH Service. - -# Authentication - -- HTTP Authentication, scheme: bearer - -

authorized

- -## authorized_biomarkers_list - - - -`GET /v2/authorized/biomarkers/` - -Retrieves a list of authorized biomarkers. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_specimen_id|query|string|false|none| -|submitter_primary_diagnosis_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|submitter_follow_up_id|query|string|false|none| -|test_date|query|string|false|none| -|psa_level|query|integer|false|none| -|ca125|query|integer|false|none| -|cea|query|integer|false|none| -|er_status|query|string|false|none| -|er_percent_positive|query|number(float)|false|none| -|pr_status|query|string|false|none| -|pr_percent_positive|query|number(float)|false|none| -|her2_ihc_status|query|string|false|none| -|her2_ish_status|query|string|false|none| -|hpv_ihc_status|query|string|false|none| -|hpv_pcr_status|query|string|false|none| -|hpv_strain|query|string|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "er_status": "Cannot be determined", - "pr_status": "Cannot be determined", - "her2_ihc_status": "Cannot be determined", - "her2_ish_status": "Cannot be determined", - "hpv_ihc_status": "Cannot be determined", - "hpv_pcr_status": "Cannot be determined", - "hpv_strain": [ - "HPV16" - ], - "submitter_specimen_id": "string", - "submitter_primary_diagnosis_id": "string", - "submitter_treatment_id": "string", - "submitter_follow_up_id": "string", - "test_date": "string", - "psa_level": 32767, - "ca125": 32767, - "cea": 32767, - "er_percent_positive": 0, - "pr_percent_positive": 0, - "program_id": "string", - "submitter_donor_id": "string" - } - ] -} -``` - -## authorized_chemotherapies_list - - - -`GET /v2/authorized/chemotherapies/` - -Retrieves a list of authorized chemotherapies. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|drug_reference_database|query|string|false|none| -|drug_name|query|string|false|none| -|drug_reference_identifier|query|string|false|none| -|chemotherapy_drug_dose_units|query|string|false|none| -|prescribed_cumulative_drug_dose|query|integer|false|none| -|actual_cumulative_drug_dose|query|integer|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "chemotherapy_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" - } - ] -} -``` - -## authorized_comorbidities_list - - - -`GET /v2/authorized/comorbidities/` - -Retrieves a list of authorized comorbidities. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|prior_malignancy|query|string|false|none| -|laterality_of_prior_malignancy|query|string|false|none| -|age_at_comorbidity_diagnosis|query|integer|false|none| -|comorbidity_type_code|query|string|false|none| -|comorbidity_treatment_status|query|string|false|none| -|comorbidity_treatment|query|string|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "prior_malignancy": "Yes", - "laterality_of_prior_malignancy": "Bilateral", - "comorbidity_type_code": "string", - "comorbidity_treatment_status": "Yes", - "comorbidity_treatment": "string", - "age_at_comorbidity_diagnosis": 32767, - "program_id": "string", - "submitter_donor_id": "string" - } - ] -} -``` - -## authorized_donor_with_clinical_data_list - - - -`GET /v2/authorized/donor_with_clinical_data/` - -Retrieves a list of authorized Donor with clinical data. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|submitter_donor_id|query|string|false|none| -|program_id|query|string|false|none| -|gender|query|string|false|none| -|sex_at_birth|query|string|false|none| -|is_deceased|query|boolean|false|none| -|lost_to_followup_after_clinical_event_identifier|query|string|false|none| -|lost_to_followup_reason|query|string|false|none| -|date_alive_after_lost_to_followup|query|string|false|none| -|cause_of_death|query|string|false|none| -|date_of_birth|query|string|false|none| -|date_of_death|query|string|false|none| -|primary_site|query|string|false|none| -|age|query|number|false|none| -|max_age|query|number|false|none| -|min_age|query|number|false|none| -|donors|query|string|false|none| -|primary_diagnosis|query|string|false|none| -|speciman|query|string|false|none| -|treatment|query|string|false|none| -|chemotherapy|query|string|false|none| -|hormone_therapy|query|string|false|none| -|radiation|query|string|false|none| -|immunotherapy|query|string|false|none| -|surgery|query|string|false|none| -|follow_up|query|string|false|none| -|biomarker|query|string|false|none| -|comorbidity|query|string|false|none| -|exposure|query|string|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_donor_id": "string", - "program_id": "string", - "lost_to_followup_after_clinical_event_identifier": "string", - "lost_to_followup_reason": "Completed study", - "date_alive_after_lost_to_followup": "string", - "is_deceased": true, - "cause_of_death": "Died of cancer", - "date_of_birth": "string", - "date_of_death": "string", - "gender": "Man", - "sex_at_birth": "Male", - "primary_site": [ - "Accessory sinuses" - ], - "primary_diagnoses": [ - { - "submitter_primary_diagnosis_id": "string", - "date_of_diagnosis": "string", - "cancer_type_code": "string", - "basis_of_diagnosis": "Clinical investigation", - "lymph_nodes_examined_status": "Cannot be determined", - "lymph_nodes_examined_method": "Imaging", - "number_lymph_nodes_positive": 32767, - "clinical_tumour_staging_system": "AJCC 8th edition", - "clinical_t_category": "T0", - "clinical_n_category": "N0", - "clinical_m_category": "M0", - "clinical_stage_group": "Stage 0", - "laterality": "Bilateral", - "specimens": [ - { - "submitter_specimen_id": "string", - "pathological_tumour_staging_system": "AJCC 8th edition", - "pathological_t_category": "T0", - "pathological_n_category": "N0", - "pathological_m_category": "M0", - "pathological_stage_group": "Stage 0", - "specimen_collection_date": "string", - "specimen_storage": "Cut slide", - "tumour_histological_type": "string", - "specimen_anatomic_location": "string", - "reference_pathology_confirmed_diagnosis": "Yes", - "reference_pathology_confirmed_tumour_presence": "Yes", - "tumour_grading_system": "FNCLCC grading system", - "tumour_grade": "Low grade", - "percent_tumour_cells_range": "0-19%", - "percent_tumour_cells_measurement_method": "Genomics", - "specimen_processing": "Cryopreservation in liquid nitrogen (dead tissue)", - "specimen_laterality": "Left", - "sample_registrations": [ - { - "submitter_sample_id": "string", - "specimen_tissue_source": "Abdominal fluid", - "tumour_normal_designation": "Normal", - "specimen_type": "Cell line - derived from normal", - "sample_type": "Amplified DNA" - } - ] - } - ], - "treatments": [ - { - "submitter_treatment_id": "string", - "is_primary_treatment": "Yes", - "treatment_start_date": "string", - "treatment_end_date": "string", - "treatment_setting": "Adjuvant", - "treatment_intent": "Curative", - "days_per_cycle": 32767, - "number_of_cycles": 32767, - "line_of_treatment": -2147483648, - "status_of_treatment": "Treatment completed as prescribed", - "treatment_type": [ - "Bone marrow transplant" - ], - "response_to_treatment_criteria_method": "RECIST 1.1", - "response_to_treatment": "Complete response", - "chemotherapies": [ - { - "chemotherapy_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "hormone_therapies": [ - { - "hormone_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "immunotherapies": [ - { - "immunotherapy_type": "Cell-based", - "drug_reference_database": "RxNorm", - "immunotherapy_drug_dose_units": "mg/m2", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "radiations": [ - { - "radiation_therapy_modality": "Megavoltage radiation therapy using photons (procedure)", - "radiation_therapy_type": "External", - "anatomical_site_irradiated": "Left Abdomen", - "radiation_therapy_fractions": 32767, - "radiation_therapy_dosage": 32767, - "radiation_boost": true, - "reference_radiation_treatment_id": "string" - } - ], - "surgeries": [ - { - "surgery_type": "Ablation", - "surgery_site": "string", - "surgery_location": "Local recurrence", - "tumour_focality": "Cannot be assessed", - "residual_tumour_classification": "Not applicable", - "margin_types_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_assessed": [ - "Circumferential resection margin" - ], - "lymphovascular_invasion": "Absent", - "perineural_invasion": "Absent", - "submitter_specimen_id": "string", - "tumour_length": 32767, - "tumour_width": 32767, - "greatest_dimension_tumour": 32767 - } - ], - "followups": [ - { - "submitter_follow_up_id": "string", - "date_of_followup": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0" - } - ] - } - ], - "followups": [ - { - "submitter_follow_up_id": "string", - "date_of_followup": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0" - } - ] - } - ], - "comorbidities": [ - { - "prior_malignancy": "Yes", - "laterality_of_prior_malignancy": "Bilateral", - "comorbidity_type_code": "string", - "comorbidity_treatment_status": "Yes", - "comorbidity_treatment": "string", - "age_at_comorbidity_diagnosis": 32767 - } - ], - "exposures": [ - { - "tobacco_smoking_status": "Current reformed smoker for <= 15 years", - "tobacco_type": [ - "Chewing Tobacco" - ], - "pack_years_smoked": 0 - } - ], - "biomarkers": [ - { - "er_status": "Cannot be determined", - "pr_status": "Cannot be determined", - "her2_ihc_status": "Cannot be determined", - "her2_ish_status": "Cannot be determined", - "hpv_ihc_status": "Cannot be determined", - "hpv_pcr_status": "Cannot be determined", - "hpv_strain": [ - "HPV16" - ], - "submitter_specimen_id": "string", - "submitter_primary_diagnosis_id": "string", - "submitter_treatment_id": "string", - "submitter_follow_up_id": "string", - "test_date": "string", - "psa_level": 32767, - "ca125": 32767, - "cea": 32767, - "er_percent_positive": 0, - "pr_percent_positive": 0 - } - ], - "followups": [ - { - "submitter_follow_up_id": "string", - "date_of_followup": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0" - } - ] - } - ] -} -``` - -## authorized_donors_list - - - -`GET /v2/authorized/donors/` - -Retrieves a list of authorized donors. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|submitter_donor_id|query|string|false|none| -|program_id|query|string|false|none| -|gender|query|string|false|none| -|sex_at_birth|query|string|false|none| -|is_deceased|query|boolean|false|none| -|lost_to_followup_after_clinical_event_identifier|query|string|false|none| -|lost_to_followup_reason|query|string|false|none| -|date_alive_after_lost_to_followup|query|string|false|none| -|cause_of_death|query|string|false|none| -|date_of_birth|query|string|false|none| -|date_of_death|query|string|false|none| -|primary_site|query|string|false|none| -|age|query|number|false|none| -|max_age|query|number|false|none| -|min_age|query|number|false|none| -|donors|query|string|false|none| -|primary_diagnosis|query|string|false|none| -|speciman|query|string|false|none| -|treatment|query|string|false|none| -|chemotherapy|query|string|false|none| -|hormone_therapy|query|string|false|none| -|radiation|query|string|false|none| -|immunotherapy|query|string|false|none| -|surgery|query|string|false|none| -|follow_up|query|string|false|none| -|biomarker|query|string|false|none| -|comorbidity|query|string|false|none| -|exposure|query|string|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_donor_id": "string", - "cause_of_death": "Died of cancer", - "date_of_birth": "string", - "date_of_death": "string", - "primary_site": [ - "Accessory sinuses" - ], - "gender": "Man", - "sex_at_birth": "Male", - "lost_to_followup_reason": "Completed study", - "date_alive_after_lost_to_followup": "string", - "is_deceased": true, - "lost_to_followup_after_clinical_event_identifier": "string", - "program_id": "string" - } - ] -} -``` - -## authorized_exposures_list - - - -`GET /v2/authorized/exposures/` - -Retrieves a list of authorized exposures. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|tobacco_smoking_status|query|string|false|none| -|tobacco_type|query|string|false|none| -|pack_years_smoked|query|number(float)|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "tobacco_smoking_status": "Current reformed smoker for <= 15 years", - "tobacco_type": [ - "Chewing Tobacco" - ], - "pack_years_smoked": 0, - "program_id": "string", - "submitter_donor_id": "string" - } - ] -} -``` - -## authorized_follow_ups_list - - - -`GET /v2/authorized/follow_ups/` - -Retrieves a list of authorized follow ups. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|submitter_follow_up_id|query|string|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_primary_diagnosis_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|date_of_followup|query|string|false|none| -|disease_status_at_followup|query|string|false|none| -|relapse_type|query|string|false|none| -|date_of_relapse|query|string|false|none| -|method_of_progression_status|query|string|false|none| -|anatomic_site_progression_or_recurrence|query|string|false|none| -|recurrence_tumour_staging_system|query|string|false|none| -|recurrence_t_category|query|string|false|none| -|recurrence_n_category|query|string|false|none| -|recurrence_m_category|query|string|false|none| -|recurrence_stage_group|query|string|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_follow_up_id": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0", - "date_of_followup": "string", - "program_id": "string", - "submitter_donor_id": "string", - "submitter_primary_diagnosis_id": "string", - "submitter_treatment_id": "string" - } - ] -} -``` - -## authorized_hormone_therapies_list - - - -`GET /v2/authorized/hormone_therapies/` - -Retrieves a list of authorized hormone therapies. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|drug_reference_database|query|string|false|none| -|drug_name|query|string|false|none| -|drug_reference_identifier|query|string|false|none| -|hormone_drug_dose_units|query|string|false|none| -|prescribed_cumulative_drug_dose|query|integer|false|none| -|actual_cumulative_drug_dose|query|integer|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "hormone_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" - } - ] -} -``` - -## authorized_immunotherapies_list - - - -`GET /v2/authorized/immunotherapies/` - -Retrieves a list of authorized immuno therapies. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|drug_reference_database|query|string|false|none| -|immunotherapy_type|query|string|false|none| -|drug_name|query|string|false|none| -|drug_reference_identifier|query|string|false|none| -|immunotherapy_drug_dose_units|query|string|false|none| -|prescribed_cumulative_drug_dose|query|integer|false|none| -|actual_cumulative_drug_dose|query|integer|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "immunotherapy_type": "Cell-based", - "drug_reference_database": "RxNorm", - "immunotherapy_drug_dose_units": "mg/m2", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" - } - ] -} -``` - -## authorized_primary_diagnoses_list - - - -`GET /v2/authorized/primary_diagnoses/` - -Retrieves a list of authorized primary diagnosises. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|submitter_primary_diagnosis_id|query|string|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|date_of_diagnosis|query|string|false|none| -|cancer_type_code|query|string|false|none| -|basis_of_diagnosis|query|string|false|none| -|laterality|query|string|false|none| -|lymph_nodes_examined_status|query|string|false|none| -|lymph_nodes_examined_method|query|string|false|none| -|number_lymph_nodes_positive|query|integer|false|none| -|clinical_tumour_staging_system|query|string|false|none| -|clinical_t_category|query|string|false|none| -|clinical_n_category|query|string|false|none| -|clinical_m_category|query|string|false|none| -|clinical_stage_group|query|string|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_primary_diagnosis_id": "string", - "date_of_diagnosis": "string", - "basis_of_diagnosis": "Clinical investigation", - "lymph_nodes_examined_status": "Cannot be determined", - "lymph_nodes_examined_method": "Imaging", - "clinical_tumour_staging_system": "AJCC 8th edition", - "clinical_t_category": "T0", - "clinical_n_category": "N0", - "clinical_m_category": "M0", - "clinical_stage_group": "Stage 0", - "laterality": "Bilateral", - "cancer_type_code": "string", - "number_lymph_nodes_positive": 32767, - "program_id": "string", - "submitter_donor_id": "string" - } - ] -} -``` - -## authorized_programs_list - - - -`GET /v2/authorized/programs/` - -This mixin should be used for viewsets that need to restrict access. - -The authentication classes are set based on the `DJANGO_SETTINGS_MODULE`. -If the env is "dev" or "prod", the `TokenAuthentication` class is -used. Otherwise, the `LocalAuthentication` class is used. - -Methods -------- -get_queryset() - Returns a filtered queryset that includes only the objects that the user is - authorized to see based on their permissions. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|program_id|query|string|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "program_id": "string", - "metadata": { - "property1": null, - "property2": null - }, - "created": "2019-08-24T14:15:22Z", - "updated": "2019-08-24T14:15:22Z" - } - ] -} -``` - -## authorized_programs_destroy - - - -`DELETE /v2/authorized/programs/{program_id}/` - -Delete a program, must be an admin that can access all programs - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|program_id|path|string|true|A unique value identifying this program.| - -## authorized_radiations_list - - - -`GET /v2/authorized/radiations/` - -Retrieves a list of authorized radiations. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|radiation_therapy_modality|query|string|false|none| -|radiation_therapy_type|query|string|false|none| -|radiation_therapy_fractions|query|integer|false|none| -|radiation_therapy_dosage|query|integer|false|none| -|anatomical_site_irradiated|query|string|false|none| -|radiation_boost|query|boolean|false|none| -|reference_radiation_treatment_id|query|string|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "radiation_therapy_modality": "Megavoltage radiation therapy using photons (procedure)", - "radiation_therapy_type": "External", - "anatomical_site_irradiated": "Left Abdomen", - "radiation_therapy_fractions": 32767, - "radiation_therapy_dosage": 32767, - "radiation_boost": true, - "reference_radiation_treatment_id": "string", - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" - } - ] -} -``` - -## authorized_sample_registrations_list - - - -`GET /v2/authorized/sample_registrations/` - -Retrieves a list of authorized sample registrations. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|submitter_sample_id|query|string|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_specimen_id|query|string|false|none| -|specimen_tissue_source|query|string|false|none| -|tumour_normal_designation|query|string|false|none| -|specimen_type|query|string|false|none| -|sample_type|query|string|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_sample_id": "string", - "specimen_tissue_source": "Abdominal fluid", - "tumour_normal_designation": "Normal", - "specimen_type": "Cell line - derived from normal", - "sample_type": "Amplified DNA", - "program_id": "string", - "submitter_donor_id": "string", - "submitter_specimen_id": "string" - } - ] -} -``` - -## authorized_specimens_list - - - -`GET /v2/authorized/specimens/` - -Retrieves a list of authorized specimens. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|submitter_specimen_id|query|string|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_primary_diagnosis_id|query|string|false|none| -|pathological_tumour_staging_system|query|string|false|none| -|pathological_t_category|query|string|false|none| -|pathological_n_category|query|string|false|none| -|pathological_m_category|query|string|false|none| -|pathological_stage_group|query|string|false|none| -|specimen_collection_date|query|string|false|none| -|specimen_storage|query|string|false|none| -|specimen_processing|query|string|false|none| -|tumour_histological_type|query|string|false|none| -|specimen_anatomic_location|query|string|false|none| -|specimen_laterality|query|string|false|none| -|reference_pathology_confirmed_diagnosis|query|string|false|none| -|reference_pathology_confirmed_tumour_presence|query|string|false|none| -|tumour_grading_system|query|string|false|none| -|tumour_grade|query|string|false|none| -|percent_tumour_cells_range|query|string|false|none| -|percent_tumour_cells_measurement_method|query|string|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_specimen_id": "string", - "pathological_tumour_staging_system": "AJCC 8th edition", - "pathological_t_category": "T0", - "pathological_n_category": "N0", - "pathological_m_category": "M0", - "pathological_stage_group": "Stage 0", - "specimen_collection_date": "string", - "specimen_storage": "Cut slide", - "tumour_histological_type": "string", - "specimen_anatomic_location": "string", - "reference_pathology_confirmed_diagnosis": "Yes", - "reference_pathology_confirmed_tumour_presence": "Yes", - "tumour_grading_system": "FNCLCC grading system", - "tumour_grade": "Low grade", - "percent_tumour_cells_range": "0-19%", - "percent_tumour_cells_measurement_method": "Genomics", - "specimen_processing": "Cryopreservation in liquid nitrogen (dead tissue)", - "specimen_laterality": "Left", - "program_id": "string", - "submitter_donor_id": "string", - "submitter_primary_diagnosis_id": "string" - } - ] -} -``` - -## authorized_surgeries_list - - - -`GET /v2/authorized/surgeries/` - -Retrieves a list of authorized surgeries. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|submitter_specimen_id|query|string|false|none| -|surgery_type|query|string|false|none| -|surgery_site|query|string|false|none| -|surgery_location|query|string|false|none| -|tumour_length|query|integer|false|none| -|tumour_width|query|integer|false|none| -|greatest_dimension_tumour|query|integer|false|none| -|tumour_focality|query|string|false|none| -|residual_tumour_classification|query|string|false|none| -|margin_types_involved|query|string|false|none| -|margin_types_not_involved|query|string|false|none| -|margin_types_not_assessed|query|string|false|none| -|lymphovascular_invasion|query|string|false|none| -|perineural_invasion|query|string|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "surgery_type": "Ablation", - "surgery_site": "string", - "surgery_location": "Local recurrence", - "tumour_focality": "Cannot be assessed", - "residual_tumour_classification": "Not applicable", - "margin_types_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_assessed": [ - "Circumferential resection margin" - ], - "lymphovascular_invasion": "Absent", - "perineural_invasion": "Absent", - "submitter_specimen_id": "string", - "tumour_length": 32767, - "tumour_width": 32767, - "greatest_dimension_tumour": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" - } - ] -} -``` - -## authorized_treatments_list - - - -`GET /v2/authorized/treatments/` - -Retrieves a list of authorized treatments. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|submitter_treatment_id|query|string|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_primary_diagnosis_id|query|string|false|none| -|treatment_type|query|string|false|none| -|is_primary_treatment|query|string|false|none| -|line_of_treatment|query|integer|false|none| -|treatment_start_date|query|string|false|none| -|treatment_end_date|query|string|false|none| -|treatment_setting|query|string|false|none| -|treatment_intent|query|string|false|none| -|days_per_cycle|query|integer|false|none| -|number_of_cycles|query|integer|false|none| -|response_to_treatment_criteria_method|query|string|false|none| -|response_to_treatment|query|string|false|none| -|status_of_treatment|query|string|false|none| -|page|query|integer|false|A page number within the paginated result set.| -|page_size|query|integer|false|Number of results to return per page.| - -> Example responses - -> 200 Response - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_treatment_id": "string", - "treatment_type": [ - "Bone marrow transplant" - ], - "is_primary_treatment": "Yes", - "treatment_start_date": "string", - "treatment_end_date": "string", - "treatment_setting": "Adjuvant", - "treatment_intent": "Curative", - "response_to_treatment_criteria_method": "RECIST 1.1", - "response_to_treatment": "Complete response", - "status_of_treatment": "Treatment completed as prescribed", - "line_of_treatment": -2147483648, - "days_per_cycle": 32767, - "number_of_cycles": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_primary_diagnosis_id": "string" - } - ] -} -``` - -

discovery

- -## discovery_biomarkers_list - - - -`GET /v2/discovery/biomarkers/` - -Retrieves a number of discovery biomarkers. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_specimen_id|query|string|false|none| -|submitter_primary_diagnosis_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|submitter_follow_up_id|query|string|false|none| -|test_date|query|string|false|none| -|psa_level|query|integer|false|none| -|ca125|query|integer|false|none| -|cea|query|integer|false|none| -|er_status|query|string|false|none| -|er_percent_positive|query|number(float)|false|none| -|pr_status|query|string|false|none| -|pr_percent_positive|query|number(float)|false|none| -|her2_ihc_status|query|string|false|none| -|her2_ish_status|query|string|false|none| -|hpv_ihc_status|query|string|false|none| -|hpv_pcr_status|query|string|false|none| -|hpv_strain|query|string|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -## discovery_chemotherapies_list - - - -`GET /v2/discovery/chemotherapies/` - -Retrieves a number of discovery chemotherapies. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|drug_reference_database|query|string|false|none| -|drug_name|query|string|false|none| -|drug_reference_identifier|query|string|false|none| -|chemotherapy_drug_dose_units|query|string|false|none| -|prescribed_cumulative_drug_dose|query|integer|false|none| -|actual_cumulative_drug_dose|query|integer|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -## discovery_comorbidities_list - - - -`GET /v2/discovery/comorbidities/` - -Retrieves a number of discovery comorbidities. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|prior_malignancy|query|string|false|none| -|laterality_of_prior_malignancy|query|string|false|none| -|age_at_comorbidity_diagnosis|query|integer|false|none| -|comorbidity_type_code|query|string|false|none| -|comorbidity_treatment_status|query|string|false|none| -|comorbidity_treatment|query|string|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -## discovery_donors_list - - - -`GET /v2/discovery/donors/` - -Retrieves a number of discovery donors. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|submitter_donor_id|query|string|false|none| -|program_id|query|string|false|none| -|gender|query|string|false|none| -|sex_at_birth|query|string|false|none| -|is_deceased|query|boolean|false|none| -|lost_to_followup_after_clinical_event_identifier|query|string|false|none| -|lost_to_followup_reason|query|string|false|none| -|date_alive_after_lost_to_followup|query|string|false|none| -|cause_of_death|query|string|false|none| -|date_of_birth|query|string|false|none| -|date_of_death|query|string|false|none| -|primary_site|query|string|false|none| -|age|query|number|false|none| -|max_age|query|number|false|none| -|min_age|query|number|false|none| -|donors|query|string|false|none| -|primary_diagnosis|query|string|false|none| -|speciman|query|string|false|none| -|treatment|query|string|false|none| -|chemotherapy|query|string|false|none| -|hormone_therapy|query|string|false|none| -|radiation|query|string|false|none| -|immunotherapy|query|string|false|none| -|surgery|query|string|false|none| -|follow_up|query|string|false|none| -|biomarker|query|string|false|none| -|comorbidity|query|string|false|none| -|exposure|query|string|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -## discovery_exposures_list - - - -`GET /v2/discovery/exposures/` - -Retrieves a number of discovery exposures. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|tobacco_smoking_status|query|string|false|none| -|tobacco_type|query|string|false|none| -|pack_years_smoked|query|number(float)|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -## discovery_follow_ups_list - - - -`GET /v2/discovery/follow_ups/` - -Retrieves a number of discovery follow ups. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|submitter_follow_up_id|query|string|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_primary_diagnosis_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|date_of_followup|query|string|false|none| -|disease_status_at_followup|query|string|false|none| -|relapse_type|query|string|false|none| -|date_of_relapse|query|string|false|none| -|method_of_progression_status|query|string|false|none| -|anatomic_site_progression_or_recurrence|query|string|false|none| -|recurrence_tumour_staging_system|query|string|false|none| -|recurrence_t_category|query|string|false|none| -|recurrence_n_category|query|string|false|none| -|recurrence_m_category|query|string|false|none| -|recurrence_stage_group|query|string|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -## discovery_hormone_therapies_list - - - -`GET /v2/discovery/hormone_therapies/` - -Retrieves a number of discovery hormone therapies. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|drug_reference_database|query|string|false|none| -|drug_name|query|string|false|none| -|drug_reference_identifier|query|string|false|none| -|hormone_drug_dose_units|query|string|false|none| -|prescribed_cumulative_drug_dose|query|integer|false|none| -|actual_cumulative_drug_dose|query|integer|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -## discovery_immunotherapies_list - - - -`GET /v2/discovery/immunotherapies/` - -Retrieves a number of discovery immuno therapies. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|drug_reference_database|query|string|false|none| -|immunotherapy_type|query|string|false|none| -|drug_name|query|string|false|none| -|drug_reference_identifier|query|string|false|none| -|immunotherapy_drug_dose_units|query|string|false|none| -|prescribed_cumulative_drug_dose|query|integer|false|none| -|actual_cumulative_drug_dose|query|integer|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -## discovery_overview_cancer_type_count_retrieve - - - -`GET /v2/discovery/overview/cancer_type_count` - -MoH cancer types count - -> Example responses - -> 200 Response - -```json -{ - "cancer_type_count": 0 -} -``` - -## discovery_overview_cohort_count_retrieve - - - -`GET /v2/discovery/overview/cohort_count` - -MoH cohorts count - -> Example responses - -> 200 Response - -```json -{ - "cohort_count": 0 -} -``` - -## discovery_overview_diagnosis_age_count_retrieve - - - -`GET /v2/discovery/overview/diagnosis_age_count` - -MoH Diagnosis age count - -> Example responses - -> 200 Response - -```json -{ - "age_range_count": 0 -} -``` - -## discovery_overview_gender_count_retrieve - - - -`GET /v2/discovery/overview/gender_count` - -MoH gender count - -> Example responses - -> 200 Response - -```json -{ - "gender_count": 0 -} -``` - -## discovery_overview_individual_count_retrieve - - - -`GET /v2/discovery/overview/individual_count` - -MoH individuals count - -> Example responses - -> 200 Response - -```json -{ - "individual_count": 0 -} -``` - -## discovery_overview_patients_per_cohort_retrieve - - - -`GET /v2/discovery/overview/patients_per_cohort` - -MoH patients per cohort count - -> Example responses - -> 200 Response - -```json -{ - "patients_per_cohort_count": 0 -} -``` - -## discovery_overview_treatment_type_count_retrieve - - - -`GET /v2/discovery/overview/treatment_type_count` - -MoH Treatments type count - -> Example responses - -> 200 Response - -```json -{ - "treatment_type_count": 0 -} -``` - -## discovery_primary_diagnoses_list - - - -`GET /v2/discovery/primary_diagnoses/` - -Retrieves a number of discovery primary diagnosises. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|submitter_primary_diagnosis_id|query|string|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|date_of_diagnosis|query|string|false|none| -|cancer_type_code|query|string|false|none| -|basis_of_diagnosis|query|string|false|none| -|laterality|query|string|false|none| -|lymph_nodes_examined_status|query|string|false|none| -|lymph_nodes_examined_method|query|string|false|none| -|number_lymph_nodes_positive|query|integer|false|none| -|clinical_tumour_staging_system|query|string|false|none| -|clinical_t_category|query|string|false|none| -|clinical_n_category|query|string|false|none| -|clinical_m_category|query|string|false|none| -|clinical_stage_group|query|string|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -## discovery_radiations_list - - - -`GET /v2/discovery/radiations/` - -Retrieves a number of discovery radiations. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|radiation_therapy_modality|query|string|false|none| -|radiation_therapy_type|query|string|false|none| -|radiation_therapy_fractions|query|integer|false|none| -|radiation_therapy_dosage|query|integer|false|none| -|anatomical_site_irradiated|query|string|false|none| -|radiation_boost|query|boolean|false|none| -|reference_radiation_treatment_id|query|string|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -## discovery_sample_registrations_list - - - -`GET /v2/discovery/sample_registrations/` - -Retrieves a number of discovery samples. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|submitter_sample_id|query|string|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_specimen_id|query|string|false|none| -|specimen_tissue_source|query|string|false|none| -|tumour_normal_designation|query|string|false|none| -|specimen_type|query|string|false|none| -|sample_type|query|string|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -## discovery_sidebar_list_retrieve - - - -`GET /v2/discovery/sidebar_list/` - -Retrieve the list of available values for all fields (including for -datasets that the user is not authorized to view) - -> Example responses - -> 201 Response - -```json -"string" -``` - -## discovery_specimens_list - - - -`GET /v2/discovery/specimens/` - -Retrieves a number of discovery specimens. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|submitter_specimen_id|query|string|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_primary_diagnosis_id|query|string|false|none| -|pathological_tumour_staging_system|query|string|false|none| -|pathological_t_category|query|string|false|none| -|pathological_n_category|query|string|false|none| -|pathological_m_category|query|string|false|none| -|pathological_stage_group|query|string|false|none| -|specimen_collection_date|query|string|false|none| -|specimen_storage|query|string|false|none| -|specimen_processing|query|string|false|none| -|tumour_histological_type|query|string|false|none| -|specimen_anatomic_location|query|string|false|none| -|specimen_laterality|query|string|false|none| -|reference_pathology_confirmed_diagnosis|query|string|false|none| -|reference_pathology_confirmed_tumour_presence|query|string|false|none| -|tumour_grading_system|query|string|false|none| -|tumour_grade|query|string|false|none| -|percent_tumour_cells_range|query|string|false|none| -|percent_tumour_cells_measurement_method|query|string|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -## discovery_surgeries_list - - - -`GET /v2/discovery/surgeries/` - -Retrieves a number of discovery surgeries. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|id|query|string(uuid)|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_treatment_id|query|string|false|none| -|submitter_specimen_id|query|string|false|none| -|surgery_type|query|string|false|none| -|surgery_site|query|string|false|none| -|surgery_location|query|string|false|none| -|tumour_length|query|integer|false|none| -|tumour_width|query|integer|false|none| -|greatest_dimension_tumour|query|integer|false|none| -|tumour_focality|query|string|false|none| -|residual_tumour_classification|query|string|false|none| -|margin_types_involved|query|string|false|none| -|margin_types_not_involved|query|string|false|none| -|margin_types_not_assessed|query|string|false|none| -|lymphovascular_invasion|query|string|false|none| -|perineural_invasion|query|string|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -## discovery_treatments_list - - - -`GET /v2/discovery/treatments/` - -Retrieves a number of discovery treatments. - -

Parameters

- -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|submitter_treatment_id|query|string|false|none| -|program_id|query|string|false|none| -|submitter_donor_id|query|string|false|none| -|submitter_primary_diagnosis_id|query|string|false|none| -|treatment_type|query|string|false|none| -|is_primary_treatment|query|string|false|none| -|line_of_treatment|query|integer|false|none| -|treatment_start_date|query|string|false|none| -|treatment_end_date|query|string|false|none| -|treatment_setting|query|string|false|none| -|treatment_intent|query|string|false|none| -|days_per_cycle|query|integer|false|none| -|number_of_cycles|query|integer|false|none| -|response_to_treatment_criteria_method|query|string|false|none| -|response_to_treatment|query|string|false|none| -|status_of_treatment|query|string|false|none| - -> Example responses - -> 200 Response - -```json -{ - "discovery_donor": 0 -} -``` - -# Schemas - -

AnatomicalSiteIrradiatedEnum

- - - - - - -```json -"Left Abdomen" - -``` - -* `Left Abdomen` - Left Abdomen -* `Whole Abdomen` - Whole Abdomen -* `Right Abdomen` - Right Abdomen -* `Lower Abdomen` - Lower Abdomen -* `Left Lower Abdomen` - Left Lower Abdomen -* `Right Lower Abdomen` - Right Lower Abdomen -* `Upper Abdomen` - Upper Abdomen -* `Left Upper Abdomen` - Left Upper Abdomen -* `Right Upper Abdomen` - Right Upper Abdomen -* `Left Adrenal` - Left Adrenal -* `Right Adrenal` - Right Adrenal -* `Bilateral Ankle` - Bilateral Ankle -* `Left Ankle` - Left Ankle -* `Right Ankle` - Right Ankle -* `Bilateral Antrum (Bull's Eye)` - Bilateral Antrum (Bull's Eye) -* `Left Antrum` - Left Antrum -* `Right Antrum` - Right Antrum -* `Anus` - Anus -* `Lower Left Arm` - Lower Left Arm -* `Lower Right Arm` - Lower Right Arm -* `Bilateral Arms` - Bilateral Arms -* `Left Arm` - Left Arm -* `Right Arm` - Right Arm -* `Upper Left Arm` - Upper Left Arm -* `Upper Right Arm` - Upper Right Arm -* `Left Axilla` - Left Axilla -* `Right Axilla` - Right Axilla -* `Skin or Soft Tissue of Back` - Skin or Soft Tissue of Back -* `Bile Duct` - Bile Duct -* `Bladder` - Bladder -* `Lower Body` - Lower Body -* `Middle Body` - Middle Body -* `Upper Body` - Upper Body -* `Whole Body` - Whole Body -* `Boost - Area Previously Treated` - Boost - Area Previously Treated -* `Brain` - Brain -* `Left Breast Boost` - Left Breast Boost -* `Right Breast Boost` - Right Breast Boost -* `Bilateral Breast` - Bilateral Breast -* `Left Breast` - Left Breast -* `Right Breast` - Right Breast -* `Bilateral Breasts with Nodes` - Bilateral Breasts with Nodes -* `Left Breast with Nodes` - Left Breast with Nodes -* `Right Breast with Nodes` - Right Breast with Nodes -* `Bilateral Buttocks` - Bilateral Buttocks -* `Left Buttock` - Left Buttock -* `Right Buttock` - Right Buttock -* `Inner Canthus` - Inner Canthus -* `Outer Canthus` - Outer Canthus -* `Cervix` - Cervix -* `Bilateral Chest Lung & Area Involve` - Bilateral Chest Lung & Area Involve -* `Left Chest` - Left Chest -* `Right Chest` - Right Chest -* `Chin` - Chin -* `Left Cheek` - Left Cheek -* `Right Cheek` - Right Cheek -* `Bilateral Chest Wall (W/o Breast)` - Bilateral Chest Wall (W/o Breast) -* `Left Chest Wall` - Left Chest Wall -* `Right Chest Wall` - Right Chest Wall -* `Bilateral Clavicle` - Bilateral Clavicle -* `Left Clavicle` - Left Clavicle -* `Right Clavicle` - Right Clavicle -* `Coccyx` - Coccyx -* `Colon` - Colon -* `Whole C.N.S. (Medulla Techinque)` - Whole C.N.S. (Medulla Techinque) -* `Csf Spine (Medull Tech 2 Diff Machi` - Csf Spine (Medull Tech 2 Diff Machi -* `Left Chestwall Boost` - Left Chestwall Boost -* `Right Chestwall Boost` - Right Chestwall Boost -* `Bilateral Chestwall with Nodes` - Bilateral Chestwall with Nodes -* `Left Chestwall with Nodes` - Left Chestwall with Nodes -* `Right Chestwall with Nodes` - Right Chestwall with Nodes -* `Left Ear` - Left Ear -* `Right Ear` - Right Ear -* `Epigastrium` - Epigastrium -* `Lower Esophagus` - Lower Esophagus -* `Middle Esophagus` - Middle Esophagus -* `Upper Esophagus` - Upper Esophagus -* `Entire Esophagus` - Entire Esophagus -* `Ethmoid Sinus` - Ethmoid Sinus -* `Bilateral Eyes` - Bilateral Eyes -* `Left Eye` - Left Eye -* `Right Eye` - Right Eye -* `Bilateral Face` - Bilateral Face -* `Left Face` - Left Face -* `Right Face` - Right Face -* `Left Fallopian Tubes` - Left Fallopian Tubes -* `Right Fallopian Tubes` - Right Fallopian Tubes -* `Bilateral Femur` - Bilateral Femur -* `Left Femur` - Left Femur -* `Right Femur` - Right Femur -* `Left Fibula` - Left Fibula -* `Right Fibula` - Right Fibula -* `Finger (Including Thumbs)` - Finger (Including Thumbs) -* `Floor of Mouth (Boosts)` - Floor of Mouth (Boosts) -* `Bilateral Feet` - Bilateral Feet -* `Left Foot` - Left Foot -* `Right Foot` - Right Foot -* `Forehead` - Forehead -* `Posterior Fossa` - Posterior Fossa -* `Gall Bladder` - Gall Bladder -* `Gingiva` - Gingiva -* `Bilateral Hand` - Bilateral Hand -* `Left Hand` - Left Hand -* `Right Hand` - Right Hand -* `Head` - Head -* `Bilateral Heel` - Bilateral Heel -* `Left Heel` - Left Heel -* `Right Heel` - Right Heel -* `Left Hemimantle` - Left Hemimantle -* `Right Hemimantle` - Right Hemimantle -* `Heart` - Heart -* `Bilateral Hip` - Bilateral Hip -* `Left Hip` - Left Hip -* `Right Hip` - Right Hip -* `Left Humerus` - Left Humerus -* `Right Humerus` - Right Humerus -* `Hypopharynx` - Hypopharynx -* `Bilateral Internal Mammary Chain` - Bilateral Internal Mammary Chain -* `Bilateral Inguinal Nodes` - Bilateral Inguinal Nodes -* `Left Inguinal Nodes` - Left Inguinal Nodes -* `Right Inguinal Nodes` - Right Inguinal Nodes -* `Inverted 'Y' (Dog-Leg,Hockey-Stick)` - Inverted 'Y' (Dog-Leg,Hockey-Stick) -* `Left Kidney` - Left Kidney -* `Right Kidney` - Right Kidney -* `Bilateral Knee` - Bilateral Knee -* `Left Knee` - Left Knee -* `Right Knee` - Right Knee -* `Bilateral Lacrimal Gland` - Bilateral Lacrimal Gland -* `Left Lacrimal Gland` - Left Lacrimal Gland -* `Right Lacrimal Gland` - Right Lacrimal Gland -* `Larygopharynx` - Larygopharynx -* `Larynx` - Larynx -* `Bilateral Leg` - Bilateral Leg -* `Left Leg` - Left Leg -* `Right Leg` - Right Leg -* `Lower Bilateral Leg` - Lower Bilateral Leg -* `Lower Left Leg` - Lower Left Leg -* `Lower Right Leg` - Lower Right Leg -* `Upper Bilateral Leg` - Upper Bilateral Leg -* `Upper Left Leg` - Upper Left Leg -* `Upper Right Leg` - Upper Right Leg -* `Both Eyelid(s)` - Both Eyelid(s) -* `Left Eyelid` - Left Eyelid -* `Right Eyelid` - Right Eyelid -* `Both Lip(s)` - Both Lip(s) -* `Lower Lip` - Lower Lip -* `Upper Lip` - Upper Lip -* `Liver` - Liver -* `Bilateral Lung` - Bilateral Lung -* `Left Lung` - Left Lung -* `Right Lung` - Right Lung -* `Bilateral Mandible` - Bilateral Mandible -* `Left Mandible` - Left Mandible -* `Right Mandible` - Right Mandible -* `Mantle` - Mantle -* `Bilateral Maxilla` - Bilateral Maxilla -* `Left Maxilla` - Left Maxilla -* `Right Maxilla` - Right Maxilla -* `Mediastinum` - Mediastinum -* `Multiple Skin` - Multiple Skin -* `Nasal Fossa` - Nasal Fossa -* `Nasopharynx` - Nasopharynx -* `Bilateral Neck Includes Nodes` - Bilateral Neck Includes Nodes -* `Left Neck Includes Nodes` - Left Neck Includes Nodes -* `Right Neck Includes Nodes` - Right Neck Includes Nodes -* `Neck - Skin` - Neck - Skin -* `Nose` - Nose -* `Oral Cavity / Buccal Mucosa` - Oral Cavity / Buccal Mucosa -* `Bilateral Orbit` - Bilateral Orbit -* `Left Orbit` - Left Orbit -* `Right Orbit` - Right Orbit -* `Oropharynx` - Oropharynx -* `Bilateral Ovary` - Bilateral Ovary -* `Left Ovary` - Left Ovary -* `Right Ovary` - Right Ovary -* `Hard Palate` - Hard Palate -* `Soft Palate` - Soft Palate -* `Palate Unspecified` - Palate Unspecified -* `Pancreas` - Pancreas -* `Para-Aortic Nodes` - Para-Aortic Nodes -* `Left Parotid` - Left Parotid -* `Right Parotid` - Right Parotid -* `Bilateral Pelvis` - Bilateral Pelvis -* `Left Pelvis` - Left Pelvis -* `Right Pelvis` - Right Pelvis -* `Penis` - Penis -* `Perineum` - Perineum -* `Pituitary` - Pituitary -* `Left Pleura (As in Mesothelioma)` - Left Pleura (As in Mesothelioma) -* `Right Pleura` - Right Pleura -* `Prostate` - Prostate -* `Pubis` - Pubis -* `Pyriform Fossa (Sinuses)` - Pyriform Fossa (Sinuses) -* `Left Radius` - Left Radius -* `Right Radius` - Right Radius -* `Rectum (Includes Sigmoid)` - Rectum (Includes Sigmoid) -* `Left Ribs` - Left Ribs -* `Right Ribs` - Right Ribs -* `Sacrum` - Sacrum -* `Left Salivary Gland` - Left Salivary Gland -* `Right Salivary Gland` - Right Salivary Gland -* `Bilateral Scapula` - Bilateral Scapula -* `Left Scapula` - Left Scapula -* `Right Scapula` - Right Scapula -* `Bilateral Supraclavicular Nodes` - Bilateral Supraclavicular Nodes -* `Left Supraclavicular Nodes` - Left Supraclavicular Nodes -* `Right Supraclavicular Nodes` - Right Supraclavicular Nodes -* `Bilateral Scalp` - Bilateral Scalp -* `Left Scalp` - Left Scalp -* `Right Scalp` - Right Scalp -* `Scrotum` - Scrotum -* `Bilateral Shoulder` - Bilateral Shoulder -* `Left Shoulder` - Left Shoulder -* `Right Shoulder` - Right Shoulder -* `Whole Body - Skin` - Whole Body - Skin -* `Skull` - Skull -* `Cervical & Thoracic Spine` - Cervical & Thoracic Spine -* `Sphenoid Sinus` - Sphenoid Sinus -* `Cervical Spine` - Cervical Spine -* `Lumbar Spine` - Lumbar Spine -* `Thoracic Spine` - Thoracic Spine -* `Whole Spine` - Whole Spine -* `Spleen` - Spleen -* `Lumbo-Sacral Spine` - Lumbo-Sacral Spine -* `Thoracic & Lumbar Spine` - Thoracic & Lumbar Spine -* `Sternum` - Sternum -* `Stomach` - Stomach -* `Submandibular Glands` - Submandibular Glands -* `Left Temple` - Left Temple -* `Right Temple` - Right Temple -* `Bilateral Testis` - Bilateral Testis -* `Left Testis` - Left Testis -* `Right Testis` - Right Testis -* `Thyroid` - Thyroid -* `Left Tibia` - Left Tibia -* `Right Tibia` - Right Tibia -* `Left Toes` - Left Toes -* `Right Toes` - Right Toes -* `Tongue` - Tongue -* `Tonsil` - Tonsil -* `Trachea` - Trachea -* `Left Ulna` - Left Ulna -* `Right Ulna` - Right Ulna -* `Left Ureter` - Left Ureter -* `Right Ureter` - Right Ureter -* `Urethra` - Urethra -* `Uterus` - Uterus -* `Uvula` - Uvula -* `Vagina` - Vagina -* `Vulva` - Vulva -* `Abdomen` - Abdomen -* `Body` - Body -* `Chest` - Chest -* `Lower Limb` - Lower Limb -* `Neck` - Neck -* `Other` - Other -* `Pelvis` - Pelvis -* `Skin` - Skin -* `Spine` - Spine -* `Upper Limb` - Upper Limb - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Left Abdomen` - Left Abdomen
* `Whole Abdomen` - Whole Abdomen
* `Right Abdomen` - Right Abdomen
* `Lower Abdomen` - Lower Abdomen
* `Left Lower Abdomen` - Left Lower Abdomen
* `Right Lower Abdomen` - Right Lower Abdomen
* `Upper Abdomen` - Upper Abdomen
* `Left Upper Abdomen` - Left Upper Abdomen
* `Right Upper Abdomen` - Right Upper Abdomen
* `Left Adrenal` - Left Adrenal
* `Right Adrenal` - Right Adrenal
* `Bilateral Ankle` - Bilateral Ankle
* `Left Ankle` - Left Ankle
* `Right Ankle` - Right Ankle
* `Bilateral Antrum (Bull's Eye)` - Bilateral Antrum (Bull's Eye)
* `Left Antrum` - Left Antrum
* `Right Antrum` - Right Antrum
* `Anus` - Anus
* `Lower Left Arm` - Lower Left Arm
* `Lower Right Arm` - Lower Right Arm
* `Bilateral Arms` - Bilateral Arms
* `Left Arm` - Left Arm
* `Right Arm` - Right Arm
* `Upper Left Arm` - Upper Left Arm
* `Upper Right Arm` - Upper Right Arm
* `Left Axilla` - Left Axilla
* `Right Axilla` - Right Axilla
* `Skin or Soft Tissue of Back` - Skin or Soft Tissue of Back
* `Bile Duct` - Bile Duct
* `Bladder` - Bladder
* `Lower Body` - Lower Body
* `Middle Body` - Middle Body
* `Upper Body` - Upper Body
* `Whole Body` - Whole Body
* `Boost - Area Previously Treated` - Boost - Area Previously Treated
* `Brain` - Brain
* `Left Breast Boost` - Left Breast Boost
* `Right Breast Boost` - Right Breast Boost
* `Bilateral Breast` - Bilateral Breast
* `Left Breast` - Left Breast
* `Right Breast` - Right Breast
* `Bilateral Breasts with Nodes` - Bilateral Breasts with Nodes
* `Left Breast with Nodes` - Left Breast with Nodes
* `Right Breast with Nodes` - Right Breast with Nodes
* `Bilateral Buttocks` - Bilateral Buttocks
* `Left Buttock` - Left Buttock
* `Right Buttock` - Right Buttock
* `Inner Canthus` - Inner Canthus
* `Outer Canthus` - Outer Canthus
* `Cervix` - Cervix
* `Bilateral Chest Lung & Area Involve` - Bilateral Chest Lung & Area Involve
* `Left Chest` - Left Chest
* `Right Chest` - Right Chest
* `Chin` - Chin
* `Left Cheek` - Left Cheek
* `Right Cheek` - Right Cheek
* `Bilateral Chest Wall (W/o Breast)` - Bilateral Chest Wall (W/o Breast)
* `Left Chest Wall` - Left Chest Wall
* `Right Chest Wall` - Right Chest Wall
* `Bilateral Clavicle` - Bilateral Clavicle
* `Left Clavicle` - Left Clavicle
* `Right Clavicle` - Right Clavicle
* `Coccyx` - Coccyx
* `Colon` - Colon
* `Whole C.N.S. (Medulla Techinque)` - Whole C.N.S. (Medulla Techinque)
* `Csf Spine (Medull Tech 2 Diff Machi` - Csf Spine (Medull Tech 2 Diff Machi
* `Left Chestwall Boost` - Left Chestwall Boost
* `Right Chestwall Boost` - Right Chestwall Boost
* `Bilateral Chestwall with Nodes` - Bilateral Chestwall with Nodes
* `Left Chestwall with Nodes` - Left Chestwall with Nodes
* `Right Chestwall with Nodes` - Right Chestwall with Nodes
* `Left Ear` - Left Ear
* `Right Ear` - Right Ear
* `Epigastrium` - Epigastrium
* `Lower Esophagus` - Lower Esophagus
* `Middle Esophagus` - Middle Esophagus
* `Upper Esophagus` - Upper Esophagus
* `Entire Esophagus` - Entire Esophagus
* `Ethmoid Sinus` - Ethmoid Sinus
* `Bilateral Eyes` - Bilateral Eyes
* `Left Eye` - Left Eye
* `Right Eye` - Right Eye
* `Bilateral Face` - Bilateral Face
* `Left Face` - Left Face
* `Right Face` - Right Face
* `Left Fallopian Tubes` - Left Fallopian Tubes
* `Right Fallopian Tubes` - Right Fallopian Tubes
* `Bilateral Femur` - Bilateral Femur
* `Left Femur` - Left Femur
* `Right Femur` - Right Femur
* `Left Fibula` - Left Fibula
* `Right Fibula` - Right Fibula
* `Finger (Including Thumbs)` - Finger (Including Thumbs)
* `Floor of Mouth (Boosts)` - Floor of Mouth (Boosts)
* `Bilateral Feet` - Bilateral Feet
* `Left Foot` - Left Foot
* `Right Foot` - Right Foot
* `Forehead` - Forehead
* `Posterior Fossa` - Posterior Fossa
* `Gall Bladder` - Gall Bladder
* `Gingiva` - Gingiva
* `Bilateral Hand` - Bilateral Hand
* `Left Hand` - Left Hand
* `Right Hand` - Right Hand
* `Head` - Head
* `Bilateral Heel` - Bilateral Heel
* `Left Heel` - Left Heel
* `Right Heel` - Right Heel
* `Left Hemimantle` - Left Hemimantle
* `Right Hemimantle` - Right Hemimantle
* `Heart` - Heart
* `Bilateral Hip` - Bilateral Hip
* `Left Hip` - Left Hip
* `Right Hip` - Right Hip
* `Left Humerus` - Left Humerus
* `Right Humerus` - Right Humerus
* `Hypopharynx` - Hypopharynx
* `Bilateral Internal Mammary Chain` - Bilateral Internal Mammary Chain
* `Bilateral Inguinal Nodes` - Bilateral Inguinal Nodes
* `Left Inguinal Nodes` - Left Inguinal Nodes
* `Right Inguinal Nodes` - Right Inguinal Nodes
* `Inverted 'Y' (Dog-Leg,Hockey-Stick)` - Inverted 'Y' (Dog-Leg,Hockey-Stick)
* `Left Kidney` - Left Kidney
* `Right Kidney` - Right Kidney
* `Bilateral Knee` - Bilateral Knee
* `Left Knee` - Left Knee
* `Right Knee` - Right Knee
* `Bilateral Lacrimal Gland` - Bilateral Lacrimal Gland
* `Left Lacrimal Gland` - Left Lacrimal Gland
* `Right Lacrimal Gland` - Right Lacrimal Gland
* `Larygopharynx` - Larygopharynx
* `Larynx` - Larynx
* `Bilateral Leg` - Bilateral Leg
* `Left Leg` - Left Leg
* `Right Leg` - Right Leg
* `Lower Bilateral Leg` - Lower Bilateral Leg
* `Lower Left Leg` - Lower Left Leg
* `Lower Right Leg` - Lower Right Leg
* `Upper Bilateral Leg` - Upper Bilateral Leg
* `Upper Left Leg` - Upper Left Leg
* `Upper Right Leg` - Upper Right Leg
* `Both Eyelid(s)` - Both Eyelid(s)
* `Left Eyelid` - Left Eyelid
* `Right Eyelid` - Right Eyelid
* `Both Lip(s)` - Both Lip(s)
* `Lower Lip` - Lower Lip
* `Upper Lip` - Upper Lip
* `Liver` - Liver
* `Bilateral Lung` - Bilateral Lung
* `Left Lung` - Left Lung
* `Right Lung` - Right Lung
* `Bilateral Mandible` - Bilateral Mandible
* `Left Mandible` - Left Mandible
* `Right Mandible` - Right Mandible
* `Mantle` - Mantle
* `Bilateral Maxilla` - Bilateral Maxilla
* `Left Maxilla` - Left Maxilla
* `Right Maxilla` - Right Maxilla
* `Mediastinum` - Mediastinum
* `Multiple Skin` - Multiple Skin
* `Nasal Fossa` - Nasal Fossa
* `Nasopharynx` - Nasopharynx
* `Bilateral Neck Includes Nodes` - Bilateral Neck Includes Nodes
* `Left Neck Includes Nodes` - Left Neck Includes Nodes
* `Right Neck Includes Nodes` - Right Neck Includes Nodes
* `Neck - Skin` - Neck - Skin
* `Nose` - Nose
* `Oral Cavity / Buccal Mucosa` - Oral Cavity / Buccal Mucosa
* `Bilateral Orbit` - Bilateral Orbit
* `Left Orbit` - Left Orbit
* `Right Orbit` - Right Orbit
* `Oropharynx` - Oropharynx
* `Bilateral Ovary` - Bilateral Ovary
* `Left Ovary` - Left Ovary
* `Right Ovary` - Right Ovary
* `Hard Palate` - Hard Palate
* `Soft Palate` - Soft Palate
* `Palate Unspecified` - Palate Unspecified
* `Pancreas` - Pancreas
* `Para-Aortic Nodes` - Para-Aortic Nodes
* `Left Parotid` - Left Parotid
* `Right Parotid` - Right Parotid
* `Bilateral Pelvis` - Bilateral Pelvis
* `Left Pelvis` - Left Pelvis
* `Right Pelvis` - Right Pelvis
* `Penis` - Penis
* `Perineum` - Perineum
* `Pituitary` - Pituitary
* `Left Pleura (As in Mesothelioma)` - Left Pleura (As in Mesothelioma)
* `Right Pleura` - Right Pleura
* `Prostate` - Prostate
* `Pubis` - Pubis
* `Pyriform Fossa (Sinuses)` - Pyriform Fossa (Sinuses)
* `Left Radius` - Left Radius
* `Right Radius` - Right Radius
* `Rectum (Includes Sigmoid)` - Rectum (Includes Sigmoid)
* `Left Ribs` - Left Ribs
* `Right Ribs` - Right Ribs
* `Sacrum` - Sacrum
* `Left Salivary Gland` - Left Salivary Gland
* `Right Salivary Gland` - Right Salivary Gland
* `Bilateral Scapula` - Bilateral Scapula
* `Left Scapula` - Left Scapula
* `Right Scapula` - Right Scapula
* `Bilateral Supraclavicular Nodes` - Bilateral Supraclavicular Nodes
* `Left Supraclavicular Nodes` - Left Supraclavicular Nodes
* `Right Supraclavicular Nodes` - Right Supraclavicular Nodes
* `Bilateral Scalp` - Bilateral Scalp
* `Left Scalp` - Left Scalp
* `Right Scalp` - Right Scalp
* `Scrotum` - Scrotum
* `Bilateral Shoulder` - Bilateral Shoulder
* `Left Shoulder` - Left Shoulder
* `Right Shoulder` - Right Shoulder
* `Whole Body - Skin` - Whole Body - Skin
* `Skull` - Skull
* `Cervical & Thoracic Spine` - Cervical & Thoracic Spine
* `Sphenoid Sinus` - Sphenoid Sinus
* `Cervical Spine` - Cervical Spine
* `Lumbar Spine` - Lumbar Spine
* `Thoracic Spine` - Thoracic Spine
* `Whole Spine` - Whole Spine
* `Spleen` - Spleen
* `Lumbo-Sacral Spine` - Lumbo-Sacral Spine
* `Thoracic & Lumbar Spine` - Thoracic & Lumbar Spine
* `Sternum` - Sternum
* `Stomach` - Stomach
* `Submandibular Glands` - Submandibular Glands
* `Left Temple` - Left Temple
* `Right Temple` - Right Temple
* `Bilateral Testis` - Bilateral Testis
* `Left Testis` - Left Testis
* `Right Testis` - Right Testis
* `Thyroid` - Thyroid
* `Left Tibia` - Left Tibia
* `Right Tibia` - Right Tibia
* `Left Toes` - Left Toes
* `Right Toes` - Right Toes
* `Tongue` - Tongue
* `Tonsil` - Tonsil
* `Trachea` - Trachea
* `Left Ulna` - Left Ulna
* `Right Ulna` - Right Ulna
* `Left Ureter` - Left Ureter
* `Right Ureter` - Right Ureter
* `Urethra` - Urethra
* `Uterus` - Uterus
* `Uvula` - Uvula
* `Vagina` - Vagina
* `Vulva` - Vulva
* `Abdomen` - Abdomen
* `Body` - Body
* `Chest` - Chest
* `Lower Limb` - Lower Limb
* `Neck` - Neck
* `Other` - Other
* `Pelvis` - Pelvis
* `Skin` - Skin
* `Spine` - Spine
* `Upper Limb` - Upper Limb| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Left Abdomen| -|*anonymous*|Whole Abdomen| -|*anonymous*|Right Abdomen| -|*anonymous*|Lower Abdomen| -|*anonymous*|Left Lower Abdomen| -|*anonymous*|Right Lower Abdomen| -|*anonymous*|Upper Abdomen| -|*anonymous*|Left Upper Abdomen| -|*anonymous*|Right Upper Abdomen| -|*anonymous*|Left Adrenal| -|*anonymous*|Right Adrenal| -|*anonymous*|Bilateral Ankle| -|*anonymous*|Left Ankle| -|*anonymous*|Right Ankle| -|*anonymous*|Bilateral Antrum (Bull's Eye)| -|*anonymous*|Left Antrum| -|*anonymous*|Right Antrum| -|*anonymous*|Anus| -|*anonymous*|Lower Left Arm| -|*anonymous*|Lower Right Arm| -|*anonymous*|Bilateral Arms| -|*anonymous*|Left Arm| -|*anonymous*|Right Arm| -|*anonymous*|Upper Left Arm| -|*anonymous*|Upper Right Arm| -|*anonymous*|Left Axilla| -|*anonymous*|Right Axilla| -|*anonymous*|Skin or Soft Tissue of Back| -|*anonymous*|Bile Duct| -|*anonymous*|Bladder| -|*anonymous*|Lower Body| -|*anonymous*|Middle Body| -|*anonymous*|Upper Body| -|*anonymous*|Whole Body| -|*anonymous*|Boost - Area Previously Treated| -|*anonymous*|Brain| -|*anonymous*|Left Breast Boost| -|*anonymous*|Right Breast Boost| -|*anonymous*|Bilateral Breast| -|*anonymous*|Left Breast| -|*anonymous*|Right Breast| -|*anonymous*|Bilateral Breasts with Nodes| -|*anonymous*|Left Breast with Nodes| -|*anonymous*|Right Breast with Nodes| -|*anonymous*|Bilateral Buttocks| -|*anonymous*|Left Buttock| -|*anonymous*|Right Buttock| -|*anonymous*|Inner Canthus| -|*anonymous*|Outer Canthus| -|*anonymous*|Cervix| -|*anonymous*|Bilateral Chest Lung & Area Involve| -|*anonymous*|Left Chest| -|*anonymous*|Right Chest| -|*anonymous*|Chin| -|*anonymous*|Left Cheek| -|*anonymous*|Right Cheek| -|*anonymous*|Bilateral Chest Wall (W/o Breast)| -|*anonymous*|Left Chest Wall| -|*anonymous*|Right Chest Wall| -|*anonymous*|Bilateral Clavicle| -|*anonymous*|Left Clavicle| -|*anonymous*|Right Clavicle| -|*anonymous*|Coccyx| -|*anonymous*|Colon| -|*anonymous*|Whole C.N.S. (Medulla Techinque)| -|*anonymous*|Csf Spine (Medull Tech 2 Diff Machi| -|*anonymous*|Left Chestwall Boost| -|*anonymous*|Right Chestwall Boost| -|*anonymous*|Bilateral Chestwall with Nodes| -|*anonymous*|Left Chestwall with Nodes| -|*anonymous*|Right Chestwall with Nodes| -|*anonymous*|Left Ear| -|*anonymous*|Right Ear| -|*anonymous*|Epigastrium| -|*anonymous*|Lower Esophagus| -|*anonymous*|Middle Esophagus| -|*anonymous*|Upper Esophagus| -|*anonymous*|Entire Esophagus| -|*anonymous*|Ethmoid Sinus| -|*anonymous*|Bilateral Eyes| -|*anonymous*|Left Eye| -|*anonymous*|Right Eye| -|*anonymous*|Bilateral Face| -|*anonymous*|Left Face| -|*anonymous*|Right Face| -|*anonymous*|Left Fallopian Tubes| -|*anonymous*|Right Fallopian Tubes| -|*anonymous*|Bilateral Femur| -|*anonymous*|Left Femur| -|*anonymous*|Right Femur| -|*anonymous*|Left Fibula| -|*anonymous*|Right Fibula| -|*anonymous*|Finger (Including Thumbs)| -|*anonymous*|Floor of Mouth (Boosts)| -|*anonymous*|Bilateral Feet| -|*anonymous*|Left Foot| -|*anonymous*|Right Foot| -|*anonymous*|Forehead| -|*anonymous*|Posterior Fossa| -|*anonymous*|Gall Bladder| -|*anonymous*|Gingiva| -|*anonymous*|Bilateral Hand| -|*anonymous*|Left Hand| -|*anonymous*|Right Hand| -|*anonymous*|Head| -|*anonymous*|Bilateral Heel| -|*anonymous*|Left Heel| -|*anonymous*|Right Heel| -|*anonymous*|Left Hemimantle| -|*anonymous*|Right Hemimantle| -|*anonymous*|Heart| -|*anonymous*|Bilateral Hip| -|*anonymous*|Left Hip| -|*anonymous*|Right Hip| -|*anonymous*|Left Humerus| -|*anonymous*|Right Humerus| -|*anonymous*|Hypopharynx| -|*anonymous*|Bilateral Internal Mammary Chain| -|*anonymous*|Bilateral Inguinal Nodes| -|*anonymous*|Left Inguinal Nodes| -|*anonymous*|Right Inguinal Nodes| -|*anonymous*|Inverted 'Y' (Dog-Leg,Hockey-Stick)| -|*anonymous*|Left Kidney| -|*anonymous*|Right Kidney| -|*anonymous*|Bilateral Knee| -|*anonymous*|Left Knee| -|*anonymous*|Right Knee| -|*anonymous*|Bilateral Lacrimal Gland| -|*anonymous*|Left Lacrimal Gland| -|*anonymous*|Right Lacrimal Gland| -|*anonymous*|Larygopharynx| -|*anonymous*|Larynx| -|*anonymous*|Bilateral Leg| -|*anonymous*|Left Leg| -|*anonymous*|Right Leg| -|*anonymous*|Lower Bilateral Leg| -|*anonymous*|Lower Left Leg| -|*anonymous*|Lower Right Leg| -|*anonymous*|Upper Bilateral Leg| -|*anonymous*|Upper Left Leg| -|*anonymous*|Upper Right Leg| -|*anonymous*|Both Eyelid(s)| -|*anonymous*|Left Eyelid| -|*anonymous*|Right Eyelid| -|*anonymous*|Both Lip(s)| -|*anonymous*|Lower Lip| -|*anonymous*|Upper Lip| -|*anonymous*|Liver| -|*anonymous*|Bilateral Lung| -|*anonymous*|Left Lung| -|*anonymous*|Right Lung| -|*anonymous*|Bilateral Mandible| -|*anonymous*|Left Mandible| -|*anonymous*|Right Mandible| -|*anonymous*|Mantle| -|*anonymous*|Bilateral Maxilla| -|*anonymous*|Left Maxilla| -|*anonymous*|Right Maxilla| -|*anonymous*|Mediastinum| -|*anonymous*|Multiple Skin| -|*anonymous*|Nasal Fossa| -|*anonymous*|Nasopharynx| -|*anonymous*|Bilateral Neck Includes Nodes| -|*anonymous*|Left Neck Includes Nodes| -|*anonymous*|Right Neck Includes Nodes| -|*anonymous*|Neck - Skin| -|*anonymous*|Nose| -|*anonymous*|Oral Cavity / Buccal Mucosa| -|*anonymous*|Bilateral Orbit| -|*anonymous*|Left Orbit| -|*anonymous*|Right Orbit| -|*anonymous*|Oropharynx| -|*anonymous*|Bilateral Ovary| -|*anonymous*|Left Ovary| -|*anonymous*|Right Ovary| -|*anonymous*|Hard Palate| -|*anonymous*|Soft Palate| -|*anonymous*|Palate Unspecified| -|*anonymous*|Pancreas| -|*anonymous*|Para-Aortic Nodes| -|*anonymous*|Left Parotid| -|*anonymous*|Right Parotid| -|*anonymous*|Bilateral Pelvis| -|*anonymous*|Left Pelvis| -|*anonymous*|Right Pelvis| -|*anonymous*|Penis| -|*anonymous*|Perineum| -|*anonymous*|Pituitary| -|*anonymous*|Left Pleura (As in Mesothelioma)| -|*anonymous*|Right Pleura| -|*anonymous*|Prostate| -|*anonymous*|Pubis| -|*anonymous*|Pyriform Fossa (Sinuses)| -|*anonymous*|Left Radius| -|*anonymous*|Right Radius| -|*anonymous*|Rectum (Includes Sigmoid)| -|*anonymous*|Left Ribs| -|*anonymous*|Right Ribs| -|*anonymous*|Sacrum| -|*anonymous*|Left Salivary Gland| -|*anonymous*|Right Salivary Gland| -|*anonymous*|Bilateral Scapula| -|*anonymous*|Left Scapula| -|*anonymous*|Right Scapula| -|*anonymous*|Bilateral Supraclavicular Nodes| -|*anonymous*|Left Supraclavicular Nodes| -|*anonymous*|Right Supraclavicular Nodes| -|*anonymous*|Bilateral Scalp| -|*anonymous*|Left Scalp| -|*anonymous*|Right Scalp| -|*anonymous*|Scrotum| -|*anonymous*|Bilateral Shoulder| -|*anonymous*|Left Shoulder| -|*anonymous*|Right Shoulder| -|*anonymous*|Whole Body - Skin| -|*anonymous*|Skull| -|*anonymous*|Cervical & Thoracic Spine| -|*anonymous*|Sphenoid Sinus| -|*anonymous*|Cervical Spine| -|*anonymous*|Lumbar Spine| -|*anonymous*|Thoracic Spine| -|*anonymous*|Whole Spine| -|*anonymous*|Spleen| -|*anonymous*|Lumbo-Sacral Spine| -|*anonymous*|Thoracic & Lumbar Spine| -|*anonymous*|Sternum| -|*anonymous*|Stomach| -|*anonymous*|Submandibular Glands| -|*anonymous*|Left Temple| -|*anonymous*|Right Temple| -|*anonymous*|Bilateral Testis| -|*anonymous*|Left Testis| -|*anonymous*|Right Testis| -|*anonymous*|Thyroid| -|*anonymous*|Left Tibia| -|*anonymous*|Right Tibia| -|*anonymous*|Left Toes| -|*anonymous*|Right Toes| -|*anonymous*|Tongue| -|*anonymous*|Tonsil| -|*anonymous*|Trachea| -|*anonymous*|Left Ulna| -|*anonymous*|Right Ulna| -|*anonymous*|Left Ureter| -|*anonymous*|Right Ureter| -|*anonymous*|Urethra| -|*anonymous*|Uterus| -|*anonymous*|Uvula| -|*anonymous*|Vagina| -|*anonymous*|Vulva| -|*anonymous*|Abdomen| -|*anonymous*|Body| -|*anonymous*|Chest| -|*anonymous*|Lower Limb| -|*anonymous*|Neck| -|*anonymous*|Other| -|*anonymous*|Pelvis| -|*anonymous*|Skin| -|*anonymous*|Spine| -|*anonymous*|Upper Limb| - -

BasisOfDiagnosisEnum

- - - - - - -```json -"Clinical investigation" - -``` - -* `Clinical investigation` - Clinical investigation -* `Clinical` - Clinical -* `Cytology` - Cytology -* `Death certificate only` - Death certificate only -* `Histology of a metastasis` - Histology of a metastasis -* `Histology of a primary tumour` - Histology of a primary tumour -* `Specific tumour markers` - Specific tumour markers -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Clinical investigation` - Clinical investigation
* `Clinical` - Clinical
* `Cytology` - Cytology
* `Death certificate only` - Death certificate only
* `Histology of a metastasis` - Histology of a metastasis
* `Histology of a primary tumour` - Histology of a primary tumour
* `Specific tumour markers` - Specific tumour markers
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Clinical investigation| -|*anonymous*|Clinical| -|*anonymous*|Cytology| -|*anonymous*|Death certificate only| -|*anonymous*|Histology of a metastasis| -|*anonymous*|Histology of a primary tumour| -|*anonymous*|Specific tumour markers| -|*anonymous*|Unknown| - -

Biomarker

- - - - - - -```json -{ - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "er_status": "Cannot be determined", - "pr_status": "Cannot be determined", - "her2_ihc_status": "Cannot be determined", - "her2_ish_status": "Cannot be determined", - "hpv_ihc_status": "Cannot be determined", - "hpv_pcr_status": "Cannot be determined", - "hpv_strain": [ - "HPV16" - ], - "submitter_specimen_id": "string", - "submitter_primary_diagnosis_id": "string", - "submitter_treatment_id": "string", - "submitter_follow_up_id": "string", - "test_date": "string", - "psa_level": 32767, - "ca125": 32767, - "cea": 32767, - "er_percent_positive": 0, - "pr_percent_positive": 0, - "program_id": "string", - "submitter_donor_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|id|string(uuid)|false|none|none| -|er_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ErPrHpvStatusEnum](#schemaerprhpvstatusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Positive` - Positive
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|pr_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ErPrHpvStatusEnum](#schemaerprhpvstatusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Positive` - Positive
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|her2_ihc_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[Her2StatusEnum](#schemaher2statusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `Equivocal` - Equivocal
* `Positive` - Positive
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|her2_ish_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[Her2StatusEnum](#schemaher2statusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `Equivocal` - Equivocal
* `Positive` - Positive
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|hpv_ihc_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ErPrHpvStatusEnum](#schemaerprhpvstatusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Positive` - Positive
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|hpv_pcr_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ErPrHpvStatusEnum](#schemaerprhpvstatusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Positive` - Positive
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|hpv_strain|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[HpvStrainEnum](#schemahpvstrainenum)|false|none|* `HPV16` - HPV16
* `HPV18` - HPV18
* `HPV31` - HPV31
* `HPV33` - HPV33
* `HPV35` - HPV35
* `HPV39` - HPV39
* `HPV45` - HPV45
* `HPV51` - HPV51
* `HPV52` - HPV52
* `HPV56` - HPV56
* `HPV58` - HPV58
* `HPV59` - HPV59
* `HPV66` - HPV66
* `HPV68` - HPV68
* `HPV73` - HPV73| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_specimen_id|string¦null|false|none|none| -|submitter_primary_diagnosis_id|string¦null|false|none|none| -|submitter_treatment_id|string¦null|false|none|none| -|submitter_follow_up_id|string¦null|false|none|none| -|test_date|string¦null|false|none|none| -|psa_level|integer¦null|false|none|none| -|ca125|integer¦null|false|none|none| -|cea|integer¦null|false|none|none| -|er_percent_positive|number(double)¦null|false|none|none| -|pr_percent_positive|number(double)¦null|false|none|none| -|program_id|string|true|none|none| -|submitter_donor_id|string|true|none|none| - -

BlankEnum

- - - - - - -```json -"" - -``` - -### Properties - -*None* - -

CauseOfDeathEnum

- - - - - - -```json -"Died of cancer" - -``` - -* `Died of cancer` - Died of cancer -* `Died of other reasons` - Died of other reasons -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Died of cancer` - Died of cancer
* `Died of other reasons` - Died of other reasons
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Died of cancer| -|*anonymous*|Died of other reasons| -|*anonymous*|Unknown| - -

Chemotherapy

- - - - - - -```json -{ - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "chemotherapy_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|id|string(uuid)|false|none|none| -|chemotherapy_drug_dose_units|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DosageUnitsEnum](#schemadosageunitsenum)|false|none|* `mg/m2` - mg/m2
* `IU/m2` - IU/m2
* `IU/kg` - IU/kg
* `ug/m2` - ug/m2
* `g/m2` - g/m2
* `mg/kg` - mg/kg
* `cells/kg` - cells/kg| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|drug_reference_database|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DrugReferenceDatabaseEnum](#schemadrugreferencedatabaseenum)|false|none|* `RxNorm` - RxNorm
* `PubChem` - PubChem
* `NCI Thesaurus` - NCI Thesaurus| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|drug_name|string¦null|false|none|none| -|drug_reference_identifier|string¦null|false|none|none| -|prescribed_cumulative_drug_dose|integer¦null|false|none|none| -|actual_cumulative_drug_dose|integer¦null|false|none|none| -|program_id|string|true|none|none| -|submitter_donor_id|string|true|none|none| -|submitter_treatment_id|string|true|none|none| - -

Comorbidity

- - - - - - -```json -{ - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "prior_malignancy": "Yes", - "laterality_of_prior_malignancy": "Bilateral", - "comorbidity_type_code": "string", - "comorbidity_treatment_status": "Yes", - "comorbidity_treatment": "string", - "age_at_comorbidity_diagnosis": 32767, - "program_id": "string", - "submitter_donor_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|id|string(uuid)|false|none|none| -|prior_malignancy|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[uBooleanEnum](#schemaubooleanenum)|false|none|* `Yes` - Yes
* `No` - No
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|laterality_of_prior_malignancy|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[LateralityOfPriorMalignancyEnum](#schemalateralityofpriormalignancyenum)|false|none|* `Bilateral` - Bilateral
* `Left` - Left
* `Midline` - Midline
* `Not applicable` - Not applicable
* `Right` - Right
* `Unilateral, Side not specified` - Unilateral, Side not specified
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|comorbidity_type_code|string¦null|false|none|none| -|comorbidity_treatment_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[uBooleanEnum](#schemaubooleanenum)|false|none|* `Yes` - Yes
* `No` - No
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|comorbidity_treatment|string¦null|false|none|none| -|age_at_comorbidity_diagnosis|integer¦null|false|none|none| -|program_id|string|true|none|none| -|submitter_donor_id|string|true|none|none| - -

Discovery

- - - - - - -```json -{ - "discovery_donor": 0 -} - -``` - -This serializer is used to return the discovery_donor. -It also override the list serializer to a single object - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|discovery_donor|integer|true|none|none| - -

DiseaseStatusAtFollowupEnum

- - - - - - -```json -"Complete remission" - -``` - -* `Complete remission` - Complete remission -* `Distant progression` - Distant progression -* `Loco-regional progression` - Loco-regional progression -* `No evidence of disease` - No evidence of disease -* `Partial remission` - Partial remission -* `Progression not otherwise specified` - Progression not otherwise specified -* `Relapse or recurrence` - Relapse or recurrence -* `Stable` - Stable - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Complete remission` - Complete remission
* `Distant progression` - Distant progression
* `Loco-regional progression` - Loco-regional progression
* `No evidence of disease` - No evidence of disease
* `Partial remission` - Partial remission
* `Progression not otherwise specified` - Progression not otherwise specified
* `Relapse or recurrence` - Relapse or recurrence
* `Stable` - Stable| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Complete remission| -|*anonymous*|Distant progression| -|*anonymous*|Loco-regional progression| -|*anonymous*|No evidence of disease| -|*anonymous*|Partial remission| -|*anonymous*|Progression not otherwise specified| -|*anonymous*|Relapse or recurrence| -|*anonymous*|Stable| - -

Donor

- - - - - - -```json -{ - "submitter_donor_id": "string", - "cause_of_death": "Died of cancer", - "date_of_birth": "string", - "date_of_death": "string", - "primary_site": [ - "Accessory sinuses" - ], - "gender": "Man", - "sex_at_birth": "Male", - "lost_to_followup_reason": "Completed study", - "date_alive_after_lost_to_followup": "string", - "is_deceased": true, - "lost_to_followup_after_clinical_event_identifier": "string", - "program_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_donor_id|string|true|none|none| -|cause_of_death|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[CauseOfDeathEnum](#schemacauseofdeathenum)|false|none|* `Died of cancer` - Died of cancer
* `Died of other reasons` - Died of other reasons
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|date_of_birth|string¦null|false|none|none| -|date_of_death|string¦null|false|none|none| -|primary_site|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[PrimarySiteEnum](#schemaprimarysiteenum)|false|none|* `Accessory sinuses` - Accessory sinuses
* `Adrenal gland` - Adrenal gland
* `Anus and anal canal` - Anus and anal canal
* `Base of tongue` - Base of tongue
* `Bladder` - Bladder
* `Bones, joints and articular cartilage of limbs` - Bones, joints and articular cartilage of limbs
* `Bones, joints and articular cartilage of other and unspecified sites` - Bones, joints and articular cartilage of other and unspecified sites
* `Brain` - Brain
* `Breast` - Breast
* `Bronchus and lung` - Bronchus and lung
* `Cervix uteri` - Cervix uteri
* `Colon` - Colon
* `Connective, subcutaneous and other soft tissues` - Connective, subcutaneous and other soft tissues
* `Corpus uteri` - Corpus uteri
* `Esophagus` - Esophagus
* `Eye and adnexa` - Eye and adnexa
* `Floor of mouth` - Floor of mouth
* `Gallbladder` - Gallbladder
* `Gum` - Gum
* `Heart, mediastinum, and pleura` - Heart, mediastinum, and pleura
* `Hematopoietic and reticuloendothelial systems` - Hematopoietic and reticuloendothelial systems
* `Hypopharynx` - Hypopharynx
* `Kidney` - Kidney
* `Larynx` - Larynx
* `Lip` - Lip
* `Liver and intrahepatic bile ducts` - Liver and intrahepatic bile ducts
* `Lymph nodes` - Lymph nodes
* `Meninges` - Meninges
* `Nasal cavity and middle ear` - Nasal cavity and middle ear
* `Nasopharynx` - Nasopharynx
* `Oropharynx` - Oropharynx
* `Other and ill-defined digestive organs` - Other and ill-defined digestive organs
* `Other and ill-defined sites` - Other and ill-defined sites
* `Other and ill-defined sites in lip, oral cavity and pharynx` - Other and ill-defined sites in lip, oral cavity and pharynx
* `Other and ill-defined sites within respiratory system and intrathoracic organs` - Other and ill-defined sites within respiratory system and intrathoracic organs
* `Other and unspecified female genital organs` - Other and unspecified female genital organs
* `Other and unspecified major salivary glands` - Other and unspecified major salivary glands
* `Other and unspecified male genital organs` - Other and unspecified male genital organs
* `Other and unspecified parts of biliary tract` - Other and unspecified parts of biliary tract
* `Other and unspecified parts of mouth` - Other and unspecified parts of mouth
* `Other and unspecified parts of tongue` - Other and unspecified parts of tongue
* `Other and unspecified urinary organs` - Other and unspecified urinary organs
* `Other endocrine glands and related structures` - Other endocrine glands and related structures
* `Ovary` - Ovary
* `Palate` - Palate
* `Pancreas` - Pancreas
* `Parotid gland` - Parotid gland
* `Penis` - Penis
* `Peripheral nerves and autonomic nervous system` - Peripheral nerves and autonomic nervous system
* `Placenta` - Placenta
* `Prostate gland` - Prostate gland
* `Pyriform sinus` - Pyriform sinus
* `Rectosigmoid junction` - Rectosigmoid junction
* `Rectum` - Rectum
* `Renal pelvis` - Renal pelvis
* `Retroperitoneum and peritoneum` - Retroperitoneum and peritoneum
* `Skin` - Skin
* `Small intestine` - Small intestine
* `Spinal cord, cranial nerves, and other parts of central nervous system` - Spinal cord, cranial nerves, and other parts of central nervous system
* `Stomach` - Stomach
* `Testis` - Testis
* `Thymus` - Thymus
* `Thyroid gland` - Thyroid gland
* `Tonsil` - Tonsil
* `Trachea` - Trachea
* `Ureter` - Ureter
* `Uterus, NOS` - Uterus, NOS
* `Vagina` - Vagina
* `Vulva` - Vulva
* `Unknown primary site` - Unknown primary site| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|gender|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[GenderEnum](#schemagenderenum)|false|none|* `Man` - Man
* `Woman` - Woman
* `Non-binary` - Non-binary| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|sex_at_birth|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SexAtBirthEnum](#schemasexatbirthenum)|false|none|* `Male` - Male
* `Female` - Female
* `Other` - Other
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|lost_to_followup_reason|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[LostToFollowupReasonEnum](#schemalosttofollowupreasonenum)|false|none|* `Completed study` - Completed study
* `Discharged to palliative care` - Discharged to palliative care
* `Lost contact` - Lost contact
* `Not applicable` - Not applicable
* `Unknown` - Unknown
* `Withdrew from study` - Withdrew from study| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|date_alive_after_lost_to_followup|string¦null|false|none|none| -|is_deceased|boolean¦null|false|none|none| -|lost_to_followup_after_clinical_event_identifier|string¦null|false|none|none| -|program_id|string|true|none|none| - -

DonorWithClinicalData

- - - - - - -```json -{ - "submitter_donor_id": "string", - "program_id": "string", - "lost_to_followup_after_clinical_event_identifier": "string", - "lost_to_followup_reason": "Completed study", - "date_alive_after_lost_to_followup": "string", - "is_deceased": true, - "cause_of_death": "Died of cancer", - "date_of_birth": "string", - "date_of_death": "string", - "gender": "Man", - "sex_at_birth": "Male", - "primary_site": [ - "Accessory sinuses" - ], - "primary_diagnoses": [ - { - "submitter_primary_diagnosis_id": "string", - "date_of_diagnosis": "string", - "cancer_type_code": "string", - "basis_of_diagnosis": "Clinical investigation", - "lymph_nodes_examined_status": "Cannot be determined", - "lymph_nodes_examined_method": "Imaging", - "number_lymph_nodes_positive": 32767, - "clinical_tumour_staging_system": "AJCC 8th edition", - "clinical_t_category": "T0", - "clinical_n_category": "N0", - "clinical_m_category": "M0", - "clinical_stage_group": "Stage 0", - "laterality": "Bilateral", - "specimens": [ - { - "submitter_specimen_id": "string", - "pathological_tumour_staging_system": "AJCC 8th edition", - "pathological_t_category": "T0", - "pathological_n_category": "N0", - "pathological_m_category": "M0", - "pathological_stage_group": "Stage 0", - "specimen_collection_date": "string", - "specimen_storage": "Cut slide", - "tumour_histological_type": "string", - "specimen_anatomic_location": "string", - "reference_pathology_confirmed_diagnosis": "Yes", - "reference_pathology_confirmed_tumour_presence": "Yes", - "tumour_grading_system": "FNCLCC grading system", - "tumour_grade": "Low grade", - "percent_tumour_cells_range": "0-19%", - "percent_tumour_cells_measurement_method": "Genomics", - "specimen_processing": "Cryopreservation in liquid nitrogen (dead tissue)", - "specimen_laterality": "Left", - "sample_registrations": [ - { - "submitter_sample_id": "string", - "specimen_tissue_source": "Abdominal fluid", - "tumour_normal_designation": "Normal", - "specimen_type": "Cell line - derived from normal", - "sample_type": "Amplified DNA" - } - ] - } - ], - "treatments": [ - { - "submitter_treatment_id": "string", - "is_primary_treatment": "Yes", - "treatment_start_date": "string", - "treatment_end_date": "string", - "treatment_setting": "Adjuvant", - "treatment_intent": "Curative", - "days_per_cycle": 32767, - "number_of_cycles": 32767, - "line_of_treatment": -2147483648, - "status_of_treatment": "Treatment completed as prescribed", - "treatment_type": [ - "Bone marrow transplant" - ], - "response_to_treatment_criteria_method": "RECIST 1.1", - "response_to_treatment": "Complete response", - "chemotherapies": [ - { - "chemotherapy_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "hormone_therapies": [ - { - "hormone_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "immunotherapies": [ - { - "immunotherapy_type": "Cell-based", - "drug_reference_database": "RxNorm", - "immunotherapy_drug_dose_units": "mg/m2", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "radiations": [ - { - "radiation_therapy_modality": "Megavoltage radiation therapy using photons (procedure)", - "radiation_therapy_type": "External", - "anatomical_site_irradiated": "Left Abdomen", - "radiation_therapy_fractions": 32767, - "radiation_therapy_dosage": 32767, - "radiation_boost": true, - "reference_radiation_treatment_id": "string" - } - ], - "surgeries": [ - { - "surgery_type": "Ablation", - "surgery_site": "string", - "surgery_location": "Local recurrence", - "tumour_focality": "Cannot be assessed", - "residual_tumour_classification": "Not applicable", - "margin_types_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_assessed": [ - "Circumferential resection margin" - ], - "lymphovascular_invasion": "Absent", - "perineural_invasion": "Absent", - "submitter_specimen_id": "string", - "tumour_length": 32767, - "tumour_width": 32767, - "greatest_dimension_tumour": 32767 - } - ], - "followups": [ - { - "submitter_follow_up_id": "string", - "date_of_followup": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0" - } - ] - } - ], - "followups": [ - { - "submitter_follow_up_id": "string", - "date_of_followup": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0" - } - ] - } - ], - "comorbidities": [ - { - "prior_malignancy": "Yes", - "laterality_of_prior_malignancy": "Bilateral", - "comorbidity_type_code": "string", - "comorbidity_treatment_status": "Yes", - "comorbidity_treatment": "string", - "age_at_comorbidity_diagnosis": 32767 - } - ], - "exposures": [ - { - "tobacco_smoking_status": "Current reformed smoker for <= 15 years", - "tobacco_type": [ - "Chewing Tobacco" - ], - "pack_years_smoked": 0 - } - ], - "biomarkers": [ - { - "er_status": "Cannot be determined", - "pr_status": "Cannot be determined", - "her2_ihc_status": "Cannot be determined", - "her2_ish_status": "Cannot be determined", - "hpv_ihc_status": "Cannot be determined", - "hpv_pcr_status": "Cannot be determined", - "hpv_strain": [ - "HPV16" - ], - "submitter_specimen_id": "string", - "submitter_primary_diagnosis_id": "string", - "submitter_treatment_id": "string", - "submitter_follow_up_id": "string", - "test_date": "string", - "psa_level": 32767, - "ca125": 32767, - "cea": 32767, - "er_percent_positive": 0, - "pr_percent_positive": 0 - } - ], - "followups": [ - { - "submitter_follow_up_id": "string", - "date_of_followup": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_donor_id|string|true|none|none| -|program_id|string|true|none|none| -|lost_to_followup_after_clinical_event_identifier|string¦null|false|none|none| -|lost_to_followup_reason|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[LostToFollowupReasonEnum](#schemalosttofollowupreasonenum)|false|none|* `Completed study` - Completed study
* `Discharged to palliative care` - Discharged to palliative care
* `Lost contact` - Lost contact
* `Not applicable` - Not applicable
* `Unknown` - Unknown
* `Withdrew from study` - Withdrew from study| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|date_alive_after_lost_to_followup|string¦null|false|none|none| -|is_deceased|boolean¦null|false|none|none| -|cause_of_death|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[CauseOfDeathEnum](#schemacauseofdeathenum)|false|none|* `Died of cancer` - Died of cancer
* `Died of other reasons` - Died of other reasons
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|date_of_birth|string¦null|false|none|none| -|date_of_death|string¦null|false|none|none| -|gender|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[GenderEnum](#schemagenderenum)|false|none|* `Man` - Man
* `Woman` - Woman
* `Non-binary` - Non-binary| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|sex_at_birth|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SexAtBirthEnum](#schemasexatbirthenum)|false|none|* `Male` - Male
* `Female` - Female
* `Other` - Other
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|primary_site|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[PrimarySiteEnum](#schemaprimarysiteenum)|false|none|* `Accessory sinuses` - Accessory sinuses
* `Adrenal gland` - Adrenal gland
* `Anus and anal canal` - Anus and anal canal
* `Base of tongue` - Base of tongue
* `Bladder` - Bladder
* `Bones, joints and articular cartilage of limbs` - Bones, joints and articular cartilage of limbs
* `Bones, joints and articular cartilage of other and unspecified sites` - Bones, joints and articular cartilage of other and unspecified sites
* `Brain` - Brain
* `Breast` - Breast
* `Bronchus and lung` - Bronchus and lung
* `Cervix uteri` - Cervix uteri
* `Colon` - Colon
* `Connective, subcutaneous and other soft tissues` - Connective, subcutaneous and other soft tissues
* `Corpus uteri` - Corpus uteri
* `Esophagus` - Esophagus
* `Eye and adnexa` - Eye and adnexa
* `Floor of mouth` - Floor of mouth
* `Gallbladder` - Gallbladder
* `Gum` - Gum
* `Heart, mediastinum, and pleura` - Heart, mediastinum, and pleura
* `Hematopoietic and reticuloendothelial systems` - Hematopoietic and reticuloendothelial systems
* `Hypopharynx` - Hypopharynx
* `Kidney` - Kidney
* `Larynx` - Larynx
* `Lip` - Lip
* `Liver and intrahepatic bile ducts` - Liver and intrahepatic bile ducts
* `Lymph nodes` - Lymph nodes
* `Meninges` - Meninges
* `Nasal cavity and middle ear` - Nasal cavity and middle ear
* `Nasopharynx` - Nasopharynx
* `Oropharynx` - Oropharynx
* `Other and ill-defined digestive organs` - Other and ill-defined digestive organs
* `Other and ill-defined sites` - Other and ill-defined sites
* `Other and ill-defined sites in lip, oral cavity and pharynx` - Other and ill-defined sites in lip, oral cavity and pharynx
* `Other and ill-defined sites within respiratory system and intrathoracic organs` - Other and ill-defined sites within respiratory system and intrathoracic organs
* `Other and unspecified female genital organs` - Other and unspecified female genital organs
* `Other and unspecified major salivary glands` - Other and unspecified major salivary glands
* `Other and unspecified male genital organs` - Other and unspecified male genital organs
* `Other and unspecified parts of biliary tract` - Other and unspecified parts of biliary tract
* `Other and unspecified parts of mouth` - Other and unspecified parts of mouth
* `Other and unspecified parts of tongue` - Other and unspecified parts of tongue
* `Other and unspecified urinary organs` - Other and unspecified urinary organs
* `Other endocrine glands and related structures` - Other endocrine glands and related structures
* `Ovary` - Ovary
* `Palate` - Palate
* `Pancreas` - Pancreas
* `Parotid gland` - Parotid gland
* `Penis` - Penis
* `Peripheral nerves and autonomic nervous system` - Peripheral nerves and autonomic nervous system
* `Placenta` - Placenta
* `Prostate gland` - Prostate gland
* `Pyriform sinus` - Pyriform sinus
* `Rectosigmoid junction` - Rectosigmoid junction
* `Rectum` - Rectum
* `Renal pelvis` - Renal pelvis
* `Retroperitoneum and peritoneum` - Retroperitoneum and peritoneum
* `Skin` - Skin
* `Small intestine` - Small intestine
* `Spinal cord, cranial nerves, and other parts of central nervous system` - Spinal cord, cranial nerves, and other parts of central nervous system
* `Stomach` - Stomach
* `Testis` - Testis
* `Thymus` - Thymus
* `Thyroid gland` - Thyroid gland
* `Tonsil` - Tonsil
* `Trachea` - Trachea
* `Ureter` - Ureter
* `Uterus, NOS` - Uterus, NOS
* `Vagina` - Vagina
* `Vulva` - Vulva
* `Unknown primary site` - Unknown primary site| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|primary_diagnoses|[[NestedPrimaryDiagnosis](#schemanestedprimarydiagnosis)]|false|read-only|none| -|comorbidities|[[NestedComorbidity](#schemanestedcomorbidity)]|false|read-only|none| -|exposures|[[NestedExposure](#schemanestedexposure)]|false|read-only|none| -|biomarkers|[[NestedBiomarker](#schemanestedbiomarker)]|false|read-only|none| -|followups|[[NestedFollowUp](#schemanestedfollowup)]|false|read-only|none| - -

DosageUnitsEnum

- - - - - - -```json -"mg/m2" - -``` - -* `mg/m2` - mg/m2 -* `IU/m2` - IU/m2 -* `IU/kg` - IU/kg -* `ug/m2` - ug/m2 -* `g/m2` - g/m2 -* `mg/kg` - mg/kg -* `cells/kg` - cells/kg - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `mg/m2` - mg/m2
* `IU/m2` - IU/m2
* `IU/kg` - IU/kg
* `ug/m2` - ug/m2
* `g/m2` - g/m2
* `mg/kg` - mg/kg
* `cells/kg` - cells/kg| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|mg/m2| -|*anonymous*|IU/m2| -|*anonymous*|IU/kg| -|*anonymous*|ug/m2| -|*anonymous*|g/m2| -|*anonymous*|mg/kg| -|*anonymous*|cells/kg| - -

DrugReferenceDatabaseEnum

- - - - - - -```json -"RxNorm" - -``` - -* `RxNorm` - RxNorm -* `PubChem` - PubChem -* `NCI Thesaurus` - NCI Thesaurus - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `RxNorm` - RxNorm
* `PubChem` - PubChem
* `NCI Thesaurus` - NCI Thesaurus| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|RxNorm| -|*anonymous*|PubChem| -|*anonymous*|NCI Thesaurus| - -

ErPrHpvStatusEnum

- - - - - - -```json -"Cannot be determined" - -``` - -* `Cannot be determined` - Cannot be determined -* `Negative` - Negative -* `Not applicable` - Not applicable -* `Positive` - Positive -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Cannot be determined` - Cannot be determined
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Positive` - Positive
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Cannot be determined| -|*anonymous*|Negative| -|*anonymous*|Not applicable| -|*anonymous*|Positive| -|*anonymous*|Unknown| - -

Exposure

- - - - - - -```json -{ - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "tobacco_smoking_status": "Current reformed smoker for <= 15 years", - "tobacco_type": [ - "Chewing Tobacco" - ], - "pack_years_smoked": 0, - "program_id": "string", - "submitter_donor_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|id|string(uuid)|false|none|none| -|tobacco_smoking_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TobaccoSmokingStatusEnum](#schematobaccosmokingstatusenum)|false|none|* `Current reformed smoker for <= 15 years` - Current reformed smoker for <= 15 years
* `Current reformed smoker for > 15 years` - Current reformed smoker for > 15 years
* `Current reformed smoker, duration not specified` - Current reformed smoker, duration not specified
* `Current smoker` - Current smoker
* `Lifelong non-smoker (<100 cigarettes smoked in lifetime)` - Lifelong non-smoker (<100 cigarettes smoked in lifetime)
* `Not applicable` - Not applicable
* `Smoking history not documented` - Smoking history not documented| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|tobacco_type|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TobaccoTypeEnum](#schematobaccotypeenum)|false|none|* `Chewing Tobacco` - Chewing Tobacco
* `Cigar` - Cigar
* `Cigarettes` - Cigarettes
* `Electronic cigarettes` - Electronic cigarettes
* `Not applicable` - Not applicable
* `Pipe` - Pipe
* `Roll-ups` - Roll-ups
* `Snuff` - Snuff
* `Unknown` - Unknown
* `Waterpipe` - Waterpipe| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|pack_years_smoked|number(double)¦null|false|none|none| -|program_id|string|true|none|none| -|submitter_donor_id|string|true|none|none| - -

FollowUp

- - - - - - -```json -{ - "submitter_follow_up_id": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0", - "date_of_followup": "string", - "program_id": "string", - "submitter_donor_id": "string", - "submitter_primary_diagnosis_id": "string", - "submitter_treatment_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_follow_up_id|string|true|none|none| -|disease_status_at_followup|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DiseaseStatusAtFollowupEnum](#schemadiseasestatusatfollowupenum)|false|none|* `Complete remission` - Complete remission
* `Distant progression` - Distant progression
* `Loco-regional progression` - Loco-regional progression
* `No evidence of disease` - No evidence of disease
* `Partial remission` - Partial remission
* `Progression not otherwise specified` - Progression not otherwise specified
* `Relapse or recurrence` - Relapse or recurrence
* `Stable` - Stable| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|relapse_type|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[RelapseTypeEnum](#schemarelapsetypeenum)|false|none|* `Distant recurrence/metastasis` - Distant recurrence/metastasis
* `Local recurrence` - Local recurrence
* `Local recurrence and distant metastasis` - Local recurrence and distant metastasis
* `Progression (liquid tumours)` - Progression (liquid tumours)
* `Biochemical progression` - Biochemical progression| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|date_of_relapse|string¦null|false|none|none| -|method_of_progression_status|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MethodOfProgressionStatusEnum](#schemamethodofprogressionstatusenum)|false|none|* `Imaging (procedure)` - Imaging (procedure)
* `Histopathology test (procedure)` - Histopathology test (procedure)
* `Assessment of symptom control (procedure)` - Assessment of symptom control (procedure)
* `Physical examination procedure (procedure)` - Physical examination procedure (procedure)
* `Tumor marker measurement (procedure)` - Tumor marker measurement (procedure)
* `Laboratory data interpretation (procedure)` - Laboratory data interpretation (procedure)| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|anatomic_site_progression_or_recurrence|[string]¦null|false|none|none| -|recurrence_tumour_staging_system|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StagingSystemEnum](#schemastagingsystemenum)|false|none|* `AJCC 8th edition` - AJCC 8th edition
* `AJCC 7th edition` - AJCC 7th edition
* `AJCC 6th edition` - AJCC 6th edition
* `Ann Arbor staging system` - Ann Arbor staging system
* `Binet staging system` - Binet staging system
* `Durie-Salmon staging system` - Durie-Salmon staging system
* `FIGO staging system` - FIGO staging system
* `International Neuroblastoma Risk Group Staging System` - International Neuroblastoma Risk Group Staging System
* `International Neuroblastoma Staging System` - International Neuroblastoma Staging System
* `Lugano staging system` - Lugano staging system
* `Rai staging system` - Rai staging system
* `Revised International staging system (RISS)` - Revised International staging system (RISS)
* `SEER staging system` - SEER staging system
* `St Jude staging system` - St Jude staging system| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|recurrence_t_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TCategoryEnum](#schematcategoryenum)|false|none|* `T0` - T0
* `T1` - T1
* `T1a` - T1a
* `T1a1` - T1a1
* `T1a2` - T1a2
* `T1a(s)` - T1a(s)
* `T1a(m)` - T1a(m)
* `T1b` - T1b
* `T1b1` - T1b1
* `T1b2` - T1b2
* `T1b(s)` - T1b(s)
* `T1b(m)` - T1b(m)
* `T1c` - T1c
* `T1d` - T1d
* `T1mi` - T1mi
* `T2` - T2
* `T2(s)` - T2(s)
* `T2(m)` - T2(m)
* `T2a` - T2a
* `T2a1` - T2a1
* `T2a2` - T2a2
* `T2b` - T2b
* `T2c` - T2c
* `T2d` - T2d
* `T3` - T3
* `T3(s)` - T3(s)
* `T3(m)` - T3(m)
* `T3a` - T3a
* `T3b` - T3b
* `T3c` - T3c
* `T3d` - T3d
* `T3e` - T3e
* `T4` - T4
* `T4a` - T4a
* `T4a(s)` - T4a(s)
* `T4a(m)` - T4a(m)
* `T4b` - T4b
* `T4b(s)` - T4b(s)
* `T4b(m)` - T4b(m)
* `T4c` - T4c
* `T4d` - T4d
* `T4e` - T4e
* `Ta` - Ta
* `Tis` - Tis
* `Tis(DCIS)` - Tis(DCIS)
* `Tis(LAMN)` - Tis(LAMN)
* `Tis(LCIS)` - Tis(LCIS)
* `Tis(Paget)` - Tis(Paget)
* `Tis(Paget's)` - Tis(Paget's)
* `Tis pu` - Tis pu
* `Tis pd` - Tis pd
* `TX` - TX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|recurrence_n_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NCategoryEnum](#schemancategoryenum)|false|none|* `N0` - N0
* `N0a` - N0a
* `N0a (biopsy)` - N0a (biopsy)
* `N0b` - N0b
* `N0b (no biopsy)` - N0b (no biopsy)
* `N0(i+)` - N0(i+)
* `N0(i-)` - N0(i-)
* `N0(mol+)` - N0(mol+)
* `N0(mol-)` - N0(mol-)
* `N1` - N1
* `N1a` - N1a
* `N1a(sn)` - N1a(sn)
* `N1b` - N1b
* `N1c` - N1c
* `N1mi` - N1mi
* `N2` - N2
* `N2a` - N2a
* `N2b` - N2b
* `N2c` - N2c
* `N2mi` - N2mi
* `N3` - N3
* `N3a` - N3a
* `N3b` - N3b
* `N3c` - N3c
* `N4` - N4
* `NX` - NX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|recurrence_m_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MCategoryEnum](#schemamcategoryenum)|false|none|* `M0` - M0
* `M0(i+)` - M0(i+)
* `M1` - M1
* `M1a` - M1a
* `M1a(0)` - M1a(0)
* `M1a(1)` - M1a(1)
* `M1b` - M1b
* `M1b(0)` - M1b(0)
* `M1b(1)` - M1b(1)
* `M1c` - M1c
* `M1c(0)` - M1c(0)
* `M1c(1)` - M1c(1)
* `M1d` - M1d
* `M1d(0)` - M1d(0)
* `M1d(1)` - M1d(1)
* `M1e` - M1e
* `MX` - MX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|recurrence_stage_group|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StageGroupEnum](#schemastagegroupenum)|false|none|* `Stage 0` - Stage 0
* `Stage 0a` - Stage 0a
* `Stage 0is` - Stage 0is
* `Stage 1` - Stage 1
* `Stage 1A` - Stage 1A
* `Stage 1B` - Stage 1B
* `Stage A` - Stage A
* `Stage B` - Stage B
* `Stage C` - Stage C
* `Stage I` - Stage I
* `Stage IA` - Stage IA
* `Stage IA1` - Stage IA1
* `Stage IA2` - Stage IA2
* `Stage IA3` - Stage IA3
* `Stage IAB` - Stage IAB
* `Stage IAE` - Stage IAE
* `Stage IAES` - Stage IAES
* `Stage IAS` - Stage IAS
* `Stage IB` - Stage IB
* `Stage IB1` - Stage IB1
* `Stage IB2` - Stage IB2
* `Stage IBE` - Stage IBE
* `Stage IBES` - Stage IBES
* `Stage IBS` - Stage IBS
* `Stage IC` - Stage IC
* `Stage IE` - Stage IE
* `Stage IEA` - Stage IEA
* `Stage IEB` - Stage IEB
* `Stage IES` - Stage IES
* `Stage II` - Stage II
* `Stage II bulky` - Stage II bulky
* `Stage IIA` - Stage IIA
* `Stage IIA1` - Stage IIA1
* `Stage IIA2` - Stage IIA2
* `Stage IIAE` - Stage IIAE
* `Stage IIAES` - Stage IIAES
* `Stage IIAS` - Stage IIAS
* `Stage IIB` - Stage IIB
* `Stage IIBE` - Stage IIBE
* `Stage IIBES` - Stage IIBES
* `Stage IIBS` - Stage IIBS
* `Stage IIC` - Stage IIC
* `Stage IIE` - Stage IIE
* `Stage IIEA` - Stage IIEA
* `Stage IIEB` - Stage IIEB
* `Stage IIES` - Stage IIES
* `Stage III` - Stage III
* `Stage IIIA` - Stage IIIA
* `Stage IIIA1` - Stage IIIA1
* `Stage IIIA2` - Stage IIIA2
* `Stage IIIAE` - Stage IIIAE
* `Stage IIIAES` - Stage IIIAES
* `Stage IIIAS` - Stage IIIAS
* `Stage IIIB` - Stage IIIB
* `Stage IIIBE` - Stage IIIBE
* `Stage IIIBES` - Stage IIIBES
* `Stage IIIBS` - Stage IIIBS
* `Stage IIIC` - Stage IIIC
* `Stage IIIC1` - Stage IIIC1
* `Stage IIIC2` - Stage IIIC2
* `Stage IIID` - Stage IIID
* `Stage IIIE` - Stage IIIE
* `Stage IIIES` - Stage IIIES
* `Stage IIIS` - Stage IIIS
* `Stage IIS` - Stage IIS
* `Stage IS` - Stage IS
* `Stage IV` - Stage IV
* `Stage IVA` - Stage IVA
* `Stage IVA1` - Stage IVA1
* `Stage IVA2` - Stage IVA2
* `Stage IVAE` - Stage IVAE
* `Stage IVAES` - Stage IVAES
* `Stage IVAS` - Stage IVAS
* `Stage IVB` - Stage IVB
* `Stage IVBE` - Stage IVBE
* `Stage IVBES` - Stage IVBES
* `Stage IVBS` - Stage IVBS
* `Stage IVC` - Stage IVC
* `Stage IVE` - Stage IVE
* `Stage IVES` - Stage IVES
* `Stage IVS` - Stage IVS
* `In situ` - In situ
* `Localized` - Localized
* `Regionalized` - Regionalized
* `Distant` - Distant
* `Stage L1` - Stage L1
* `Stage L2` - Stage L2
* `Stage M` - Stage M
* `Stage Ms` - Stage Ms
* `Stage 2A` - Stage 2A
* `Stage 2B` - Stage 2B
* `Stage 3` - Stage 3
* `Stage 4` - Stage 4
* `Stage 4S` - Stage 4S
* `Occult Carcinoma` - Occult Carcinoma| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|date_of_followup|string¦null|false|none|none| -|program_id|string|true|none|none| -|submitter_donor_id|string|true|none|none| -|submitter_primary_diagnosis_id|string¦null|false|none|none| -|submitter_treatment_id|string¦null|false|none|none| - -

GenderEnum

- - - - - - -```json -"Man" - -``` - -* `Man` - Man -* `Woman` - Woman -* `Non-binary` - Non-binary - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Man` - Man
* `Woman` - Woman
* `Non-binary` - Non-binary| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Man| -|*anonymous*|Woman| -|*anonymous*|Non-binary| - -

Her2StatusEnum

- - - - - - -```json -"Cannot be determined" - -``` - -* `Cannot be determined` - Cannot be determined -* `Equivocal` - Equivocal -* `Positive` - Positive -* `Negative` - Negative -* `Not applicable` - Not applicable -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Cannot be determined` - Cannot be determined
* `Equivocal` - Equivocal
* `Positive` - Positive
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Cannot be determined| -|*anonymous*|Equivocal| -|*anonymous*|Positive| -|*anonymous*|Negative| -|*anonymous*|Not applicable| -|*anonymous*|Unknown| - -

HormoneTherapy

- - - - - - -```json -{ - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "hormone_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|id|string(uuid)|false|none|none| -|hormone_drug_dose_units|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DosageUnitsEnum](#schemadosageunitsenum)|false|none|* `mg/m2` - mg/m2
* `IU/m2` - IU/m2
* `IU/kg` - IU/kg
* `ug/m2` - ug/m2
* `g/m2` - g/m2
* `mg/kg` - mg/kg
* `cells/kg` - cells/kg| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|drug_reference_database|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DrugReferenceDatabaseEnum](#schemadrugreferencedatabaseenum)|false|none|* `RxNorm` - RxNorm
* `PubChem` - PubChem
* `NCI Thesaurus` - NCI Thesaurus| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|drug_name|string¦null|false|none|none| -|drug_reference_identifier|string¦null|false|none|none| -|prescribed_cumulative_drug_dose|integer¦null|false|none|none| -|actual_cumulative_drug_dose|integer¦null|false|none|none| -|program_id|string|true|none|none| -|submitter_donor_id|string|true|none|none| -|submitter_treatment_id|string|true|none|none| - -

HpvStrainEnum

- - - - - - -```json -"HPV16" - -``` - -* `HPV16` - HPV16 -* `HPV18` - HPV18 -* `HPV31` - HPV31 -* `HPV33` - HPV33 -* `HPV35` - HPV35 -* `HPV39` - HPV39 -* `HPV45` - HPV45 -* `HPV51` - HPV51 -* `HPV52` - HPV52 -* `HPV56` - HPV56 -* `HPV58` - HPV58 -* `HPV59` - HPV59 -* `HPV66` - HPV66 -* `HPV68` - HPV68 -* `HPV73` - HPV73 - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `HPV16` - HPV16
* `HPV18` - HPV18
* `HPV31` - HPV31
* `HPV33` - HPV33
* `HPV35` - HPV35
* `HPV39` - HPV39
* `HPV45` - HPV45
* `HPV51` - HPV51
* `HPV52` - HPV52
* `HPV56` - HPV56
* `HPV58` - HPV58
* `HPV59` - HPV59
* `HPV66` - HPV66
* `HPV68` - HPV68
* `HPV73` - HPV73| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|HPV16| -|*anonymous*|HPV18| -|*anonymous*|HPV31| -|*anonymous*|HPV33| -|*anonymous*|HPV35| -|*anonymous*|HPV39| -|*anonymous*|HPV45| -|*anonymous*|HPV51| -|*anonymous*|HPV52| -|*anonymous*|HPV56| -|*anonymous*|HPV58| -|*anonymous*|HPV59| -|*anonymous*|HPV66| -|*anonymous*|HPV68| -|*anonymous*|HPV73| - -

Immunotherapy

- - - - - - -```json -{ - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "immunotherapy_type": "Cell-based", - "drug_reference_database": "RxNorm", - "immunotherapy_drug_dose_units": "mg/m2", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|id|string(uuid)|false|none|none| -|immunotherapy_type|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ImmunotherapyTypeEnum](#schemaimmunotherapytypeenum)|false|none|* `Cell-based` - Cell-based
* `Immune checkpoint inhibitors` - Immune checkpoint inhibitors
* `Monoclonal antibodies other than immune checkpoint inhibitors` - Monoclonal antibodies other than immune checkpoint inhibitors
* `Other immunomodulatory substances` - Other immunomodulatory substances| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|drug_reference_database|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DrugReferenceDatabaseEnum](#schemadrugreferencedatabaseenum)|false|none|* `RxNorm` - RxNorm
* `PubChem` - PubChem
* `NCI Thesaurus` - NCI Thesaurus| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|immunotherapy_drug_dose_units|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DosageUnitsEnum](#schemadosageunitsenum)|false|none|* `mg/m2` - mg/m2
* `IU/m2` - IU/m2
* `IU/kg` - IU/kg
* `ug/m2` - ug/m2
* `g/m2` - g/m2
* `mg/kg` - mg/kg
* `cells/kg` - cells/kg| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|drug_name|string¦null|false|none|none| -|drug_reference_identifier|string¦null|false|none|none| -|prescribed_cumulative_drug_dose|integer¦null|false|none|none| -|actual_cumulative_drug_dose|integer¦null|false|none|none| -|program_id|string|true|none|none| -|submitter_donor_id|string|true|none|none| -|submitter_treatment_id|string|true|none|none| - -

ImmunotherapyTypeEnum

- - - - - - -```json -"Cell-based" - -``` - -* `Cell-based` - Cell-based -* `Immune checkpoint inhibitors` - Immune checkpoint inhibitors -* `Monoclonal antibodies other than immune checkpoint inhibitors` - Monoclonal antibodies other than immune checkpoint inhibitors -* `Other immunomodulatory substances` - Other immunomodulatory substances - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Cell-based` - Cell-based
* `Immune checkpoint inhibitors` - Immune checkpoint inhibitors
* `Monoclonal antibodies other than immune checkpoint inhibitors` - Monoclonal antibodies other than immune checkpoint inhibitors
* `Other immunomodulatory substances` - Other immunomodulatory substances| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Cell-based| -|*anonymous*|Immune checkpoint inhibitors| -|*anonymous*|Monoclonal antibodies other than immune checkpoint inhibitors| -|*anonymous*|Other immunomodulatory substances| - -

LateralityEnum

- - - - - - -```json -"Bilateral" - -``` - -* `Bilateral` - Bilateral -* `Left` - Left -* `Midline` - Midline -* `Not a paired site` - Not a paired site -* `Right` - Right -* `Unilateral, side not specified` - Unilateral, side not specified -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Bilateral` - Bilateral
* `Left` - Left
* `Midline` - Midline
* `Not a paired site` - Not a paired site
* `Right` - Right
* `Unilateral, side not specified` - Unilateral, side not specified
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Bilateral| -|*anonymous*|Left| -|*anonymous*|Midline| -|*anonymous*|Not a paired site| -|*anonymous*|Right| -|*anonymous*|Unilateral, side not specified| -|*anonymous*|Unknown| - -

LateralityOfPriorMalignancyEnum

- - - - - - -```json -"Bilateral" - -``` - -* `Bilateral` - Bilateral -* `Left` - Left -* `Midline` - Midline -* `Not applicable` - Not applicable -* `Right` - Right -* `Unilateral, Side not specified` - Unilateral, Side not specified -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Bilateral` - Bilateral
* `Left` - Left
* `Midline` - Midline
* `Not applicable` - Not applicable
* `Right` - Right
* `Unilateral, Side not specified` - Unilateral, Side not specified
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Bilateral| -|*anonymous*|Left| -|*anonymous*|Midline| -|*anonymous*|Not applicable| -|*anonymous*|Right| -|*anonymous*|Unilateral, Side not specified| -|*anonymous*|Unknown| - -

LostToFollowupReasonEnum

- - - - - - -```json -"Completed study" - -``` - -* `Completed study` - Completed study -* `Discharged to palliative care` - Discharged to palliative care -* `Lost contact` - Lost contact -* `Not applicable` - Not applicable -* `Unknown` - Unknown -* `Withdrew from study` - Withdrew from study - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Completed study` - Completed study
* `Discharged to palliative care` - Discharged to palliative care
* `Lost contact` - Lost contact
* `Not applicable` - Not applicable
* `Unknown` - Unknown
* `Withdrew from study` - Withdrew from study| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Completed study| -|*anonymous*|Discharged to palliative care| -|*anonymous*|Lost contact| -|*anonymous*|Not applicable| -|*anonymous*|Unknown| -|*anonymous*|Withdrew from study| - -

LymphNodesExaminedMethodEnum

- - - - - - -```json -"Imaging" - -``` - -* `Imaging` - Imaging -* `Lymph node dissection/pathological exam` - Lymph node dissection/pathological exam -* `Physical palpation of patient` - Physical palpation of patient - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Imaging` - Imaging
* `Lymph node dissection/pathological exam` - Lymph node dissection/pathological exam
* `Physical palpation of patient` - Physical palpation of patient| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Imaging| -|*anonymous*|Lymph node dissection/pathological exam| -|*anonymous*|Physical palpation of patient| - -

LymphNodesExaminedStatusEnum

- - - - - - -```json -"Cannot be determined" - -``` - -* `Cannot be determined` - Cannot be determined -* `No` - No -* `No lymph nodes found in resected specimen` - No lymph nodes found in resected specimen -* `Not applicable` - Not applicable -* `Yes` - Yes - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Cannot be determined` - Cannot be determined
* `No` - No
* `No lymph nodes found in resected specimen` - No lymph nodes found in resected specimen
* `Not applicable` - Not applicable
* `Yes` - Yes| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Cannot be determined| -|*anonymous*|No| -|*anonymous*|No lymph nodes found in resected specimen| -|*anonymous*|Not applicable| -|*anonymous*|Yes| - -

LymphovascularInvasionEnum

- - - - - - -```json -"Absent" - -``` - -* `Absent` - Absent -* `Both lymphatic and small vessel and venous (large vessel) invasion` - Both lymphatic and small vessel and venous (large vessel) invasion -* `Lymphatic and small vessel invasion only` - Lymphatic and small vessel invasion only -* `Not applicable` - Not applicable -* `Present` - Present -* `Venous (large vessel) invasion only` - Venous (large vessel) invasion only -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Absent` - Absent
* `Both lymphatic and small vessel and venous (large vessel) invasion` - Both lymphatic and small vessel and venous (large vessel) invasion
* `Lymphatic and small vessel invasion only` - Lymphatic and small vessel invasion only
* `Not applicable` - Not applicable
* `Present` - Present
* `Venous (large vessel) invasion only` - Venous (large vessel) invasion only
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Absent| -|*anonymous*|Both lymphatic and small vessel and venous (large vessel) invasion| -|*anonymous*|Lymphatic and small vessel invasion only| -|*anonymous*|Not applicable| -|*anonymous*|Present| -|*anonymous*|Venous (large vessel) invasion only| -|*anonymous*|Unknown| - -

MCategoryEnum

- - - - - - -```json -"M0" - -``` - -* `M0` - M0 -* `M0(i+)` - M0(i+) -* `M1` - M1 -* `M1a` - M1a -* `M1a(0)` - M1a(0) -* `M1a(1)` - M1a(1) -* `M1b` - M1b -* `M1b(0)` - M1b(0) -* `M1b(1)` - M1b(1) -* `M1c` - M1c -* `M1c(0)` - M1c(0) -* `M1c(1)` - M1c(1) -* `M1d` - M1d -* `M1d(0)` - M1d(0) -* `M1d(1)` - M1d(1) -* `M1e` - M1e -* `MX` - MX - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `M0` - M0
* `M0(i+)` - M0(i+)
* `M1` - M1
* `M1a` - M1a
* `M1a(0)` - M1a(0)
* `M1a(1)` - M1a(1)
* `M1b` - M1b
* `M1b(0)` - M1b(0)
* `M1b(1)` - M1b(1)
* `M1c` - M1c
* `M1c(0)` - M1c(0)
* `M1c(1)` - M1c(1)
* `M1d` - M1d
* `M1d(0)` - M1d(0)
* `M1d(1)` - M1d(1)
* `M1e` - M1e
* `MX` - MX| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|M0| -|*anonymous*|M0(i+)| -|*anonymous*|M1| -|*anonymous*|M1a| -|*anonymous*|M1a(0)| -|*anonymous*|M1a(1)| -|*anonymous*|M1b| -|*anonymous*|M1b(0)| -|*anonymous*|M1b(1)| -|*anonymous*|M1c| -|*anonymous*|M1c(0)| -|*anonymous*|M1c(1)| -|*anonymous*|M1d| -|*anonymous*|M1d(0)| -|*anonymous*|M1d(1)| -|*anonymous*|M1e| -|*anonymous*|MX| - -

MarginTypesEnum

- - - - - - -```json -"Circumferential resection margin" - -``` - -* `Circumferential resection margin` - Circumferential resection margin -* `Common bile duct margin` - Common bile duct margin -* `Distal margin` - Distal margin -* `Not applicable` - Not applicable -* `Proximal margin` - Proximal margin -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Circumferential resection margin` - Circumferential resection margin
* `Common bile duct margin` - Common bile duct margin
* `Distal margin` - Distal margin
* `Not applicable` - Not applicable
* `Proximal margin` - Proximal margin
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Circumferential resection margin| -|*anonymous*|Common bile duct margin| -|*anonymous*|Distal margin| -|*anonymous*|Not applicable| -|*anonymous*|Proximal margin| -|*anonymous*|Unknown| - -

MethodOfProgressionStatusEnum

- - - - - - -```json -"Imaging (procedure)" - -``` - -* `Imaging (procedure)` - Imaging (procedure) -* `Histopathology test (procedure)` - Histopathology test (procedure) -* `Assessment of symptom control (procedure)` - Assessment of symptom control (procedure) -* `Physical examination procedure (procedure)` - Physical examination procedure (procedure) -* `Tumor marker measurement (procedure)` - Tumor marker measurement (procedure) -* `Laboratory data interpretation (procedure)` - Laboratory data interpretation (procedure) - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Imaging (procedure)` - Imaging (procedure)
* `Histopathology test (procedure)` - Histopathology test (procedure)
* `Assessment of symptom control (procedure)` - Assessment of symptom control (procedure)
* `Physical examination procedure (procedure)` - Physical examination procedure (procedure)
* `Tumor marker measurement (procedure)` - Tumor marker measurement (procedure)
* `Laboratory data interpretation (procedure)` - Laboratory data interpretation (procedure)| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Imaging (procedure)| -|*anonymous*|Histopathology test (procedure)| -|*anonymous*|Assessment of symptom control (procedure)| -|*anonymous*|Physical examination procedure (procedure)| -|*anonymous*|Tumor marker measurement (procedure)| -|*anonymous*|Laboratory data interpretation (procedure)| - -

NCategoryEnum

- - - - - - -```json -"N0" - -``` - -* `N0` - N0 -* `N0a` - N0a -* `N0a (biopsy)` - N0a (biopsy) -* `N0b` - N0b -* `N0b (no biopsy)` - N0b (no biopsy) -* `N0(i+)` - N0(i+) -* `N0(i-)` - N0(i-) -* `N0(mol+)` - N0(mol+) -* `N0(mol-)` - N0(mol-) -* `N1` - N1 -* `N1a` - N1a -* `N1a(sn)` - N1a(sn) -* `N1b` - N1b -* `N1c` - N1c -* `N1mi` - N1mi -* `N2` - N2 -* `N2a` - N2a -* `N2b` - N2b -* `N2c` - N2c -* `N2mi` - N2mi -* `N3` - N3 -* `N3a` - N3a -* `N3b` - N3b -* `N3c` - N3c -* `N4` - N4 -* `NX` - NX - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `N0` - N0
* `N0a` - N0a
* `N0a (biopsy)` - N0a (biopsy)
* `N0b` - N0b
* `N0b (no biopsy)` - N0b (no biopsy)
* `N0(i+)` - N0(i+)
* `N0(i-)` - N0(i-)
* `N0(mol+)` - N0(mol+)
* `N0(mol-)` - N0(mol-)
* `N1` - N1
* `N1a` - N1a
* `N1a(sn)` - N1a(sn)
* `N1b` - N1b
* `N1c` - N1c
* `N1mi` - N1mi
* `N2` - N2
* `N2a` - N2a
* `N2b` - N2b
* `N2c` - N2c
* `N2mi` - N2mi
* `N3` - N3
* `N3a` - N3a
* `N3b` - N3b
* `N3c` - N3c
* `N4` - N4
* `NX` - NX| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|N0| -|*anonymous*|N0a| -|*anonymous*|N0a (biopsy)| -|*anonymous*|N0b| -|*anonymous*|N0b (no biopsy)| -|*anonymous*|N0(i+)| -|*anonymous*|N0(i-)| -|*anonymous*|N0(mol+)| -|*anonymous*|N0(mol-)| -|*anonymous*|N1| -|*anonymous*|N1a| -|*anonymous*|N1a(sn)| -|*anonymous*|N1b| -|*anonymous*|N1c| -|*anonymous*|N1mi| -|*anonymous*|N2| -|*anonymous*|N2a| -|*anonymous*|N2b| -|*anonymous*|N2c| -|*anonymous*|N2mi| -|*anonymous*|N3| -|*anonymous*|N3a| -|*anonymous*|N3b| -|*anonymous*|N3c| -|*anonymous*|N4| -|*anonymous*|NX| - -

NestedBiomarker

- - - - - - -```json -{ - "er_status": "Cannot be determined", - "pr_status": "Cannot be determined", - "her2_ihc_status": "Cannot be determined", - "her2_ish_status": "Cannot be determined", - "hpv_ihc_status": "Cannot be determined", - "hpv_pcr_status": "Cannot be determined", - "hpv_strain": [ - "HPV16" - ], - "submitter_specimen_id": "string", - "submitter_primary_diagnosis_id": "string", - "submitter_treatment_id": "string", - "submitter_follow_up_id": "string", - "test_date": "string", - "psa_level": 32767, - "ca125": 32767, - "cea": 32767, - "er_percent_positive": 0, - "pr_percent_positive": 0 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|er_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ErPrHpvStatusEnum](#schemaerprhpvstatusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Positive` - Positive
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|pr_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ErPrHpvStatusEnum](#schemaerprhpvstatusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Positive` - Positive
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|her2_ihc_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[Her2StatusEnum](#schemaher2statusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `Equivocal` - Equivocal
* `Positive` - Positive
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|her2_ish_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[Her2StatusEnum](#schemaher2statusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `Equivocal` - Equivocal
* `Positive` - Positive
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|hpv_ihc_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ErPrHpvStatusEnum](#schemaerprhpvstatusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Positive` - Positive
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|hpv_pcr_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ErPrHpvStatusEnum](#schemaerprhpvstatusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `Negative` - Negative
* `Not applicable` - Not applicable
* `Positive` - Positive
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|hpv_strain|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[HpvStrainEnum](#schemahpvstrainenum)|false|none|* `HPV16` - HPV16
* `HPV18` - HPV18
* `HPV31` - HPV31
* `HPV33` - HPV33
* `HPV35` - HPV35
* `HPV39` - HPV39
* `HPV45` - HPV45
* `HPV51` - HPV51
* `HPV52` - HPV52
* `HPV56` - HPV56
* `HPV58` - HPV58
* `HPV59` - HPV59
* `HPV66` - HPV66
* `HPV68` - HPV68
* `HPV73` - HPV73| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_specimen_id|string¦null|false|none|none| -|submitter_primary_diagnosis_id|string¦null|false|none|none| -|submitter_treatment_id|string¦null|false|none|none| -|submitter_follow_up_id|string¦null|false|none|none| -|test_date|string¦null|false|none|none| -|psa_level|integer¦null|false|none|none| -|ca125|integer¦null|false|none|none| -|cea|integer¦null|false|none|none| -|er_percent_positive|number(double)¦null|false|none|none| -|pr_percent_positive|number(double)¦null|false|none|none| - -

NestedChemotherapy

- - - - - - -```json -{ - "chemotherapy_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|chemotherapy_drug_dose_units|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DosageUnitsEnum](#schemadosageunitsenum)|false|none|* `mg/m2` - mg/m2
* `IU/m2` - IU/m2
* `IU/kg` - IU/kg
* `ug/m2` - ug/m2
* `g/m2` - g/m2
* `mg/kg` - mg/kg
* `cells/kg` - cells/kg| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|drug_reference_database|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DrugReferenceDatabaseEnum](#schemadrugreferencedatabaseenum)|false|none|* `RxNorm` - RxNorm
* `PubChem` - PubChem
* `NCI Thesaurus` - NCI Thesaurus| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|drug_name|string¦null|false|none|none| -|drug_reference_identifier|string¦null|false|none|none| -|prescribed_cumulative_drug_dose|integer¦null|false|none|none| -|actual_cumulative_drug_dose|integer¦null|false|none|none| - -

NestedComorbidity

- - - - - - -```json -{ - "prior_malignancy": "Yes", - "laterality_of_prior_malignancy": "Bilateral", - "comorbidity_type_code": "string", - "comorbidity_treatment_status": "Yes", - "comorbidity_treatment": "string", - "age_at_comorbidity_diagnosis": 32767 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|prior_malignancy|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[uBooleanEnum](#schemaubooleanenum)|false|none|* `Yes` - Yes
* `No` - No
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|laterality_of_prior_malignancy|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[LateralityOfPriorMalignancyEnum](#schemalateralityofpriormalignancyenum)|false|none|* `Bilateral` - Bilateral
* `Left` - Left
* `Midline` - Midline
* `Not applicable` - Not applicable
* `Right` - Right
* `Unilateral, Side not specified` - Unilateral, Side not specified
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|comorbidity_type_code|string¦null|false|none|none| -|comorbidity_treatment_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[uBooleanEnum](#schemaubooleanenum)|false|none|* `Yes` - Yes
* `No` - No
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|comorbidity_treatment|string¦null|false|none|none| -|age_at_comorbidity_diagnosis|integer¦null|false|none|none| - -

NestedExposure

- - - - - - -```json -{ - "tobacco_smoking_status": "Current reformed smoker for <= 15 years", - "tobacco_type": [ - "Chewing Tobacco" - ], - "pack_years_smoked": 0 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|tobacco_smoking_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TobaccoSmokingStatusEnum](#schematobaccosmokingstatusenum)|false|none|* `Current reformed smoker for <= 15 years` - Current reformed smoker for <= 15 years
* `Current reformed smoker for > 15 years` - Current reformed smoker for > 15 years
* `Current reformed smoker, duration not specified` - Current reformed smoker, duration not specified
* `Current smoker` - Current smoker
* `Lifelong non-smoker (<100 cigarettes smoked in lifetime)` - Lifelong non-smoker (<100 cigarettes smoked in lifetime)
* `Not applicable` - Not applicable
* `Smoking history not documented` - Smoking history not documented| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|tobacco_type|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TobaccoTypeEnum](#schematobaccotypeenum)|false|none|* `Chewing Tobacco` - Chewing Tobacco
* `Cigar` - Cigar
* `Cigarettes` - Cigarettes
* `Electronic cigarettes` - Electronic cigarettes
* `Not applicable` - Not applicable
* `Pipe` - Pipe
* `Roll-ups` - Roll-ups
* `Snuff` - Snuff
* `Unknown` - Unknown
* `Waterpipe` - Waterpipe| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|pack_years_smoked|number(double)¦null|false|none|none| - -

NestedFollowUp

- - - - - - -```json -{ - "submitter_follow_up_id": "string", - "date_of_followup": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_follow_up_id|string|true|none|none| -|date_of_followup|string¦null|false|none|none| -|disease_status_at_followup|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DiseaseStatusAtFollowupEnum](#schemadiseasestatusatfollowupenum)|false|none|* `Complete remission` - Complete remission
* `Distant progression` - Distant progression
* `Loco-regional progression` - Loco-regional progression
* `No evidence of disease` - No evidence of disease
* `Partial remission` - Partial remission
* `Progression not otherwise specified` - Progression not otherwise specified
* `Relapse or recurrence` - Relapse or recurrence
* `Stable` - Stable| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|relapse_type|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[RelapseTypeEnum](#schemarelapsetypeenum)|false|none|* `Distant recurrence/metastasis` - Distant recurrence/metastasis
* `Local recurrence` - Local recurrence
* `Local recurrence and distant metastasis` - Local recurrence and distant metastasis
* `Progression (liquid tumours)` - Progression (liquid tumours)
* `Biochemical progression` - Biochemical progression| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|date_of_relapse|string¦null|false|none|none| -|method_of_progression_status|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MethodOfProgressionStatusEnum](#schemamethodofprogressionstatusenum)|false|none|* `Imaging (procedure)` - Imaging (procedure)
* `Histopathology test (procedure)` - Histopathology test (procedure)
* `Assessment of symptom control (procedure)` - Assessment of symptom control (procedure)
* `Physical examination procedure (procedure)` - Physical examination procedure (procedure)
* `Tumor marker measurement (procedure)` - Tumor marker measurement (procedure)
* `Laboratory data interpretation (procedure)` - Laboratory data interpretation (procedure)| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|anatomic_site_progression_or_recurrence|[string]¦null|false|none|none| -|recurrence_tumour_staging_system|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StagingSystemEnum](#schemastagingsystemenum)|false|none|* `AJCC 8th edition` - AJCC 8th edition
* `AJCC 7th edition` - AJCC 7th edition
* `AJCC 6th edition` - AJCC 6th edition
* `Ann Arbor staging system` - Ann Arbor staging system
* `Binet staging system` - Binet staging system
* `Durie-Salmon staging system` - Durie-Salmon staging system
* `FIGO staging system` - FIGO staging system
* `International Neuroblastoma Risk Group Staging System` - International Neuroblastoma Risk Group Staging System
* `International Neuroblastoma Staging System` - International Neuroblastoma Staging System
* `Lugano staging system` - Lugano staging system
* `Rai staging system` - Rai staging system
* `Revised International staging system (RISS)` - Revised International staging system (RISS)
* `SEER staging system` - SEER staging system
* `St Jude staging system` - St Jude staging system| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|recurrence_t_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TCategoryEnum](#schematcategoryenum)|false|none|* `T0` - T0
* `T1` - T1
* `T1a` - T1a
* `T1a1` - T1a1
* `T1a2` - T1a2
* `T1a(s)` - T1a(s)
* `T1a(m)` - T1a(m)
* `T1b` - T1b
* `T1b1` - T1b1
* `T1b2` - T1b2
* `T1b(s)` - T1b(s)
* `T1b(m)` - T1b(m)
* `T1c` - T1c
* `T1d` - T1d
* `T1mi` - T1mi
* `T2` - T2
* `T2(s)` - T2(s)
* `T2(m)` - T2(m)
* `T2a` - T2a
* `T2a1` - T2a1
* `T2a2` - T2a2
* `T2b` - T2b
* `T2c` - T2c
* `T2d` - T2d
* `T3` - T3
* `T3(s)` - T3(s)
* `T3(m)` - T3(m)
* `T3a` - T3a
* `T3b` - T3b
* `T3c` - T3c
* `T3d` - T3d
* `T3e` - T3e
* `T4` - T4
* `T4a` - T4a
* `T4a(s)` - T4a(s)
* `T4a(m)` - T4a(m)
* `T4b` - T4b
* `T4b(s)` - T4b(s)
* `T4b(m)` - T4b(m)
* `T4c` - T4c
* `T4d` - T4d
* `T4e` - T4e
* `Ta` - Ta
* `Tis` - Tis
* `Tis(DCIS)` - Tis(DCIS)
* `Tis(LAMN)` - Tis(LAMN)
* `Tis(LCIS)` - Tis(LCIS)
* `Tis(Paget)` - Tis(Paget)
* `Tis(Paget's)` - Tis(Paget's)
* `Tis pu` - Tis pu
* `Tis pd` - Tis pd
* `TX` - TX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|recurrence_n_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NCategoryEnum](#schemancategoryenum)|false|none|* `N0` - N0
* `N0a` - N0a
* `N0a (biopsy)` - N0a (biopsy)
* `N0b` - N0b
* `N0b (no biopsy)` - N0b (no biopsy)
* `N0(i+)` - N0(i+)
* `N0(i-)` - N0(i-)
* `N0(mol+)` - N0(mol+)
* `N0(mol-)` - N0(mol-)
* `N1` - N1
* `N1a` - N1a
* `N1a(sn)` - N1a(sn)
* `N1b` - N1b
* `N1c` - N1c
* `N1mi` - N1mi
* `N2` - N2
* `N2a` - N2a
* `N2b` - N2b
* `N2c` - N2c
* `N2mi` - N2mi
* `N3` - N3
* `N3a` - N3a
* `N3b` - N3b
* `N3c` - N3c
* `N4` - N4
* `NX` - NX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|recurrence_m_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MCategoryEnum](#schemamcategoryenum)|false|none|* `M0` - M0
* `M0(i+)` - M0(i+)
* `M1` - M1
* `M1a` - M1a
* `M1a(0)` - M1a(0)
* `M1a(1)` - M1a(1)
* `M1b` - M1b
* `M1b(0)` - M1b(0)
* `M1b(1)` - M1b(1)
* `M1c` - M1c
* `M1c(0)` - M1c(0)
* `M1c(1)` - M1c(1)
* `M1d` - M1d
* `M1d(0)` - M1d(0)
* `M1d(1)` - M1d(1)
* `M1e` - M1e
* `MX` - MX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|recurrence_stage_group|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StageGroupEnum](#schemastagegroupenum)|false|none|* `Stage 0` - Stage 0
* `Stage 0a` - Stage 0a
* `Stage 0is` - Stage 0is
* `Stage 1` - Stage 1
* `Stage 1A` - Stage 1A
* `Stage 1B` - Stage 1B
* `Stage A` - Stage A
* `Stage B` - Stage B
* `Stage C` - Stage C
* `Stage I` - Stage I
* `Stage IA` - Stage IA
* `Stage IA1` - Stage IA1
* `Stage IA2` - Stage IA2
* `Stage IA3` - Stage IA3
* `Stage IAB` - Stage IAB
* `Stage IAE` - Stage IAE
* `Stage IAES` - Stage IAES
* `Stage IAS` - Stage IAS
* `Stage IB` - Stage IB
* `Stage IB1` - Stage IB1
* `Stage IB2` - Stage IB2
* `Stage IBE` - Stage IBE
* `Stage IBES` - Stage IBES
* `Stage IBS` - Stage IBS
* `Stage IC` - Stage IC
* `Stage IE` - Stage IE
* `Stage IEA` - Stage IEA
* `Stage IEB` - Stage IEB
* `Stage IES` - Stage IES
* `Stage II` - Stage II
* `Stage II bulky` - Stage II bulky
* `Stage IIA` - Stage IIA
* `Stage IIA1` - Stage IIA1
* `Stage IIA2` - Stage IIA2
* `Stage IIAE` - Stage IIAE
* `Stage IIAES` - Stage IIAES
* `Stage IIAS` - Stage IIAS
* `Stage IIB` - Stage IIB
* `Stage IIBE` - Stage IIBE
* `Stage IIBES` - Stage IIBES
* `Stage IIBS` - Stage IIBS
* `Stage IIC` - Stage IIC
* `Stage IIE` - Stage IIE
* `Stage IIEA` - Stage IIEA
* `Stage IIEB` - Stage IIEB
* `Stage IIES` - Stage IIES
* `Stage III` - Stage III
* `Stage IIIA` - Stage IIIA
* `Stage IIIA1` - Stage IIIA1
* `Stage IIIA2` - Stage IIIA2
* `Stage IIIAE` - Stage IIIAE
* `Stage IIIAES` - Stage IIIAES
* `Stage IIIAS` - Stage IIIAS
* `Stage IIIB` - Stage IIIB
* `Stage IIIBE` - Stage IIIBE
* `Stage IIIBES` - Stage IIIBES
* `Stage IIIBS` - Stage IIIBS
* `Stage IIIC` - Stage IIIC
* `Stage IIIC1` - Stage IIIC1
* `Stage IIIC2` - Stage IIIC2
* `Stage IIID` - Stage IIID
* `Stage IIIE` - Stage IIIE
* `Stage IIIES` - Stage IIIES
* `Stage IIIS` - Stage IIIS
* `Stage IIS` - Stage IIS
* `Stage IS` - Stage IS
* `Stage IV` - Stage IV
* `Stage IVA` - Stage IVA
* `Stage IVA1` - Stage IVA1
* `Stage IVA2` - Stage IVA2
* `Stage IVAE` - Stage IVAE
* `Stage IVAES` - Stage IVAES
* `Stage IVAS` - Stage IVAS
* `Stage IVB` - Stage IVB
* `Stage IVBE` - Stage IVBE
* `Stage IVBES` - Stage IVBES
* `Stage IVBS` - Stage IVBS
* `Stage IVC` - Stage IVC
* `Stage IVE` - Stage IVE
* `Stage IVES` - Stage IVES
* `Stage IVS` - Stage IVS
* `In situ` - In situ
* `Localized` - Localized
* `Regionalized` - Regionalized
* `Distant` - Distant
* `Stage L1` - Stage L1
* `Stage L2` - Stage L2
* `Stage M` - Stage M
* `Stage Ms` - Stage Ms
* `Stage 2A` - Stage 2A
* `Stage 2B` - Stage 2B
* `Stage 3` - Stage 3
* `Stage 4` - Stage 4
* `Stage 4S` - Stage 4S
* `Occult Carcinoma` - Occult Carcinoma| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -

NestedHormoneTherapy

- - - - - - -```json -{ - "hormone_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|hormone_drug_dose_units|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DosageUnitsEnum](#schemadosageunitsenum)|false|none|* `mg/m2` - mg/m2
* `IU/m2` - IU/m2
* `IU/kg` - IU/kg
* `ug/m2` - ug/m2
* `g/m2` - g/m2
* `mg/kg` - mg/kg
* `cells/kg` - cells/kg| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|drug_reference_database|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DrugReferenceDatabaseEnum](#schemadrugreferencedatabaseenum)|false|none|* `RxNorm` - RxNorm
* `PubChem` - PubChem
* `NCI Thesaurus` - NCI Thesaurus| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|drug_name|string¦null|false|none|none| -|drug_reference_identifier|string¦null|false|none|none| -|prescribed_cumulative_drug_dose|integer¦null|false|none|none| -|actual_cumulative_drug_dose|integer¦null|false|none|none| - -

NestedImmunotherapy

- - - - - - -```json -{ - "immunotherapy_type": "Cell-based", - "drug_reference_database": "RxNorm", - "immunotherapy_drug_dose_units": "mg/m2", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|immunotherapy_type|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ImmunotherapyTypeEnum](#schemaimmunotherapytypeenum)|false|none|* `Cell-based` - Cell-based
* `Immune checkpoint inhibitors` - Immune checkpoint inhibitors
* `Monoclonal antibodies other than immune checkpoint inhibitors` - Monoclonal antibodies other than immune checkpoint inhibitors
* `Other immunomodulatory substances` - Other immunomodulatory substances| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|drug_reference_database|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DrugReferenceDatabaseEnum](#schemadrugreferencedatabaseenum)|false|none|* `RxNorm` - RxNorm
* `PubChem` - PubChem
* `NCI Thesaurus` - NCI Thesaurus| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|immunotherapy_drug_dose_units|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[DosageUnitsEnum](#schemadosageunitsenum)|false|none|* `mg/m2` - mg/m2
* `IU/m2` - IU/m2
* `IU/kg` - IU/kg
* `ug/m2` - ug/m2
* `g/m2` - g/m2
* `mg/kg` - mg/kg
* `cells/kg` - cells/kg| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|drug_name|string¦null|false|none|none| -|drug_reference_identifier|string¦null|false|none|none| -|prescribed_cumulative_drug_dose|integer¦null|false|none|none| -|actual_cumulative_drug_dose|integer¦null|false|none|none| - -

NestedPrimaryDiagnosis

- - - - - - -```json -{ - "submitter_primary_diagnosis_id": "string", - "date_of_diagnosis": "string", - "cancer_type_code": "string", - "basis_of_diagnosis": "Clinical investigation", - "lymph_nodes_examined_status": "Cannot be determined", - "lymph_nodes_examined_method": "Imaging", - "number_lymph_nodes_positive": 32767, - "clinical_tumour_staging_system": "AJCC 8th edition", - "clinical_t_category": "T0", - "clinical_n_category": "N0", - "clinical_m_category": "M0", - "clinical_stage_group": "Stage 0", - "laterality": "Bilateral", - "specimens": [ - { - "submitter_specimen_id": "string", - "pathological_tumour_staging_system": "AJCC 8th edition", - "pathological_t_category": "T0", - "pathological_n_category": "N0", - "pathological_m_category": "M0", - "pathological_stage_group": "Stage 0", - "specimen_collection_date": "string", - "specimen_storage": "Cut slide", - "tumour_histological_type": "string", - "specimen_anatomic_location": "string", - "reference_pathology_confirmed_diagnosis": "Yes", - "reference_pathology_confirmed_tumour_presence": "Yes", - "tumour_grading_system": "FNCLCC grading system", - "tumour_grade": "Low grade", - "percent_tumour_cells_range": "0-19%", - "percent_tumour_cells_measurement_method": "Genomics", - "specimen_processing": "Cryopreservation in liquid nitrogen (dead tissue)", - "specimen_laterality": "Left", - "sample_registrations": [ - { - "submitter_sample_id": "string", - "specimen_tissue_source": "Abdominal fluid", - "tumour_normal_designation": "Normal", - "specimen_type": "Cell line - derived from normal", - "sample_type": "Amplified DNA" - } - ] - } - ], - "treatments": [ - { - "submitter_treatment_id": "string", - "is_primary_treatment": "Yes", - "treatment_start_date": "string", - "treatment_end_date": "string", - "treatment_setting": "Adjuvant", - "treatment_intent": "Curative", - "days_per_cycle": 32767, - "number_of_cycles": 32767, - "line_of_treatment": -2147483648, - "status_of_treatment": "Treatment completed as prescribed", - "treatment_type": [ - "Bone marrow transplant" - ], - "response_to_treatment_criteria_method": "RECIST 1.1", - "response_to_treatment": "Complete response", - "chemotherapies": [ - { - "chemotherapy_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "hormone_therapies": [ - { - "hormone_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "immunotherapies": [ - { - "immunotherapy_type": "Cell-based", - "drug_reference_database": "RxNorm", - "immunotherapy_drug_dose_units": "mg/m2", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "radiations": [ - { - "radiation_therapy_modality": "Megavoltage radiation therapy using photons (procedure)", - "radiation_therapy_type": "External", - "anatomical_site_irradiated": "Left Abdomen", - "radiation_therapy_fractions": 32767, - "radiation_therapy_dosage": 32767, - "radiation_boost": true, - "reference_radiation_treatment_id": "string" - } - ], - "surgeries": [ - { - "surgery_type": "Ablation", - "surgery_site": "string", - "surgery_location": "Local recurrence", - "tumour_focality": "Cannot be assessed", - "residual_tumour_classification": "Not applicable", - "margin_types_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_assessed": [ - "Circumferential resection margin" - ], - "lymphovascular_invasion": "Absent", - "perineural_invasion": "Absent", - "submitter_specimen_id": "string", - "tumour_length": 32767, - "tumour_width": 32767, - "greatest_dimension_tumour": 32767 - } - ], - "followups": [ - { - "submitter_follow_up_id": "string", - "date_of_followup": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0" - } - ] - } - ], - "followups": [ - { - "submitter_follow_up_id": "string", - "date_of_followup": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_primary_diagnosis_id|string|true|none|none| -|date_of_diagnosis|string¦null|false|none|none| -|cancer_type_code|string¦null|false|none|none| -|basis_of_diagnosis|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BasisOfDiagnosisEnum](#schemabasisofdiagnosisenum)|false|none|* `Clinical investigation` - Clinical investigation
* `Clinical` - Clinical
* `Cytology` - Cytology
* `Death certificate only` - Death certificate only
* `Histology of a metastasis` - Histology of a metastasis
* `Histology of a primary tumour` - Histology of a primary tumour
* `Specific tumour markers` - Specific tumour markers
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|lymph_nodes_examined_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[LymphNodesExaminedStatusEnum](#schemalymphnodesexaminedstatusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `No` - No
* `No lymph nodes found in resected specimen` - No lymph nodes found in resected specimen
* `Not applicable` - Not applicable
* `Yes` - Yes| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|lymph_nodes_examined_method|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[LymphNodesExaminedMethodEnum](#schemalymphnodesexaminedmethodenum)|false|none|* `Imaging` - Imaging
* `Lymph node dissection/pathological exam` - Lymph node dissection/pathological exam
* `Physical palpation of patient` - Physical palpation of patient| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|number_lymph_nodes_positive|integer¦null|false|none|none| -|clinical_tumour_staging_system|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StagingSystemEnum](#schemastagingsystemenum)|false|none|* `AJCC 8th edition` - AJCC 8th edition
* `AJCC 7th edition` - AJCC 7th edition
* `AJCC 6th edition` - AJCC 6th edition
* `Ann Arbor staging system` - Ann Arbor staging system
* `Binet staging system` - Binet staging system
* `Durie-Salmon staging system` - Durie-Salmon staging system
* `FIGO staging system` - FIGO staging system
* `International Neuroblastoma Risk Group Staging System` - International Neuroblastoma Risk Group Staging System
* `International Neuroblastoma Staging System` - International Neuroblastoma Staging System
* `Lugano staging system` - Lugano staging system
* `Rai staging system` - Rai staging system
* `Revised International staging system (RISS)` - Revised International staging system (RISS)
* `SEER staging system` - SEER staging system
* `St Jude staging system` - St Jude staging system| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|clinical_t_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TCategoryEnum](#schematcategoryenum)|false|none|* `T0` - T0
* `T1` - T1
* `T1a` - T1a
* `T1a1` - T1a1
* `T1a2` - T1a2
* `T1a(s)` - T1a(s)
* `T1a(m)` - T1a(m)
* `T1b` - T1b
* `T1b1` - T1b1
* `T1b2` - T1b2
* `T1b(s)` - T1b(s)
* `T1b(m)` - T1b(m)
* `T1c` - T1c
* `T1d` - T1d
* `T1mi` - T1mi
* `T2` - T2
* `T2(s)` - T2(s)
* `T2(m)` - T2(m)
* `T2a` - T2a
* `T2a1` - T2a1
* `T2a2` - T2a2
* `T2b` - T2b
* `T2c` - T2c
* `T2d` - T2d
* `T3` - T3
* `T3(s)` - T3(s)
* `T3(m)` - T3(m)
* `T3a` - T3a
* `T3b` - T3b
* `T3c` - T3c
* `T3d` - T3d
* `T3e` - T3e
* `T4` - T4
* `T4a` - T4a
* `T4a(s)` - T4a(s)
* `T4a(m)` - T4a(m)
* `T4b` - T4b
* `T4b(s)` - T4b(s)
* `T4b(m)` - T4b(m)
* `T4c` - T4c
* `T4d` - T4d
* `T4e` - T4e
* `Ta` - Ta
* `Tis` - Tis
* `Tis(DCIS)` - Tis(DCIS)
* `Tis(LAMN)` - Tis(LAMN)
* `Tis(LCIS)` - Tis(LCIS)
* `Tis(Paget)` - Tis(Paget)
* `Tis(Paget's)` - Tis(Paget's)
* `Tis pu` - Tis pu
* `Tis pd` - Tis pd
* `TX` - TX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|clinical_n_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NCategoryEnum](#schemancategoryenum)|false|none|* `N0` - N0
* `N0a` - N0a
* `N0a (biopsy)` - N0a (biopsy)
* `N0b` - N0b
* `N0b (no biopsy)` - N0b (no biopsy)
* `N0(i+)` - N0(i+)
* `N0(i-)` - N0(i-)
* `N0(mol+)` - N0(mol+)
* `N0(mol-)` - N0(mol-)
* `N1` - N1
* `N1a` - N1a
* `N1a(sn)` - N1a(sn)
* `N1b` - N1b
* `N1c` - N1c
* `N1mi` - N1mi
* `N2` - N2
* `N2a` - N2a
* `N2b` - N2b
* `N2c` - N2c
* `N2mi` - N2mi
* `N3` - N3
* `N3a` - N3a
* `N3b` - N3b
* `N3c` - N3c
* `N4` - N4
* `NX` - NX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|clinical_m_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MCategoryEnum](#schemamcategoryenum)|false|none|* `M0` - M0
* `M0(i+)` - M0(i+)
* `M1` - M1
* `M1a` - M1a
* `M1a(0)` - M1a(0)
* `M1a(1)` - M1a(1)
* `M1b` - M1b
* `M1b(0)` - M1b(0)
* `M1b(1)` - M1b(1)
* `M1c` - M1c
* `M1c(0)` - M1c(0)
* `M1c(1)` - M1c(1)
* `M1d` - M1d
* `M1d(0)` - M1d(0)
* `M1d(1)` - M1d(1)
* `M1e` - M1e
* `MX` - MX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|clinical_stage_group|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StageGroupEnum](#schemastagegroupenum)|false|none|* `Stage 0` - Stage 0
* `Stage 0a` - Stage 0a
* `Stage 0is` - Stage 0is
* `Stage 1` - Stage 1
* `Stage 1A` - Stage 1A
* `Stage 1B` - Stage 1B
* `Stage A` - Stage A
* `Stage B` - Stage B
* `Stage C` - Stage C
* `Stage I` - Stage I
* `Stage IA` - Stage IA
* `Stage IA1` - Stage IA1
* `Stage IA2` - Stage IA2
* `Stage IA3` - Stage IA3
* `Stage IAB` - Stage IAB
* `Stage IAE` - Stage IAE
* `Stage IAES` - Stage IAES
* `Stage IAS` - Stage IAS
* `Stage IB` - Stage IB
* `Stage IB1` - Stage IB1
* `Stage IB2` - Stage IB2
* `Stage IBE` - Stage IBE
* `Stage IBES` - Stage IBES
* `Stage IBS` - Stage IBS
* `Stage IC` - Stage IC
* `Stage IE` - Stage IE
* `Stage IEA` - Stage IEA
* `Stage IEB` - Stage IEB
* `Stage IES` - Stage IES
* `Stage II` - Stage II
* `Stage II bulky` - Stage II bulky
* `Stage IIA` - Stage IIA
* `Stage IIA1` - Stage IIA1
* `Stage IIA2` - Stage IIA2
* `Stage IIAE` - Stage IIAE
* `Stage IIAES` - Stage IIAES
* `Stage IIAS` - Stage IIAS
* `Stage IIB` - Stage IIB
* `Stage IIBE` - Stage IIBE
* `Stage IIBES` - Stage IIBES
* `Stage IIBS` - Stage IIBS
* `Stage IIC` - Stage IIC
* `Stage IIE` - Stage IIE
* `Stage IIEA` - Stage IIEA
* `Stage IIEB` - Stage IIEB
* `Stage IIES` - Stage IIES
* `Stage III` - Stage III
* `Stage IIIA` - Stage IIIA
* `Stage IIIA1` - Stage IIIA1
* `Stage IIIA2` - Stage IIIA2
* `Stage IIIAE` - Stage IIIAE
* `Stage IIIAES` - Stage IIIAES
* `Stage IIIAS` - Stage IIIAS
* `Stage IIIB` - Stage IIIB
* `Stage IIIBE` - Stage IIIBE
* `Stage IIIBES` - Stage IIIBES
* `Stage IIIBS` - Stage IIIBS
* `Stage IIIC` - Stage IIIC
* `Stage IIIC1` - Stage IIIC1
* `Stage IIIC2` - Stage IIIC2
* `Stage IIID` - Stage IIID
* `Stage IIIE` - Stage IIIE
* `Stage IIIES` - Stage IIIES
* `Stage IIIS` - Stage IIIS
* `Stage IIS` - Stage IIS
* `Stage IS` - Stage IS
* `Stage IV` - Stage IV
* `Stage IVA` - Stage IVA
* `Stage IVA1` - Stage IVA1
* `Stage IVA2` - Stage IVA2
* `Stage IVAE` - Stage IVAE
* `Stage IVAES` - Stage IVAES
* `Stage IVAS` - Stage IVAS
* `Stage IVB` - Stage IVB
* `Stage IVBE` - Stage IVBE
* `Stage IVBES` - Stage IVBES
* `Stage IVBS` - Stage IVBS
* `Stage IVC` - Stage IVC
* `Stage IVE` - Stage IVE
* `Stage IVES` - Stage IVES
* `Stage IVS` - Stage IVS
* `In situ` - In situ
* `Localized` - Localized
* `Regionalized` - Regionalized
* `Distant` - Distant
* `Stage L1` - Stage L1
* `Stage L2` - Stage L2
* `Stage M` - Stage M
* `Stage Ms` - Stage Ms
* `Stage 2A` - Stage 2A
* `Stage 2B` - Stage 2B
* `Stage 3` - Stage 3
* `Stage 4` - Stage 4
* `Stage 4S` - Stage 4S
* `Occult Carcinoma` - Occult Carcinoma| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|laterality|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[LateralityEnum](#schemalateralityenum)|false|none|* `Bilateral` - Bilateral
* `Left` - Left
* `Midline` - Midline
* `Not a paired site` - Not a paired site
* `Right` - Right
* `Unilateral, side not specified` - Unilateral, side not specified
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|specimens|[[NestedSpecimen](#schemanestedspecimen)]|false|read-only|none| -|treatments|[[NestedTreatment](#schemanestedtreatment)]|false|read-only|none| -|followups|[[NestedFollowUp](#schemanestedfollowup)]|false|read-only|none| - -

NestedRadiation

- - - - - - -```json -{ - "radiation_therapy_modality": "Megavoltage radiation therapy using photons (procedure)", - "radiation_therapy_type": "External", - "anatomical_site_irradiated": "Left Abdomen", - "radiation_therapy_fractions": 32767, - "radiation_therapy_dosage": 32767, - "radiation_boost": true, - "reference_radiation_treatment_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|radiation_therapy_modality|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[RadiationTherapyModalityEnum](#schemaradiationtherapymodalityenum)|false|none|* `Megavoltage radiation therapy using photons (procedure)` - Megavoltage radiation therapy using photons (procedure)
* `Radiopharmaceutical` - Radiopharmaceutical
* `Teleradiotherapy using electrons (procedure)` - Teleradiotherapy using electrons (procedure)
* `Teleradiotherapy protons (procedure)` - Teleradiotherapy protons (procedure)
* `Teleradiotherapy neutrons (procedure)` - Teleradiotherapy neutrons (procedure)
* `Brachytherapy (procedure)` - Brachytherapy (procedure)
* `Other` - Other| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|radiation_therapy_type|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[RadiationTherapyTypeEnum](#schemaradiationtherapytypeenum)|false|none|* `External` - External
* `Internal` - Internal| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|anatomical_site_irradiated|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[AnatomicalSiteIrradiatedEnum](#schemaanatomicalsiteirradiatedenum)|false|none|* `Left Abdomen` - Left Abdomen
* `Whole Abdomen` - Whole Abdomen
* `Right Abdomen` - Right Abdomen
* `Lower Abdomen` - Lower Abdomen
* `Left Lower Abdomen` - Left Lower Abdomen
* `Right Lower Abdomen` - Right Lower Abdomen
* `Upper Abdomen` - Upper Abdomen
* `Left Upper Abdomen` - Left Upper Abdomen
* `Right Upper Abdomen` - Right Upper Abdomen
* `Left Adrenal` - Left Adrenal
* `Right Adrenal` - Right Adrenal
* `Bilateral Ankle` - Bilateral Ankle
* `Left Ankle` - Left Ankle
* `Right Ankle` - Right Ankle
* `Bilateral Antrum (Bull's Eye)` - Bilateral Antrum (Bull's Eye)
* `Left Antrum` - Left Antrum
* `Right Antrum` - Right Antrum
* `Anus` - Anus
* `Lower Left Arm` - Lower Left Arm
* `Lower Right Arm` - Lower Right Arm
* `Bilateral Arms` - Bilateral Arms
* `Left Arm` - Left Arm
* `Right Arm` - Right Arm
* `Upper Left Arm` - Upper Left Arm
* `Upper Right Arm` - Upper Right Arm
* `Left Axilla` - Left Axilla
* `Right Axilla` - Right Axilla
* `Skin or Soft Tissue of Back` - Skin or Soft Tissue of Back
* `Bile Duct` - Bile Duct
* `Bladder` - Bladder
* `Lower Body` - Lower Body
* `Middle Body` - Middle Body
* `Upper Body` - Upper Body
* `Whole Body` - Whole Body
* `Boost - Area Previously Treated` - Boost - Area Previously Treated
* `Brain` - Brain
* `Left Breast Boost` - Left Breast Boost
* `Right Breast Boost` - Right Breast Boost
* `Bilateral Breast` - Bilateral Breast
* `Left Breast` - Left Breast
* `Right Breast` - Right Breast
* `Bilateral Breasts with Nodes` - Bilateral Breasts with Nodes
* `Left Breast with Nodes` - Left Breast with Nodes
* `Right Breast with Nodes` - Right Breast with Nodes
* `Bilateral Buttocks` - Bilateral Buttocks
* `Left Buttock` - Left Buttock
* `Right Buttock` - Right Buttock
* `Inner Canthus` - Inner Canthus
* `Outer Canthus` - Outer Canthus
* `Cervix` - Cervix
* `Bilateral Chest Lung & Area Involve` - Bilateral Chest Lung & Area Involve
* `Left Chest` - Left Chest
* `Right Chest` - Right Chest
* `Chin` - Chin
* `Left Cheek` - Left Cheek
* `Right Cheek` - Right Cheek
* `Bilateral Chest Wall (W/o Breast)` - Bilateral Chest Wall (W/o Breast)
* `Left Chest Wall` - Left Chest Wall
* `Right Chest Wall` - Right Chest Wall
* `Bilateral Clavicle` - Bilateral Clavicle
* `Left Clavicle` - Left Clavicle
* `Right Clavicle` - Right Clavicle
* `Coccyx` - Coccyx
* `Colon` - Colon
* `Whole C.N.S. (Medulla Techinque)` - Whole C.N.S. (Medulla Techinque)
* `Csf Spine (Medull Tech 2 Diff Machi` - Csf Spine (Medull Tech 2 Diff Machi
* `Left Chestwall Boost` - Left Chestwall Boost
* `Right Chestwall Boost` - Right Chestwall Boost
* `Bilateral Chestwall with Nodes` - Bilateral Chestwall with Nodes
* `Left Chestwall with Nodes` - Left Chestwall with Nodes
* `Right Chestwall with Nodes` - Right Chestwall with Nodes
* `Left Ear` - Left Ear
* `Right Ear` - Right Ear
* `Epigastrium` - Epigastrium
* `Lower Esophagus` - Lower Esophagus
* `Middle Esophagus` - Middle Esophagus
* `Upper Esophagus` - Upper Esophagus
* `Entire Esophagus` - Entire Esophagus
* `Ethmoid Sinus` - Ethmoid Sinus
* `Bilateral Eyes` - Bilateral Eyes
* `Left Eye` - Left Eye
* `Right Eye` - Right Eye
* `Bilateral Face` - Bilateral Face
* `Left Face` - Left Face
* `Right Face` - Right Face
* `Left Fallopian Tubes` - Left Fallopian Tubes
* `Right Fallopian Tubes` - Right Fallopian Tubes
* `Bilateral Femur` - Bilateral Femur
* `Left Femur` - Left Femur
* `Right Femur` - Right Femur
* `Left Fibula` - Left Fibula
* `Right Fibula` - Right Fibula
* `Finger (Including Thumbs)` - Finger (Including Thumbs)
* `Floor of Mouth (Boosts)` - Floor of Mouth (Boosts)
* `Bilateral Feet` - Bilateral Feet
* `Left Foot` - Left Foot
* `Right Foot` - Right Foot
* `Forehead` - Forehead
* `Posterior Fossa` - Posterior Fossa
* `Gall Bladder` - Gall Bladder
* `Gingiva` - Gingiva
* `Bilateral Hand` - Bilateral Hand
* `Left Hand` - Left Hand
* `Right Hand` - Right Hand
* `Head` - Head
* `Bilateral Heel` - Bilateral Heel
* `Left Heel` - Left Heel
* `Right Heel` - Right Heel
* `Left Hemimantle` - Left Hemimantle
* `Right Hemimantle` - Right Hemimantle
* `Heart` - Heart
* `Bilateral Hip` - Bilateral Hip
* `Left Hip` - Left Hip
* `Right Hip` - Right Hip
* `Left Humerus` - Left Humerus
* `Right Humerus` - Right Humerus
* `Hypopharynx` - Hypopharynx
* `Bilateral Internal Mammary Chain` - Bilateral Internal Mammary Chain
* `Bilateral Inguinal Nodes` - Bilateral Inguinal Nodes
* `Left Inguinal Nodes` - Left Inguinal Nodes
* `Right Inguinal Nodes` - Right Inguinal Nodes
* `Inverted 'Y' (Dog-Leg,Hockey-Stick)` - Inverted 'Y' (Dog-Leg,Hockey-Stick)
* `Left Kidney` - Left Kidney
* `Right Kidney` - Right Kidney
* `Bilateral Knee` - Bilateral Knee
* `Left Knee` - Left Knee
* `Right Knee` - Right Knee
* `Bilateral Lacrimal Gland` - Bilateral Lacrimal Gland
* `Left Lacrimal Gland` - Left Lacrimal Gland
* `Right Lacrimal Gland` - Right Lacrimal Gland
* `Larygopharynx` - Larygopharynx
* `Larynx` - Larynx
* `Bilateral Leg` - Bilateral Leg
* `Left Leg` - Left Leg
* `Right Leg` - Right Leg
* `Lower Bilateral Leg` - Lower Bilateral Leg
* `Lower Left Leg` - Lower Left Leg
* `Lower Right Leg` - Lower Right Leg
* `Upper Bilateral Leg` - Upper Bilateral Leg
* `Upper Left Leg` - Upper Left Leg
* `Upper Right Leg` - Upper Right Leg
* `Both Eyelid(s)` - Both Eyelid(s)
* `Left Eyelid` - Left Eyelid
* `Right Eyelid` - Right Eyelid
* `Both Lip(s)` - Both Lip(s)
* `Lower Lip` - Lower Lip
* `Upper Lip` - Upper Lip
* `Liver` - Liver
* `Bilateral Lung` - Bilateral Lung
* `Left Lung` - Left Lung
* `Right Lung` - Right Lung
* `Bilateral Mandible` - Bilateral Mandible
* `Left Mandible` - Left Mandible
* `Right Mandible` - Right Mandible
* `Mantle` - Mantle
* `Bilateral Maxilla` - Bilateral Maxilla
* `Left Maxilla` - Left Maxilla
* `Right Maxilla` - Right Maxilla
* `Mediastinum` - Mediastinum
* `Multiple Skin` - Multiple Skin
* `Nasal Fossa` - Nasal Fossa
* `Nasopharynx` - Nasopharynx
* `Bilateral Neck Includes Nodes` - Bilateral Neck Includes Nodes
* `Left Neck Includes Nodes` - Left Neck Includes Nodes
* `Right Neck Includes Nodes` - Right Neck Includes Nodes
* `Neck - Skin` - Neck - Skin
* `Nose` - Nose
* `Oral Cavity / Buccal Mucosa` - Oral Cavity / Buccal Mucosa
* `Bilateral Orbit` - Bilateral Orbit
* `Left Orbit` - Left Orbit
* `Right Orbit` - Right Orbit
* `Oropharynx` - Oropharynx
* `Bilateral Ovary` - Bilateral Ovary
* `Left Ovary` - Left Ovary
* `Right Ovary` - Right Ovary
* `Hard Palate` - Hard Palate
* `Soft Palate` - Soft Palate
* `Palate Unspecified` - Palate Unspecified
* `Pancreas` - Pancreas
* `Para-Aortic Nodes` - Para-Aortic Nodes
* `Left Parotid` - Left Parotid
* `Right Parotid` - Right Parotid
* `Bilateral Pelvis` - Bilateral Pelvis
* `Left Pelvis` - Left Pelvis
* `Right Pelvis` - Right Pelvis
* `Penis` - Penis
* `Perineum` - Perineum
* `Pituitary` - Pituitary
* `Left Pleura (As in Mesothelioma)` - Left Pleura (As in Mesothelioma)
* `Right Pleura` - Right Pleura
* `Prostate` - Prostate
* `Pubis` - Pubis
* `Pyriform Fossa (Sinuses)` - Pyriform Fossa (Sinuses)
* `Left Radius` - Left Radius
* `Right Radius` - Right Radius
* `Rectum (Includes Sigmoid)` - Rectum (Includes Sigmoid)
* `Left Ribs` - Left Ribs
* `Right Ribs` - Right Ribs
* `Sacrum` - Sacrum
* `Left Salivary Gland` - Left Salivary Gland
* `Right Salivary Gland` - Right Salivary Gland
* `Bilateral Scapula` - Bilateral Scapula
* `Left Scapula` - Left Scapula
* `Right Scapula` - Right Scapula
* `Bilateral Supraclavicular Nodes` - Bilateral Supraclavicular Nodes
* `Left Supraclavicular Nodes` - Left Supraclavicular Nodes
* `Right Supraclavicular Nodes` - Right Supraclavicular Nodes
* `Bilateral Scalp` - Bilateral Scalp
* `Left Scalp` - Left Scalp
* `Right Scalp` - Right Scalp
* `Scrotum` - Scrotum
* `Bilateral Shoulder` - Bilateral Shoulder
* `Left Shoulder` - Left Shoulder
* `Right Shoulder` - Right Shoulder
* `Whole Body - Skin` - Whole Body - Skin
* `Skull` - Skull
* `Cervical & Thoracic Spine` - Cervical & Thoracic Spine
* `Sphenoid Sinus` - Sphenoid Sinus
* `Cervical Spine` - Cervical Spine
* `Lumbar Spine` - Lumbar Spine
* `Thoracic Spine` - Thoracic Spine
* `Whole Spine` - Whole Spine
* `Spleen` - Spleen
* `Lumbo-Sacral Spine` - Lumbo-Sacral Spine
* `Thoracic & Lumbar Spine` - Thoracic & Lumbar Spine
* `Sternum` - Sternum
* `Stomach` - Stomach
* `Submandibular Glands` - Submandibular Glands
* `Left Temple` - Left Temple
* `Right Temple` - Right Temple
* `Bilateral Testis` - Bilateral Testis
* `Left Testis` - Left Testis
* `Right Testis` - Right Testis
* `Thyroid` - Thyroid
* `Left Tibia` - Left Tibia
* `Right Tibia` - Right Tibia
* `Left Toes` - Left Toes
* `Right Toes` - Right Toes
* `Tongue` - Tongue
* `Tonsil` - Tonsil
* `Trachea` - Trachea
* `Left Ulna` - Left Ulna
* `Right Ulna` - Right Ulna
* `Left Ureter` - Left Ureter
* `Right Ureter` - Right Ureter
* `Urethra` - Urethra
* `Uterus` - Uterus
* `Uvula` - Uvula
* `Vagina` - Vagina
* `Vulva` - Vulva
* `Abdomen` - Abdomen
* `Body` - Body
* `Chest` - Chest
* `Lower Limb` - Lower Limb
* `Neck` - Neck
* `Other` - Other
* `Pelvis` - Pelvis
* `Skin` - Skin
* `Spine` - Spine
* `Upper Limb` - Upper Limb| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|radiation_therapy_fractions|integer¦null|false|none|none| -|radiation_therapy_dosage|integer¦null|false|none|none| -|radiation_boost|boolean¦null|false|none|none| -|reference_radiation_treatment_id|string¦null|false|none|none| - -

NestedSampleRegistration

- - - - - - -```json -{ - "submitter_sample_id": "string", - "specimen_tissue_source": "Abdominal fluid", - "tumour_normal_designation": "Normal", - "specimen_type": "Cell line - derived from normal", - "sample_type": "Amplified DNA" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_sample_id|string|true|none|none| -|specimen_tissue_source|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SpecimenTissueSourceEnum](#schemaspecimentissuesourceenum)|false|none|* `Abdominal fluid` - Abdominal fluid
* `Amniotic fluid` - Amniotic fluid
* `Arterial blood` - Arterial blood
* `Bile` - Bile
* `Blood derived - bone marrow` - Blood derived - bone marrow
* `Blood derived - peripheral blood` - Blood derived - peripheral blood
* `Bone marrow fluid` - Bone marrow fluid
* `Bone marrow derived mononuclear cells` - Bone marrow derived mononuclear cells
* `Buccal cell` - Buccal cell
* `Buffy coat` - Buffy coat
* `Cerebrospinal fluid` - Cerebrospinal fluid
* `Cervical mucus` - Cervical mucus
* `Convalescent plasma` - Convalescent plasma
* `Cord blood` - Cord blood
* `Duodenal fluid` - Duodenal fluid
* `Female genital fluid` - Female genital fluid
* `Fetal blood` - Fetal blood
* `Hydrocele fluid` - Hydrocele fluid
* `Male genital fluid` - Male genital fluid
* `Pancreatic fluid` - Pancreatic fluid
* `Pericardial effusion` - Pericardial effusion
* `Pleural fluid` - Pleural fluid
* `Renal cyst fluid` - Renal cyst fluid
* `Saliva` - Saliva
* `Seminal fluid` - Seminal fluid
* `Serum` - Serum
* `Solid tissue` - Solid tissue
* `Sputum` - Sputum
* `Synovial fluid` - Synovial fluid
* `Urine` - Urine
* `Venous blood` - Venous blood
* `Vitreous fluid` - Vitreous fluid
* `Whole blood` - Whole blood
* `Wound` - Wound| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|tumour_normal_designation|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TumourNormalDesignationEnum](#schematumournormaldesignationenum)|false|none|* `Normal` - Normal
* `Tumour` - Tumour| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|specimen_type|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SpecimenTypeEnum](#schemaspecimentypeenum)|false|none|* `Cell line - derived from normal` - Cell line - derived from normal
* `Cell line - derived from primary tumour` - Cell line - derived from primary tumour
* `Cell line - derived from metastatic tumour` - Cell line - derived from metastatic tumour
* `Cell line - derived from xenograft tumour` - Cell line - derived from xenograft tumour
* `Metastatic tumour - additional metastatic` - Metastatic tumour - additional metastatic
* `Metastatic tumour - metastasis local to lymph node` - Metastatic tumour - metastasis local to lymph node
* `Metastatic tumour - metastasis to distant location` - Metastatic tumour - metastasis to distant location
* `Metastatic tumour` - Metastatic tumour
* `Normal - tissue adjacent to primary tumour` - Normal - tissue adjacent to primary tumour
* `Normal` - Normal
* `Primary tumour - additional new primary` - Primary tumour - additional new primary
* `Primary tumour - adjacent to normal` - Primary tumour - adjacent to normal
* `Primary tumour` - Primary tumour
* `Recurrent tumour` - Recurrent tumour
* `Tumour - unknown if derived from primary or metastatic tumour` - Tumour - unknown if derived from primary or metastatic tumour
* `Xenograft - derived from primary tumour` - Xenograft - derived from primary tumour
* `Xenograft - derived from metastatic tumour` - Xenograft - derived from metastatic tumour
* `Xenograft - derived from tumour cell line` - Xenograft - derived from tumour cell line| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|sample_type|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SampleTypeEnum](#schemasampletypeenum)|false|none|* `Amplified DNA` - Amplified DNA
* `ctDNA` - ctDNA
* `Other DNA enrichments` - Other DNA enrichments
* `Other RNA fractions` - Other RNA fractions
* `polyA+ RNA` - polyA+ RNA
* `Protein` - Protein
* `rRNA-depleted RNA` - rRNA-depleted RNA
* `Total DNA` - Total DNA
* `Total RNA` - Total RNA| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -

NestedSpecimen

- - - - - - -```json -{ - "submitter_specimen_id": "string", - "pathological_tumour_staging_system": "AJCC 8th edition", - "pathological_t_category": "T0", - "pathological_n_category": "N0", - "pathological_m_category": "M0", - "pathological_stage_group": "Stage 0", - "specimen_collection_date": "string", - "specimen_storage": "Cut slide", - "tumour_histological_type": "string", - "specimen_anatomic_location": "string", - "reference_pathology_confirmed_diagnosis": "Yes", - "reference_pathology_confirmed_tumour_presence": "Yes", - "tumour_grading_system": "FNCLCC grading system", - "tumour_grade": "Low grade", - "percent_tumour_cells_range": "0-19%", - "percent_tumour_cells_measurement_method": "Genomics", - "specimen_processing": "Cryopreservation in liquid nitrogen (dead tissue)", - "specimen_laterality": "Left", - "sample_registrations": [ - { - "submitter_sample_id": "string", - "specimen_tissue_source": "Abdominal fluid", - "tumour_normal_designation": "Normal", - "specimen_type": "Cell line - derived from normal", - "sample_type": "Amplified DNA" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_specimen_id|string|true|none|none| -|pathological_tumour_staging_system|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StagingSystemEnum](#schemastagingsystemenum)|false|none|* `AJCC 8th edition` - AJCC 8th edition
* `AJCC 7th edition` - AJCC 7th edition
* `AJCC 6th edition` - AJCC 6th edition
* `Ann Arbor staging system` - Ann Arbor staging system
* `Binet staging system` - Binet staging system
* `Durie-Salmon staging system` - Durie-Salmon staging system
* `FIGO staging system` - FIGO staging system
* `International Neuroblastoma Risk Group Staging System` - International Neuroblastoma Risk Group Staging System
* `International Neuroblastoma Staging System` - International Neuroblastoma Staging System
* `Lugano staging system` - Lugano staging system
* `Rai staging system` - Rai staging system
* `Revised International staging system (RISS)` - Revised International staging system (RISS)
* `SEER staging system` - SEER staging system
* `St Jude staging system` - St Jude staging system| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|pathological_t_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TCategoryEnum](#schematcategoryenum)|false|none|* `T0` - T0
* `T1` - T1
* `T1a` - T1a
* `T1a1` - T1a1
* `T1a2` - T1a2
* `T1a(s)` - T1a(s)
* `T1a(m)` - T1a(m)
* `T1b` - T1b
* `T1b1` - T1b1
* `T1b2` - T1b2
* `T1b(s)` - T1b(s)
* `T1b(m)` - T1b(m)
* `T1c` - T1c
* `T1d` - T1d
* `T1mi` - T1mi
* `T2` - T2
* `T2(s)` - T2(s)
* `T2(m)` - T2(m)
* `T2a` - T2a
* `T2a1` - T2a1
* `T2a2` - T2a2
* `T2b` - T2b
* `T2c` - T2c
* `T2d` - T2d
* `T3` - T3
* `T3(s)` - T3(s)
* `T3(m)` - T3(m)
* `T3a` - T3a
* `T3b` - T3b
* `T3c` - T3c
* `T3d` - T3d
* `T3e` - T3e
* `T4` - T4
* `T4a` - T4a
* `T4a(s)` - T4a(s)
* `T4a(m)` - T4a(m)
* `T4b` - T4b
* `T4b(s)` - T4b(s)
* `T4b(m)` - T4b(m)
* `T4c` - T4c
* `T4d` - T4d
* `T4e` - T4e
* `Ta` - Ta
* `Tis` - Tis
* `Tis(DCIS)` - Tis(DCIS)
* `Tis(LAMN)` - Tis(LAMN)
* `Tis(LCIS)` - Tis(LCIS)
* `Tis(Paget)` - Tis(Paget)
* `Tis(Paget's)` - Tis(Paget's)
* `Tis pu` - Tis pu
* `Tis pd` - Tis pd
* `TX` - TX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|pathological_n_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NCategoryEnum](#schemancategoryenum)|false|none|* `N0` - N0
* `N0a` - N0a
* `N0a (biopsy)` - N0a (biopsy)
* `N0b` - N0b
* `N0b (no biopsy)` - N0b (no biopsy)
* `N0(i+)` - N0(i+)
* `N0(i-)` - N0(i-)
* `N0(mol+)` - N0(mol+)
* `N0(mol-)` - N0(mol-)
* `N1` - N1
* `N1a` - N1a
* `N1a(sn)` - N1a(sn)
* `N1b` - N1b
* `N1c` - N1c
* `N1mi` - N1mi
* `N2` - N2
* `N2a` - N2a
* `N2b` - N2b
* `N2c` - N2c
* `N2mi` - N2mi
* `N3` - N3
* `N3a` - N3a
* `N3b` - N3b
* `N3c` - N3c
* `N4` - N4
* `NX` - NX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|pathological_m_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MCategoryEnum](#schemamcategoryenum)|false|none|* `M0` - M0
* `M0(i+)` - M0(i+)
* `M1` - M1
* `M1a` - M1a
* `M1a(0)` - M1a(0)
* `M1a(1)` - M1a(1)
* `M1b` - M1b
* `M1b(0)` - M1b(0)
* `M1b(1)` - M1b(1)
* `M1c` - M1c
* `M1c(0)` - M1c(0)
* `M1c(1)` - M1c(1)
* `M1d` - M1d
* `M1d(0)` - M1d(0)
* `M1d(1)` - M1d(1)
* `M1e` - M1e
* `MX` - MX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|pathological_stage_group|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StageGroupEnum](#schemastagegroupenum)|false|none|* `Stage 0` - Stage 0
* `Stage 0a` - Stage 0a
* `Stage 0is` - Stage 0is
* `Stage 1` - Stage 1
* `Stage 1A` - Stage 1A
* `Stage 1B` - Stage 1B
* `Stage A` - Stage A
* `Stage B` - Stage B
* `Stage C` - Stage C
* `Stage I` - Stage I
* `Stage IA` - Stage IA
* `Stage IA1` - Stage IA1
* `Stage IA2` - Stage IA2
* `Stage IA3` - Stage IA3
* `Stage IAB` - Stage IAB
* `Stage IAE` - Stage IAE
* `Stage IAES` - Stage IAES
* `Stage IAS` - Stage IAS
* `Stage IB` - Stage IB
* `Stage IB1` - Stage IB1
* `Stage IB2` - Stage IB2
* `Stage IBE` - Stage IBE
* `Stage IBES` - Stage IBES
* `Stage IBS` - Stage IBS
* `Stage IC` - Stage IC
* `Stage IE` - Stage IE
* `Stage IEA` - Stage IEA
* `Stage IEB` - Stage IEB
* `Stage IES` - Stage IES
* `Stage II` - Stage II
* `Stage II bulky` - Stage II bulky
* `Stage IIA` - Stage IIA
* `Stage IIA1` - Stage IIA1
* `Stage IIA2` - Stage IIA2
* `Stage IIAE` - Stage IIAE
* `Stage IIAES` - Stage IIAES
* `Stage IIAS` - Stage IIAS
* `Stage IIB` - Stage IIB
* `Stage IIBE` - Stage IIBE
* `Stage IIBES` - Stage IIBES
* `Stage IIBS` - Stage IIBS
* `Stage IIC` - Stage IIC
* `Stage IIE` - Stage IIE
* `Stage IIEA` - Stage IIEA
* `Stage IIEB` - Stage IIEB
* `Stage IIES` - Stage IIES
* `Stage III` - Stage III
* `Stage IIIA` - Stage IIIA
* `Stage IIIA1` - Stage IIIA1
* `Stage IIIA2` - Stage IIIA2
* `Stage IIIAE` - Stage IIIAE
* `Stage IIIAES` - Stage IIIAES
* `Stage IIIAS` - Stage IIIAS
* `Stage IIIB` - Stage IIIB
* `Stage IIIBE` - Stage IIIBE
* `Stage IIIBES` - Stage IIIBES
* `Stage IIIBS` - Stage IIIBS
* `Stage IIIC` - Stage IIIC
* `Stage IIIC1` - Stage IIIC1
* `Stage IIIC2` - Stage IIIC2
* `Stage IIID` - Stage IIID
* `Stage IIIE` - Stage IIIE
* `Stage IIIES` - Stage IIIES
* `Stage IIIS` - Stage IIIS
* `Stage IIS` - Stage IIS
* `Stage IS` - Stage IS
* `Stage IV` - Stage IV
* `Stage IVA` - Stage IVA
* `Stage IVA1` - Stage IVA1
* `Stage IVA2` - Stage IVA2
* `Stage IVAE` - Stage IVAE
* `Stage IVAES` - Stage IVAES
* `Stage IVAS` - Stage IVAS
* `Stage IVB` - Stage IVB
* `Stage IVBE` - Stage IVBE
* `Stage IVBES` - Stage IVBES
* `Stage IVBS` - Stage IVBS
* `Stage IVC` - Stage IVC
* `Stage IVE` - Stage IVE
* `Stage IVES` - Stage IVES
* `Stage IVS` - Stage IVS
* `In situ` - In situ
* `Localized` - Localized
* `Regionalized` - Regionalized
* `Distant` - Distant
* `Stage L1` - Stage L1
* `Stage L2` - Stage L2
* `Stage M` - Stage M
* `Stage Ms` - Stage Ms
* `Stage 2A` - Stage 2A
* `Stage 2B` - Stage 2B
* `Stage 3` - Stage 3
* `Stage 4` - Stage 4
* `Stage 4S` - Stage 4S
* `Occult Carcinoma` - Occult Carcinoma| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|specimen_collection_date|string¦null|false|none|none| -|specimen_storage|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SpecimenStorageEnum](#schemaspecimenstorageenum)|false|none|* `Cut slide` - Cut slide
* `Frozen in -70 freezer` - Frozen in -70 freezer
* `Frozen in liquid nitrogen` - Frozen in liquid nitrogen
* `Frozen in vapour phase` - Frozen in vapour phase
* `Not Applicable` - Not Applicable
* `Other` - Other
* `Paraffin block` - Paraffin block
* `RNA later frozen` - RNA later frozen
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|tumour_histological_type|string¦null|false|none|none| -|specimen_anatomic_location|string¦null|false|none|none| -|reference_pathology_confirmed_diagnosis|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ReferencePathologyEnum](#schemareferencepathologyenum)|false|none|* `Yes` - Yes
* `No` - No
* `Not done` - Not done
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|reference_pathology_confirmed_tumour_presence|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ReferencePathologyEnum](#schemareferencepathologyenum)|false|none|* `Yes` - Yes
* `No` - No
* `Not done` - Not done
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|tumour_grading_system|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TumourGradingSystemEnum](#schematumourgradingsystemenum)|false|none|* `FNCLCC grading system` - FNCLCC grading system
* `Four-tier grading system` - Four-tier grading system
* `Gleason grade group system` - Gleason grade group system
* `Grading system for GISTs` - Grading system for GISTs
* `Grading system for GNETs` - Grading system for GNETs
* `IASLC grading system` - IASLC grading system
* `ISUP grading system` - ISUP grading system
* `Nottingham grading system` - Nottingham grading system
* `Nuclear grading system for DCIS` - Nuclear grading system for DCIS
* `Scarff-Bloom-Richardson grading system` - Scarff-Bloom-Richardson grading system
* `Three-tier grading system` - Three-tier grading system
* `Two-tier grading system` - Two-tier grading system
* `WHO grading system for CNS tumours` - WHO grading system for CNS tumours| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|tumour_grade|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TumourGradeEnum](#schematumourgradeenum)|false|none|* `Low grade` - Low grade
* `High grade` - High grade
* `GX` - GX
* `G1` - G1
* `G2` - G2
* `G3` - G3
* `G4` - G4
* `Low` - Low
* `High` - High
* `Grade 1` - Grade 1
* `Grade 2` - Grade 2
* `Grade 3` - Grade 3
* `Grade 4` - Grade 4
* `Grade I` - Grade I
* `Grade II` - Grade II
* `Grade III` - Grade III
* `Grade IV` - Grade IV
* `Grade Group 1` - Grade Group 1
* `Grade Group 2` - Grade Group 2
* `Grade Group 3` - Grade Group 3
* `Grade Group 4` - Grade Group 4
* `Grade Group 5` - Grade Group 5| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|percent_tumour_cells_range|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[PercentTumourCellsRangeEnum](#schemapercenttumourcellsrangeenum)|false|none|* `0-19%` - 0-19%
* `20-50%` - 20-50%
* `51-100%` - 51-100%| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|percent_tumour_cells_measurement_method|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[PercentTumourCellsMeasurementMethodEnum](#schemapercenttumourcellsmeasurementmethodenum)|false|none|* `Genomics` - Genomics
* `Image analysis` - Image analysis
* `Pathology estimate by percent nuclei` - Pathology estimate by percent nuclei
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|specimen_processing|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SpecimenProcessingEnum](#schemaspecimenprocessingenum)|false|none|* `Cryopreservation in liquid nitrogen (dead tissue)` - Cryopreservation in liquid nitrogen (dead tissue)
* `Cryopreservation in dry ice (dead tissue)` - Cryopreservation in dry ice (dead tissue)
* `Cryopreservation of live cells in liquid nitrogen` - Cryopreservation of live cells in liquid nitrogen
* `Cryopreservation - other` - Cryopreservation - other
* `Formalin fixed & paraffin embedded` - Formalin fixed & paraffin embedded
* `Formalin fixed - buffered` - Formalin fixed - buffered
* `Formalin fixed - unbuffered` - Formalin fixed - unbuffered
* `Fresh` - Fresh
* `Other` - Other
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|specimen_laterality|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SpecimenLateralityEnum](#schemaspecimenlateralityenum)|false|none|* `Left` - Left
* `Not applicable` - Not applicable
* `Right` - Right
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|sample_registrations|[[NestedSampleRegistration](#schemanestedsampleregistration)]|false|read-only|none| - -

NestedSurgery

- - - - - - -```json -{ - "surgery_type": "Ablation", - "surgery_site": "string", - "surgery_location": "Local recurrence", - "tumour_focality": "Cannot be assessed", - "residual_tumour_classification": "Not applicable", - "margin_types_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_assessed": [ - "Circumferential resection margin" - ], - "lymphovascular_invasion": "Absent", - "perineural_invasion": "Absent", - "submitter_specimen_id": "string", - "tumour_length": 32767, - "tumour_width": 32767, - "greatest_dimension_tumour": 32767 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|surgery_type|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SurgeryTypeEnum](#schemasurgerytypeenum)|false|none|* `Ablation` - Ablation
* `Axillary Clearance` - Axillary Clearance
* `Axillary lymph nodes sampling` - Axillary lymph nodes sampling
* `Bilateral complete salpingo-oophorectomy` - Bilateral complete salpingo-oophorectomy
* `Biopsy` - Biopsy
* `Bypass Gastrojejunostomy` - Bypass Gastrojejunostomy
* `Cholecystectomy` - Cholecystectomy
* `Cholecystojejunostomy` - Cholecystojejunostomy
* `Completion Gastrectomy` - Completion Gastrectomy
* `Debridement of pancreatic and peripancreatic necrosis` - Debridement of pancreatic and peripancreatic necrosis
* `Distal subtotal pancreatectomy` - Distal subtotal pancreatectomy
* `Drainage of abscess` - Drainage of abscess
* `Duodenal preserving pancreatic head resection` - Duodenal preserving pancreatic head resection
* `Endoscopic biopsy` - Endoscopic biopsy
* `Endoscopic brushings of gastrointestinal tract` - Endoscopic brushings of gastrointestinal tract
* `Enucleation` - Enucleation
* `Esophageal bypass surgery/jejunostomy only` - Esophageal bypass surgery/jejunostomy only
* `Exploratory laparotomy` - Exploratory laparotomy
* `Fine needle aspiration biopsy` - Fine needle aspiration biopsy
* `Gastric Antrectomy` - Gastric Antrectomy
* `Glossectomy` - Glossectomy
* `Hepatojejunostomy` - Hepatojejunostomy
* `Hysterectomy` - Hysterectomy
* `Incision of thorax` - Incision of thorax
* `Ivor Lewis subtotal esophagectomy` - Ivor Lewis subtotal esophagectomy
* `Laparotomy` - Laparotomy
* `Left thoracoabdominal incision` - Left thoracoabdominal incision
* `Lobectomy` - Lobectomy
* `Mammoplasty` - Mammoplasty
* `Mastectomy` - Mastectomy
* `McKeown esophagectomy` - McKeown esophagectomy
* `Merendino procedure` - Merendino procedure
* `Minimally invasive esophagectomy` - Minimally invasive esophagectomy
* `Omentectomy` - Omentectomy
* `Ovariectomy` - Ovariectomy
* `Pancreaticoduodenectomy (Whipple procedure)` - Pancreaticoduodenectomy (Whipple procedure)
* `Pancreaticojejunostomy, side-to-side anastomosis` - Pancreaticojejunostomy, side-to-side anastomosis
* `Partial pancreatectomy` - Partial pancreatectomy
* `Pneumonectomy` - Pneumonectomy
* `Prostatectomy` - Prostatectomy
* `Proximal subtotal gastrectomy` - Proximal subtotal gastrectomy
* `Pylorus-sparing Whipple operation` - Pylorus-sparing Whipple operation
* `Radical pancreaticoduodenectomy` - Radical pancreaticoduodenectomy
* `Radical prostatectomy` - Radical prostatectomy
* `Reexcision` - Reexcision
* `Segmentectomy` - Segmentectomy
* `Sentinal Lymph Node Biopsy` - Sentinal Lymph Node Biopsy
* `Spleen preserving distal pancreatectomy` - Spleen preserving distal pancreatectomy
* `Splenectomy` - Splenectomy
* `Total gastrectomy` - Total gastrectomy
* `Total gastrectomy with extended lymphadenectomy` - Total gastrectomy with extended lymphadenectomy
* `Total pancreatectomy` - Total pancreatectomy
* `Transhiatal esophagectomy` - Transhiatal esophagectomy
* `Triple bypass of pancreas` - Triple bypass of pancreas
* `Tumor Debulking` - Tumor Debulking
* `Wedge/localised gastric resection` - Wedge/localised gastric resection
* `Wide Local Excision` - Wide Local Excision| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|surgery_site|string¦null|false|none|none| -|surgery_location|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SurgeryLocationEnum](#schemasurgerylocationenum)|false|none|* `Local recurrence` - Local recurrence
* `Metastatic` - Metastatic
* `Primary` - Primary| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|tumour_focality|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TumourFocalityEnum](#schematumourfocalityenum)|false|none|* `Cannot be assessed` - Cannot be assessed
* `Multifocal` - Multifocal
* `Not applicable` - Not applicable
* `Unifocal` - Unifocal
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|residual_tumour_classification|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ResidualTumourClassificationEnum](#schemaresidualtumourclassificationenum)|false|none|* `Not applicable` - Not applicable
* `RX` - RX
* `R0` - R0
* `R1` - R1
* `R2` - R2
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|margin_types_involved|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MarginTypesEnum](#schemamargintypesenum)|false|none|* `Circumferential resection margin` - Circumferential resection margin
* `Common bile duct margin` - Common bile duct margin
* `Distal margin` - Distal margin
* `Not applicable` - Not applicable
* `Proximal margin` - Proximal margin
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|margin_types_not_involved|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MarginTypesEnum](#schemamargintypesenum)|false|none|* `Circumferential resection margin` - Circumferential resection margin
* `Common bile duct margin` - Common bile duct margin
* `Distal margin` - Distal margin
* `Not applicable` - Not applicable
* `Proximal margin` - Proximal margin
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|margin_types_not_assessed|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MarginTypesEnum](#schemamargintypesenum)|false|none|* `Circumferential resection margin` - Circumferential resection margin
* `Common bile duct margin` - Common bile duct margin
* `Distal margin` - Distal margin
* `Not applicable` - Not applicable
* `Proximal margin` - Proximal margin
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|lymphovascular_invasion|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[LymphovascularInvasionEnum](#schemalymphovascularinvasionenum)|false|none|* `Absent` - Absent
* `Both lymphatic and small vessel and venous (large vessel) invasion` - Both lymphatic and small vessel and venous (large vessel) invasion
* `Lymphatic and small vessel invasion only` - Lymphatic and small vessel invasion only
* `Not applicable` - Not applicable
* `Present` - Present
* `Venous (large vessel) invasion only` - Venous (large vessel) invasion only
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|perineural_invasion|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[PerineuralInvasionEnum](#schemaperineuralinvasionenum)|false|none|* `Absent` - Absent
* `Cannot be assessed` - Cannot be assessed
* `Not applicable` - Not applicable
* `Present` - Present
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_specimen_id|string¦null|false|none|none| -|tumour_length|integer¦null|false|none|none| -|tumour_width|integer¦null|false|none|none| -|greatest_dimension_tumour|integer¦null|false|none|none| - -

NestedTreatment

- - - - - - -```json -{ - "submitter_treatment_id": "string", - "is_primary_treatment": "Yes", - "treatment_start_date": "string", - "treatment_end_date": "string", - "treatment_setting": "Adjuvant", - "treatment_intent": "Curative", - "days_per_cycle": 32767, - "number_of_cycles": 32767, - "line_of_treatment": -2147483648, - "status_of_treatment": "Treatment completed as prescribed", - "treatment_type": [ - "Bone marrow transplant" - ], - "response_to_treatment_criteria_method": "RECIST 1.1", - "response_to_treatment": "Complete response", - "chemotherapies": [ - { - "chemotherapy_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "hormone_therapies": [ - { - "hormone_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "immunotherapies": [ - { - "immunotherapy_type": "Cell-based", - "drug_reference_database": "RxNorm", - "immunotherapy_drug_dose_units": "mg/m2", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "radiations": [ - { - "radiation_therapy_modality": "Megavoltage radiation therapy using photons (procedure)", - "radiation_therapy_type": "External", - "anatomical_site_irradiated": "Left Abdomen", - "radiation_therapy_fractions": 32767, - "radiation_therapy_dosage": 32767, - "radiation_boost": true, - "reference_radiation_treatment_id": "string" - } - ], - "surgeries": [ - { - "surgery_type": "Ablation", - "surgery_site": "string", - "surgery_location": "Local recurrence", - "tumour_focality": "Cannot be assessed", - "residual_tumour_classification": "Not applicable", - "margin_types_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_assessed": [ - "Circumferential resection margin" - ], - "lymphovascular_invasion": "Absent", - "perineural_invasion": "Absent", - "submitter_specimen_id": "string", - "tumour_length": 32767, - "tumour_width": 32767, - "greatest_dimension_tumour": 32767 - } - ], - "followups": [ - { - "submitter_follow_up_id": "string", - "date_of_followup": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_treatment_id|string|true|none|none| -|is_primary_treatment|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[uBooleanEnum](#schemaubooleanenum)|false|none|* `Yes` - Yes
* `No` - No
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|treatment_start_date|string¦null|false|none|none| -|treatment_end_date|string¦null|false|none|none| -|treatment_setting|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TreatmentSettingEnum](#schematreatmentsettingenum)|false|none|* `Adjuvant` - Adjuvant
* `Advanced/Metastatic` - Advanced/Metastatic
* `Neoadjuvant` - Neoadjuvant
* `Conditioning` - Conditioning
* `Induction` - Induction
* `Locally advanced` - Locally advanced
* `Maintenance` - Maintenance
* `Mobilization` - Mobilization
* `Preventative` - Preventative
* `Radiosensitization` - Radiosensitization
* `Salvage` - Salvage| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|treatment_intent|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TreatmentIntentEnum](#schematreatmentintentenum)|false|none|* `Curative` - Curative
* `Palliative` - Palliative
* `Supportive` - Supportive
* `Diagnostic` - Diagnostic
* `Preventive` - Preventive
* `Guidance` - Guidance
* `Screening` - Screening
* `Forensic` - Forensic| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|days_per_cycle|integer¦null|false|none|none| -|number_of_cycles|integer¦null|false|none|none| -|line_of_treatment|integer¦null|false|none|none| -|status_of_treatment|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StatusOfTreatmentEnum](#schemastatusoftreatmentenum)|false|none|* `Treatment completed as prescribed` - Treatment completed as prescribed
* `Treatment incomplete due to technical or organizational problems` - Treatment incomplete due to technical or organizational problems
* `Treatment incomplete because patient died` - Treatment incomplete because patient died
* `Patient choice (stopped or interrupted treatment)` - Patient choice (stopped or interrupted treatment)
* `Physician decision (stopped or interrupted treatment)` - Physician decision (stopped or interrupted treatment)
* `Treatment stopped due to lack of efficacy (disease progression)` - Treatment stopped due to lack of efficacy (disease progression)
* `Treatment stopped due to acute toxicity` - Treatment stopped due to acute toxicity
* `Other` - Other
* `Not applicable` - Not applicable
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|treatment_type|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TreatmentTypeEnum](#schematreatmenttypeenum)|false|none|* `Bone marrow transplant` - Bone marrow transplant
* `Chemotherapy` - Chemotherapy
* `Hormonal therapy` - Hormonal therapy
* `Immunotherapy` - Immunotherapy
* `No treatment` - No treatment
* `Other targeting molecular therapy` - Other targeting molecular therapy
* `Photodynamic therapy` - Photodynamic therapy
* `Radiation therapy` - Radiation therapy
* `Stem cell transplant` - Stem cell transplant
* `Surgery` - Surgery| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|response_to_treatment_criteria_method|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ResponseToTreatmentCriteriaMethodEnum](#schemaresponsetotreatmentcriteriamethodenum)|false|none|* `RECIST 1.1` - RECIST 1.1
* `iRECIST` - iRECIST
* `Cheson CLL 2012 Oncology Response Criteria` - Cheson CLL 2012 Oncology Response Criteria
* `Response Assessment in Neuro-Oncology (RANO)` - Response Assessment in Neuro-Oncology (RANO)
* `AML Response Criteria` - AML Response Criteria
* `Physician Assessed Response Criteria` - Physician Assessed Response Criteria
* `Blazer score` - Blazer score| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|response_to_treatment|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ResponseToTreatmentEnum](#schemaresponsetotreatmentenum)|false|none|* `Complete response` - Complete response
* `Partial response` - Partial response
* `Progressive disease` - Progressive disease
* `Stable disease` - Stable disease
* `Immune complete response (iCR)` - Immune complete response (iCR)
* `Immune partial response (iPR)` - Immune partial response (iPR)
* `Immune uncomfirmed progressive disease (iUPD)` - Immune uncomfirmed progressive disease (iUPD)
* `Immune confirmed progressive disease (iCPD)` - Immune confirmed progressive disease (iCPD)
* `Immune stable disease (iSD)` - Immune stable disease (iSD)
* `Complete remission` - Complete remission
* `Partial remission` - Partial remission
* `Minor response` - Minor response
* `Complete remission without measurable residual disease (CR MRD-)` - Complete remission without measurable residual disease (CR MRD-)
* `Complete remission with incomplete hematologic recovery (CRi)` - Complete remission with incomplete hematologic recovery (CRi)
* `Morphologic leukemia-free state` - Morphologic leukemia-free state
* `Primary refractory disease` - Primary refractory disease
* `Hematologic relapse (after CR MRD-, CR, CRi)` - Hematologic relapse (after CR MRD-, CR, CRi)
* `Molecular relapse (after CR MRD-)` - Molecular relapse (after CR MRD-)
* `Physician assessed complete response` - Physician assessed complete response
* `Physician assessed partial response` - Physician assessed partial response
* `Physician assessed stable disease` - Physician assessed stable disease
* `No evidence of disease (NED)` - No evidence of disease (NED)
* `Major response` - Major response| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|chemotherapies|[[NestedChemotherapy](#schemanestedchemotherapy)]|false|read-only|none| -|hormone_therapies|[[NestedHormoneTherapy](#schemanestedhormonetherapy)]|false|read-only|none| -|immunotherapies|[[NestedImmunotherapy](#schemanestedimmunotherapy)]|false|read-only|none| -|radiations|[[NestedRadiation](#schemanestedradiation)]|false|read-only|none| -|surgeries|[[NestedSurgery](#schemanestedsurgery)]|false|read-only|none| -|followups|[[NestedFollowUp](#schemanestedfollowup)]|false|read-only|none| - -

NullEnum

- - - - - - -```json -null - -``` - -### Properties - -*None* - -

PaginatedBiomarkerList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "er_status": "Cannot be determined", - "pr_status": "Cannot be determined", - "her2_ihc_status": "Cannot be determined", - "her2_ish_status": "Cannot be determined", - "hpv_ihc_status": "Cannot be determined", - "hpv_pcr_status": "Cannot be determined", - "hpv_strain": [ - "HPV16" - ], - "submitter_specimen_id": "string", - "submitter_primary_diagnosis_id": "string", - "submitter_treatment_id": "string", - "submitter_follow_up_id": "string", - "test_date": "string", - "psa_level": 32767, - "ca125": 32767, - "cea": 32767, - "er_percent_positive": 0, - "pr_percent_positive": 0, - "program_id": "string", - "submitter_donor_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[Biomarker](#schemabiomarker)]|false|none|none| - -

PaginatedChemotherapyList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "chemotherapy_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[Chemotherapy](#schemachemotherapy)]|false|none|none| - -

PaginatedComorbidityList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "prior_malignancy": "Yes", - "laterality_of_prior_malignancy": "Bilateral", - "comorbidity_type_code": "string", - "comorbidity_treatment_status": "Yes", - "comorbidity_treatment": "string", - "age_at_comorbidity_diagnosis": 32767, - "program_id": "string", - "submitter_donor_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[Comorbidity](#schemacomorbidity)]|false|none|none| - -

PaginatedDonorList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_donor_id": "string", - "cause_of_death": "Died of cancer", - "date_of_birth": "string", - "date_of_death": "string", - "primary_site": [ - "Accessory sinuses" - ], - "gender": "Man", - "sex_at_birth": "Male", - "lost_to_followup_reason": "Completed study", - "date_alive_after_lost_to_followup": "string", - "is_deceased": true, - "lost_to_followup_after_clinical_event_identifier": "string", - "program_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[Donor](#schemadonor)]|false|none|none| - -

PaginatedDonorWithClinicalDataList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_donor_id": "string", - "program_id": "string", - "lost_to_followup_after_clinical_event_identifier": "string", - "lost_to_followup_reason": "Completed study", - "date_alive_after_lost_to_followup": "string", - "is_deceased": true, - "cause_of_death": "Died of cancer", - "date_of_birth": "string", - "date_of_death": "string", - "gender": "Man", - "sex_at_birth": "Male", - "primary_site": [ - "Accessory sinuses" - ], - "primary_diagnoses": [ - { - "submitter_primary_diagnosis_id": "string", - "date_of_diagnosis": "string", - "cancer_type_code": "string", - "basis_of_diagnosis": "Clinical investigation", - "lymph_nodes_examined_status": "Cannot be determined", - "lymph_nodes_examined_method": "Imaging", - "number_lymph_nodes_positive": 32767, - "clinical_tumour_staging_system": "AJCC 8th edition", - "clinical_t_category": "T0", - "clinical_n_category": "N0", - "clinical_m_category": "M0", - "clinical_stage_group": "Stage 0", - "laterality": "Bilateral", - "specimens": [ - { - "submitter_specimen_id": "string", - "pathological_tumour_staging_system": "AJCC 8th edition", - "pathological_t_category": "T0", - "pathological_n_category": "N0", - "pathological_m_category": "M0", - "pathological_stage_group": "Stage 0", - "specimen_collection_date": "string", - "specimen_storage": "Cut slide", - "tumour_histological_type": "string", - "specimen_anatomic_location": "string", - "reference_pathology_confirmed_diagnosis": "Yes", - "reference_pathology_confirmed_tumour_presence": "Yes", - "tumour_grading_system": "FNCLCC grading system", - "tumour_grade": "Low grade", - "percent_tumour_cells_range": "0-19%", - "percent_tumour_cells_measurement_method": "Genomics", - "specimen_processing": "Cryopreservation in liquid nitrogen (dead tissue)", - "specimen_laterality": "Left", - "sample_registrations": [ - { - "submitter_sample_id": "string", - "specimen_tissue_source": "Abdominal fluid", - "tumour_normal_designation": "Normal", - "specimen_type": "Cell line - derived from normal", - "sample_type": "Amplified DNA" - } - ] - } - ], - "treatments": [ - { - "submitter_treatment_id": "string", - "is_primary_treatment": "Yes", - "treatment_start_date": "string", - "treatment_end_date": "string", - "treatment_setting": "Adjuvant", - "treatment_intent": "Curative", - "days_per_cycle": 32767, - "number_of_cycles": 32767, - "line_of_treatment": -2147483648, - "status_of_treatment": "Treatment completed as prescribed", - "treatment_type": [ - "Bone marrow transplant" - ], - "response_to_treatment_criteria_method": "RECIST 1.1", - "response_to_treatment": "Complete response", - "chemotherapies": [ - { - "chemotherapy_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "hormone_therapies": [ - { - "hormone_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "immunotherapies": [ - { - "immunotherapy_type": "Cell-based", - "drug_reference_database": "RxNorm", - "immunotherapy_drug_dose_units": "mg/m2", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767 - } - ], - "radiations": [ - { - "radiation_therapy_modality": "Megavoltage radiation therapy using photons (procedure)", - "radiation_therapy_type": "External", - "anatomical_site_irradiated": "Left Abdomen", - "radiation_therapy_fractions": 32767, - "radiation_therapy_dosage": 32767, - "radiation_boost": true, - "reference_radiation_treatment_id": "string" - } - ], - "surgeries": [ - { - "surgery_type": "Ablation", - "surgery_site": "string", - "surgery_location": "Local recurrence", - "tumour_focality": "Cannot be assessed", - "residual_tumour_classification": "Not applicable", - "margin_types_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_assessed": [ - "Circumferential resection margin" - ], - "lymphovascular_invasion": "Absent", - "perineural_invasion": "Absent", - "submitter_specimen_id": "string", - "tumour_length": 32767, - "tumour_width": 32767, - "greatest_dimension_tumour": 32767 - } - ], - "followups": [ - { - "submitter_follow_up_id": "string", - "date_of_followup": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0" - } - ] - } - ], - "followups": [ - { - "submitter_follow_up_id": "string", - "date_of_followup": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0" - } - ] - } - ], - "comorbidities": [ - { - "prior_malignancy": "Yes", - "laterality_of_prior_malignancy": "Bilateral", - "comorbidity_type_code": "string", - "comorbidity_treatment_status": "Yes", - "comorbidity_treatment": "string", - "age_at_comorbidity_diagnosis": 32767 - } - ], - "exposures": [ - { - "tobacco_smoking_status": "Current reformed smoker for <= 15 years", - "tobacco_type": [ - "Chewing Tobacco" - ], - "pack_years_smoked": 0 - } - ], - "biomarkers": [ - { - "er_status": "Cannot be determined", - "pr_status": "Cannot be determined", - "her2_ihc_status": "Cannot be determined", - "her2_ish_status": "Cannot be determined", - "hpv_ihc_status": "Cannot be determined", - "hpv_pcr_status": "Cannot be determined", - "hpv_strain": [ - "HPV16" - ], - "submitter_specimen_id": "string", - "submitter_primary_diagnosis_id": "string", - "submitter_treatment_id": "string", - "submitter_follow_up_id": "string", - "test_date": "string", - "psa_level": 32767, - "ca125": 32767, - "cea": 32767, - "er_percent_positive": 0, - "pr_percent_positive": 0 - } - ], - "followups": [ - { - "submitter_follow_up_id": "string", - "date_of_followup": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0" - } - ] - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[DonorWithClinicalData](#schemadonorwithclinicaldata)]|false|none|none| - -

PaginatedExposureList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "tobacco_smoking_status": "Current reformed smoker for <= 15 years", - "tobacco_type": [ - "Chewing Tobacco" - ], - "pack_years_smoked": 0, - "program_id": "string", - "submitter_donor_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[Exposure](#schemaexposure)]|false|none|none| - -

PaginatedFollowUpList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_follow_up_id": "string", - "disease_status_at_followup": "Complete remission", - "relapse_type": "Distant recurrence/metastasis", - "date_of_relapse": "string", - "method_of_progression_status": [ - "Imaging (procedure)" - ], - "anatomic_site_progression_or_recurrence": [ - "string" - ], - "recurrence_tumour_staging_system": "AJCC 8th edition", - "recurrence_t_category": "T0", - "recurrence_n_category": "N0", - "recurrence_m_category": "M0", - "recurrence_stage_group": "Stage 0", - "date_of_followup": "string", - "program_id": "string", - "submitter_donor_id": "string", - "submitter_primary_diagnosis_id": "string", - "submitter_treatment_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[FollowUp](#schemafollowup)]|false|none|none| - -

PaginatedHormoneTherapyList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "hormone_drug_dose_units": "mg/m2", - "drug_reference_database": "RxNorm", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[HormoneTherapy](#schemahormonetherapy)]|false|none|none| - -

PaginatedImmunotherapyList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "immunotherapy_type": "Cell-based", - "drug_reference_database": "RxNorm", - "immunotherapy_drug_dose_units": "mg/m2", - "drug_name": "string", - "drug_reference_identifier": "string", - "prescribed_cumulative_drug_dose": 32767, - "actual_cumulative_drug_dose": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[Immunotherapy](#schemaimmunotherapy)]|false|none|none| - -

PaginatedPrimaryDiagnosisList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_primary_diagnosis_id": "string", - "date_of_diagnosis": "string", - "basis_of_diagnosis": "Clinical investigation", - "lymph_nodes_examined_status": "Cannot be determined", - "lymph_nodes_examined_method": "Imaging", - "clinical_tumour_staging_system": "AJCC 8th edition", - "clinical_t_category": "T0", - "clinical_n_category": "N0", - "clinical_m_category": "M0", - "clinical_stage_group": "Stage 0", - "laterality": "Bilateral", - "cancer_type_code": "string", - "number_lymph_nodes_positive": 32767, - "program_id": "string", - "submitter_donor_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[PrimaryDiagnosis](#schemaprimarydiagnosis)]|false|none|none| - -

PaginatedProgramList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "program_id": "string", - "metadata": { - "property1": null, - "property2": null - }, - "created": "2019-08-24T14:15:22Z", - "updated": "2019-08-24T14:15:22Z" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[Program](#schemaprogram)]|false|none|none| - -

PaginatedRadiationList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "radiation_therapy_modality": "Megavoltage radiation therapy using photons (procedure)", - "radiation_therapy_type": "External", - "anatomical_site_irradiated": "Left Abdomen", - "radiation_therapy_fractions": 32767, - "radiation_therapy_dosage": 32767, - "radiation_boost": true, - "reference_radiation_treatment_id": "string", - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[Radiation](#schemaradiation)]|false|none|none| - -

PaginatedSampleRegistrationList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_sample_id": "string", - "specimen_tissue_source": "Abdominal fluid", - "tumour_normal_designation": "Normal", - "specimen_type": "Cell line - derived from normal", - "sample_type": "Amplified DNA", - "program_id": "string", - "submitter_donor_id": "string", - "submitter_specimen_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[SampleRegistration](#schemasampleregistration)]|false|none|none| - -

PaginatedSpecimenList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_specimen_id": "string", - "pathological_tumour_staging_system": "AJCC 8th edition", - "pathological_t_category": "T0", - "pathological_n_category": "N0", - "pathological_m_category": "M0", - "pathological_stage_group": "Stage 0", - "specimen_collection_date": "string", - "specimen_storage": "Cut slide", - "tumour_histological_type": "string", - "specimen_anatomic_location": "string", - "reference_pathology_confirmed_diagnosis": "Yes", - "reference_pathology_confirmed_tumour_presence": "Yes", - "tumour_grading_system": "FNCLCC grading system", - "tumour_grade": "Low grade", - "percent_tumour_cells_range": "0-19%", - "percent_tumour_cells_measurement_method": "Genomics", - "specimen_processing": "Cryopreservation in liquid nitrogen (dead tissue)", - "specimen_laterality": "Left", - "program_id": "string", - "submitter_donor_id": "string", - "submitter_primary_diagnosis_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[Specimen](#schemaspecimen)]|false|none|none| - -

PaginatedSurgeryList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "surgery_type": "Ablation", - "surgery_site": "string", - "surgery_location": "Local recurrence", - "tumour_focality": "Cannot be assessed", - "residual_tumour_classification": "Not applicable", - "margin_types_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_assessed": [ - "Circumferential resection margin" - ], - "lymphovascular_invasion": "Absent", - "perineural_invasion": "Absent", - "submitter_specimen_id": "string", - "tumour_length": 32767, - "tumour_width": 32767, - "greatest_dimension_tumour": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[Surgery](#schemasurgery)]|false|none|none| - -

PaginatedTreatmentList

- - - - - - -```json -{ - "count": 123, - "next": "http://api.example.org/accounts/?page=4", - "previous": "http://api.example.org/accounts/?page=2", - "results": [ - { - "submitter_treatment_id": "string", - "treatment_type": [ - "Bone marrow transplant" - ], - "is_primary_treatment": "Yes", - "treatment_start_date": "string", - "treatment_end_date": "string", - "treatment_setting": "Adjuvant", - "treatment_intent": "Curative", - "response_to_treatment_criteria_method": "RECIST 1.1", - "response_to_treatment": "Complete response", - "status_of_treatment": "Treatment completed as prescribed", - "line_of_treatment": -2147483648, - "days_per_cycle": 32767, - "number_of_cycles": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_primary_diagnosis_id": "string" - } - ] -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|count|integer|false|none|none| -|next|string(uri)¦null|false|none|none| -|previous|string(uri)¦null|false|none|none| -|results|[[Treatment](#schematreatment)]|false|none|none| - -

PercentTumourCellsMeasurementMethodEnum

- - - - - - -```json -"Genomics" - -``` - -* `Genomics` - Genomics -* `Image analysis` - Image analysis -* `Pathology estimate by percent nuclei` - Pathology estimate by percent nuclei -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Genomics` - Genomics
* `Image analysis` - Image analysis
* `Pathology estimate by percent nuclei` - Pathology estimate by percent nuclei
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Genomics| -|*anonymous*|Image analysis| -|*anonymous*|Pathology estimate by percent nuclei| -|*anonymous*|Unknown| - -

PercentTumourCellsRangeEnum

- - - - - - -```json -"0-19%" - -``` - -* `0-19%` - 0-19% -* `20-50%` - 20-50% -* `51-100%` - 51-100% - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `0-19%` - 0-19%
* `20-50%` - 20-50%
* `51-100%` - 51-100%| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|0-19%| -|*anonymous*|20-50%| -|*anonymous*|51-100%| - -

PerineuralInvasionEnum

- - - - - - -```json -"Absent" - -``` - -* `Absent` - Absent -* `Cannot be assessed` - Cannot be assessed -* `Not applicable` - Not applicable -* `Present` - Present -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Absent` - Absent
* `Cannot be assessed` - Cannot be assessed
* `Not applicable` - Not applicable
* `Present` - Present
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Absent| -|*anonymous*|Cannot be assessed| -|*anonymous*|Not applicable| -|*anonymous*|Present| -|*anonymous*|Unknown| - -

PrimaryDiagnosis

- - - - - - -```json -{ - "submitter_primary_diagnosis_id": "string", - "date_of_diagnosis": "string", - "basis_of_diagnosis": "Clinical investigation", - "lymph_nodes_examined_status": "Cannot be determined", - "lymph_nodes_examined_method": "Imaging", - "clinical_tumour_staging_system": "AJCC 8th edition", - "clinical_t_category": "T0", - "clinical_n_category": "N0", - "clinical_m_category": "M0", - "clinical_stage_group": "Stage 0", - "laterality": "Bilateral", - "cancer_type_code": "string", - "number_lymph_nodes_positive": 32767, - "program_id": "string", - "submitter_donor_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_primary_diagnosis_id|string|true|none|none| -|date_of_diagnosis|string¦null|false|none|none| -|basis_of_diagnosis|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BasisOfDiagnosisEnum](#schemabasisofdiagnosisenum)|false|none|* `Clinical investigation` - Clinical investigation
* `Clinical` - Clinical
* `Cytology` - Cytology
* `Death certificate only` - Death certificate only
* `Histology of a metastasis` - Histology of a metastasis
* `Histology of a primary tumour` - Histology of a primary tumour
* `Specific tumour markers` - Specific tumour markers
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|lymph_nodes_examined_status|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[LymphNodesExaminedStatusEnum](#schemalymphnodesexaminedstatusenum)|false|none|* `Cannot be determined` - Cannot be determined
* `No` - No
* `No lymph nodes found in resected specimen` - No lymph nodes found in resected specimen
* `Not applicable` - Not applicable
* `Yes` - Yes| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|lymph_nodes_examined_method|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[LymphNodesExaminedMethodEnum](#schemalymphnodesexaminedmethodenum)|false|none|* `Imaging` - Imaging
* `Lymph node dissection/pathological exam` - Lymph node dissection/pathological exam
* `Physical palpation of patient` - Physical palpation of patient| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|clinical_tumour_staging_system|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StagingSystemEnum](#schemastagingsystemenum)|false|none|* `AJCC 8th edition` - AJCC 8th edition
* `AJCC 7th edition` - AJCC 7th edition
* `AJCC 6th edition` - AJCC 6th edition
* `Ann Arbor staging system` - Ann Arbor staging system
* `Binet staging system` - Binet staging system
* `Durie-Salmon staging system` - Durie-Salmon staging system
* `FIGO staging system` - FIGO staging system
* `International Neuroblastoma Risk Group Staging System` - International Neuroblastoma Risk Group Staging System
* `International Neuroblastoma Staging System` - International Neuroblastoma Staging System
* `Lugano staging system` - Lugano staging system
* `Rai staging system` - Rai staging system
* `Revised International staging system (RISS)` - Revised International staging system (RISS)
* `SEER staging system` - SEER staging system
* `St Jude staging system` - St Jude staging system| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|clinical_t_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TCategoryEnum](#schematcategoryenum)|false|none|* `T0` - T0
* `T1` - T1
* `T1a` - T1a
* `T1a1` - T1a1
* `T1a2` - T1a2
* `T1a(s)` - T1a(s)
* `T1a(m)` - T1a(m)
* `T1b` - T1b
* `T1b1` - T1b1
* `T1b2` - T1b2
* `T1b(s)` - T1b(s)
* `T1b(m)` - T1b(m)
* `T1c` - T1c
* `T1d` - T1d
* `T1mi` - T1mi
* `T2` - T2
* `T2(s)` - T2(s)
* `T2(m)` - T2(m)
* `T2a` - T2a
* `T2a1` - T2a1
* `T2a2` - T2a2
* `T2b` - T2b
* `T2c` - T2c
* `T2d` - T2d
* `T3` - T3
* `T3(s)` - T3(s)
* `T3(m)` - T3(m)
* `T3a` - T3a
* `T3b` - T3b
* `T3c` - T3c
* `T3d` - T3d
* `T3e` - T3e
* `T4` - T4
* `T4a` - T4a
* `T4a(s)` - T4a(s)
* `T4a(m)` - T4a(m)
* `T4b` - T4b
* `T4b(s)` - T4b(s)
* `T4b(m)` - T4b(m)
* `T4c` - T4c
* `T4d` - T4d
* `T4e` - T4e
* `Ta` - Ta
* `Tis` - Tis
* `Tis(DCIS)` - Tis(DCIS)
* `Tis(LAMN)` - Tis(LAMN)
* `Tis(LCIS)` - Tis(LCIS)
* `Tis(Paget)` - Tis(Paget)
* `Tis(Paget's)` - Tis(Paget's)
* `Tis pu` - Tis pu
* `Tis pd` - Tis pd
* `TX` - TX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|clinical_n_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NCategoryEnum](#schemancategoryenum)|false|none|* `N0` - N0
* `N0a` - N0a
* `N0a (biopsy)` - N0a (biopsy)
* `N0b` - N0b
* `N0b (no biopsy)` - N0b (no biopsy)
* `N0(i+)` - N0(i+)
* `N0(i-)` - N0(i-)
* `N0(mol+)` - N0(mol+)
* `N0(mol-)` - N0(mol-)
* `N1` - N1
* `N1a` - N1a
* `N1a(sn)` - N1a(sn)
* `N1b` - N1b
* `N1c` - N1c
* `N1mi` - N1mi
* `N2` - N2
* `N2a` - N2a
* `N2b` - N2b
* `N2c` - N2c
* `N2mi` - N2mi
* `N3` - N3
* `N3a` - N3a
* `N3b` - N3b
* `N3c` - N3c
* `N4` - N4
* `NX` - NX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|clinical_m_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MCategoryEnum](#schemamcategoryenum)|false|none|* `M0` - M0
* `M0(i+)` - M0(i+)
* `M1` - M1
* `M1a` - M1a
* `M1a(0)` - M1a(0)
* `M1a(1)` - M1a(1)
* `M1b` - M1b
* `M1b(0)` - M1b(0)
* `M1b(1)` - M1b(1)
* `M1c` - M1c
* `M1c(0)` - M1c(0)
* `M1c(1)` - M1c(1)
* `M1d` - M1d
* `M1d(0)` - M1d(0)
* `M1d(1)` - M1d(1)
* `M1e` - M1e
* `MX` - MX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|clinical_stage_group|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StageGroupEnum](#schemastagegroupenum)|false|none|* `Stage 0` - Stage 0
* `Stage 0a` - Stage 0a
* `Stage 0is` - Stage 0is
* `Stage 1` - Stage 1
* `Stage 1A` - Stage 1A
* `Stage 1B` - Stage 1B
* `Stage A` - Stage A
* `Stage B` - Stage B
* `Stage C` - Stage C
* `Stage I` - Stage I
* `Stage IA` - Stage IA
* `Stage IA1` - Stage IA1
* `Stage IA2` - Stage IA2
* `Stage IA3` - Stage IA3
* `Stage IAB` - Stage IAB
* `Stage IAE` - Stage IAE
* `Stage IAES` - Stage IAES
* `Stage IAS` - Stage IAS
* `Stage IB` - Stage IB
* `Stage IB1` - Stage IB1
* `Stage IB2` - Stage IB2
* `Stage IBE` - Stage IBE
* `Stage IBES` - Stage IBES
* `Stage IBS` - Stage IBS
* `Stage IC` - Stage IC
* `Stage IE` - Stage IE
* `Stage IEA` - Stage IEA
* `Stage IEB` - Stage IEB
* `Stage IES` - Stage IES
* `Stage II` - Stage II
* `Stage II bulky` - Stage II bulky
* `Stage IIA` - Stage IIA
* `Stage IIA1` - Stage IIA1
* `Stage IIA2` - Stage IIA2
* `Stage IIAE` - Stage IIAE
* `Stage IIAES` - Stage IIAES
* `Stage IIAS` - Stage IIAS
* `Stage IIB` - Stage IIB
* `Stage IIBE` - Stage IIBE
* `Stage IIBES` - Stage IIBES
* `Stage IIBS` - Stage IIBS
* `Stage IIC` - Stage IIC
* `Stage IIE` - Stage IIE
* `Stage IIEA` - Stage IIEA
* `Stage IIEB` - Stage IIEB
* `Stage IIES` - Stage IIES
* `Stage III` - Stage III
* `Stage IIIA` - Stage IIIA
* `Stage IIIA1` - Stage IIIA1
* `Stage IIIA2` - Stage IIIA2
* `Stage IIIAE` - Stage IIIAE
* `Stage IIIAES` - Stage IIIAES
* `Stage IIIAS` - Stage IIIAS
* `Stage IIIB` - Stage IIIB
* `Stage IIIBE` - Stage IIIBE
* `Stage IIIBES` - Stage IIIBES
* `Stage IIIBS` - Stage IIIBS
* `Stage IIIC` - Stage IIIC
* `Stage IIIC1` - Stage IIIC1
* `Stage IIIC2` - Stage IIIC2
* `Stage IIID` - Stage IIID
* `Stage IIIE` - Stage IIIE
* `Stage IIIES` - Stage IIIES
* `Stage IIIS` - Stage IIIS
* `Stage IIS` - Stage IIS
* `Stage IS` - Stage IS
* `Stage IV` - Stage IV
* `Stage IVA` - Stage IVA
* `Stage IVA1` - Stage IVA1
* `Stage IVA2` - Stage IVA2
* `Stage IVAE` - Stage IVAE
* `Stage IVAES` - Stage IVAES
* `Stage IVAS` - Stage IVAS
* `Stage IVB` - Stage IVB
* `Stage IVBE` - Stage IVBE
* `Stage IVBES` - Stage IVBES
* `Stage IVBS` - Stage IVBS
* `Stage IVC` - Stage IVC
* `Stage IVE` - Stage IVE
* `Stage IVES` - Stage IVES
* `Stage IVS` - Stage IVS
* `In situ` - In situ
* `Localized` - Localized
* `Regionalized` - Regionalized
* `Distant` - Distant
* `Stage L1` - Stage L1
* `Stage L2` - Stage L2
* `Stage M` - Stage M
* `Stage Ms` - Stage Ms
* `Stage 2A` - Stage 2A
* `Stage 2B` - Stage 2B
* `Stage 3` - Stage 3
* `Stage 4` - Stage 4
* `Stage 4S` - Stage 4S
* `Occult Carcinoma` - Occult Carcinoma| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|laterality|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[LateralityEnum](#schemalateralityenum)|false|none|* `Bilateral` - Bilateral
* `Left` - Left
* `Midline` - Midline
* `Not a paired site` - Not a paired site
* `Right` - Right
* `Unilateral, side not specified` - Unilateral, side not specified
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|cancer_type_code|string¦null|false|none|none| -|number_lymph_nodes_positive|integer¦null|false|none|none| -|program_id|string|true|none|none| -|submitter_donor_id|string|true|none|none| - -

PrimarySiteEnum

- - - - - - -```json -"Accessory sinuses" - -``` - -* `Accessory sinuses` - Accessory sinuses -* `Adrenal gland` - Adrenal gland -* `Anus and anal canal` - Anus and anal canal -* `Base of tongue` - Base of tongue -* `Bladder` - Bladder -* `Bones, joints and articular cartilage of limbs` - Bones, joints and articular cartilage of limbs -* `Bones, joints and articular cartilage of other and unspecified sites` - Bones, joints and articular cartilage of other and unspecified sites -* `Brain` - Brain -* `Breast` - Breast -* `Bronchus and lung` - Bronchus and lung -* `Cervix uteri` - Cervix uteri -* `Colon` - Colon -* `Connective, subcutaneous and other soft tissues` - Connective, subcutaneous and other soft tissues -* `Corpus uteri` - Corpus uteri -* `Esophagus` - Esophagus -* `Eye and adnexa` - Eye and adnexa -* `Floor of mouth` - Floor of mouth -* `Gallbladder` - Gallbladder -* `Gum` - Gum -* `Heart, mediastinum, and pleura` - Heart, mediastinum, and pleura -* `Hematopoietic and reticuloendothelial systems` - Hematopoietic and reticuloendothelial systems -* `Hypopharynx` - Hypopharynx -* `Kidney` - Kidney -* `Larynx` - Larynx -* `Lip` - Lip -* `Liver and intrahepatic bile ducts` - Liver and intrahepatic bile ducts -* `Lymph nodes` - Lymph nodes -* `Meninges` - Meninges -* `Nasal cavity and middle ear` - Nasal cavity and middle ear -* `Nasopharynx` - Nasopharynx -* `Oropharynx` - Oropharynx -* `Other and ill-defined digestive organs` - Other and ill-defined digestive organs -* `Other and ill-defined sites` - Other and ill-defined sites -* `Other and ill-defined sites in lip, oral cavity and pharynx` - Other and ill-defined sites in lip, oral cavity and pharynx -* `Other and ill-defined sites within respiratory system and intrathoracic organs` - Other and ill-defined sites within respiratory system and intrathoracic organs -* `Other and unspecified female genital organs` - Other and unspecified female genital organs -* `Other and unspecified major salivary glands` - Other and unspecified major salivary glands -* `Other and unspecified male genital organs` - Other and unspecified male genital organs -* `Other and unspecified parts of biliary tract` - Other and unspecified parts of biliary tract -* `Other and unspecified parts of mouth` - Other and unspecified parts of mouth -* `Other and unspecified parts of tongue` - Other and unspecified parts of tongue -* `Other and unspecified urinary organs` - Other and unspecified urinary organs -* `Other endocrine glands and related structures` - Other endocrine glands and related structures -* `Ovary` - Ovary -* `Palate` - Palate -* `Pancreas` - Pancreas -* `Parotid gland` - Parotid gland -* `Penis` - Penis -* `Peripheral nerves and autonomic nervous system` - Peripheral nerves and autonomic nervous system -* `Placenta` - Placenta -* `Prostate gland` - Prostate gland -* `Pyriform sinus` - Pyriform sinus -* `Rectosigmoid junction` - Rectosigmoid junction -* `Rectum` - Rectum -* `Renal pelvis` - Renal pelvis -* `Retroperitoneum and peritoneum` - Retroperitoneum and peritoneum -* `Skin` - Skin -* `Small intestine` - Small intestine -* `Spinal cord, cranial nerves, and other parts of central nervous system` - Spinal cord, cranial nerves, and other parts of central nervous system -* `Stomach` - Stomach -* `Testis` - Testis -* `Thymus` - Thymus -* `Thyroid gland` - Thyroid gland -* `Tonsil` - Tonsil -* `Trachea` - Trachea -* `Ureter` - Ureter -* `Uterus, NOS` - Uterus, NOS -* `Vagina` - Vagina -* `Vulva` - Vulva -* `Unknown primary site` - Unknown primary site - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Accessory sinuses` - Accessory sinuses
* `Adrenal gland` - Adrenal gland
* `Anus and anal canal` - Anus and anal canal
* `Base of tongue` - Base of tongue
* `Bladder` - Bladder
* `Bones, joints and articular cartilage of limbs` - Bones, joints and articular cartilage of limbs
* `Bones, joints and articular cartilage of other and unspecified sites` - Bones, joints and articular cartilage of other and unspecified sites
* `Brain` - Brain
* `Breast` - Breast
* `Bronchus and lung` - Bronchus and lung
* `Cervix uteri` - Cervix uteri
* `Colon` - Colon
* `Connective, subcutaneous and other soft tissues` - Connective, subcutaneous and other soft tissues
* `Corpus uteri` - Corpus uteri
* `Esophagus` - Esophagus
* `Eye and adnexa` - Eye and adnexa
* `Floor of mouth` - Floor of mouth
* `Gallbladder` - Gallbladder
* `Gum` - Gum
* `Heart, mediastinum, and pleura` - Heart, mediastinum, and pleura
* `Hematopoietic and reticuloendothelial systems` - Hematopoietic and reticuloendothelial systems
* `Hypopharynx` - Hypopharynx
* `Kidney` - Kidney
* `Larynx` - Larynx
* `Lip` - Lip
* `Liver and intrahepatic bile ducts` - Liver and intrahepatic bile ducts
* `Lymph nodes` - Lymph nodes
* `Meninges` - Meninges
* `Nasal cavity and middle ear` - Nasal cavity and middle ear
* `Nasopharynx` - Nasopharynx
* `Oropharynx` - Oropharynx
* `Other and ill-defined digestive organs` - Other and ill-defined digestive organs
* `Other and ill-defined sites` - Other and ill-defined sites
* `Other and ill-defined sites in lip, oral cavity and pharynx` - Other and ill-defined sites in lip, oral cavity and pharynx
* `Other and ill-defined sites within respiratory system and intrathoracic organs` - Other and ill-defined sites within respiratory system and intrathoracic organs
* `Other and unspecified female genital organs` - Other and unspecified female genital organs
* `Other and unspecified major salivary glands` - Other and unspecified major salivary glands
* `Other and unspecified male genital organs` - Other and unspecified male genital organs
* `Other and unspecified parts of biliary tract` - Other and unspecified parts of biliary tract
* `Other and unspecified parts of mouth` - Other and unspecified parts of mouth
* `Other and unspecified parts of tongue` - Other and unspecified parts of tongue
* `Other and unspecified urinary organs` - Other and unspecified urinary organs
* `Other endocrine glands and related structures` - Other endocrine glands and related structures
* `Ovary` - Ovary
* `Palate` - Palate
* `Pancreas` - Pancreas
* `Parotid gland` - Parotid gland
* `Penis` - Penis
* `Peripheral nerves and autonomic nervous system` - Peripheral nerves and autonomic nervous system
* `Placenta` - Placenta
* `Prostate gland` - Prostate gland
* `Pyriform sinus` - Pyriform sinus
* `Rectosigmoid junction` - Rectosigmoid junction
* `Rectum` - Rectum
* `Renal pelvis` - Renal pelvis
* `Retroperitoneum and peritoneum` - Retroperitoneum and peritoneum
* `Skin` - Skin
* `Small intestine` - Small intestine
* `Spinal cord, cranial nerves, and other parts of central nervous system` - Spinal cord, cranial nerves, and other parts of central nervous system
* `Stomach` - Stomach
* `Testis` - Testis
* `Thymus` - Thymus
* `Thyroid gland` - Thyroid gland
* `Tonsil` - Tonsil
* `Trachea` - Trachea
* `Ureter` - Ureter
* `Uterus, NOS` - Uterus, NOS
* `Vagina` - Vagina
* `Vulva` - Vulva
* `Unknown primary site` - Unknown primary site| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Accessory sinuses| -|*anonymous*|Adrenal gland| -|*anonymous*|Anus and anal canal| -|*anonymous*|Base of tongue| -|*anonymous*|Bladder| -|*anonymous*|Bones, joints and articular cartilage of limbs| -|*anonymous*|Bones, joints and articular cartilage of other and unspecified sites| -|*anonymous*|Brain| -|*anonymous*|Breast| -|*anonymous*|Bronchus and lung| -|*anonymous*|Cervix uteri| -|*anonymous*|Colon| -|*anonymous*|Connective, subcutaneous and other soft tissues| -|*anonymous*|Corpus uteri| -|*anonymous*|Esophagus| -|*anonymous*|Eye and adnexa| -|*anonymous*|Floor of mouth| -|*anonymous*|Gallbladder| -|*anonymous*|Gum| -|*anonymous*|Heart, mediastinum, and pleura| -|*anonymous*|Hematopoietic and reticuloendothelial systems| -|*anonymous*|Hypopharynx| -|*anonymous*|Kidney| -|*anonymous*|Larynx| -|*anonymous*|Lip| -|*anonymous*|Liver and intrahepatic bile ducts| -|*anonymous*|Lymph nodes| -|*anonymous*|Meninges| -|*anonymous*|Nasal cavity and middle ear| -|*anonymous*|Nasopharynx| -|*anonymous*|Oropharynx| -|*anonymous*|Other and ill-defined digestive organs| -|*anonymous*|Other and ill-defined sites| -|*anonymous*|Other and ill-defined sites in lip, oral cavity and pharynx| -|*anonymous*|Other and ill-defined sites within respiratory system and intrathoracic organs| -|*anonymous*|Other and unspecified female genital organs| -|*anonymous*|Other and unspecified major salivary glands| -|*anonymous*|Other and unspecified male genital organs| -|*anonymous*|Other and unspecified parts of biliary tract| -|*anonymous*|Other and unspecified parts of mouth| -|*anonymous*|Other and unspecified parts of tongue| -|*anonymous*|Other and unspecified urinary organs| -|*anonymous*|Other endocrine glands and related structures| -|*anonymous*|Ovary| -|*anonymous*|Palate| -|*anonymous*|Pancreas| -|*anonymous*|Parotid gland| -|*anonymous*|Penis| -|*anonymous*|Peripheral nerves and autonomic nervous system| -|*anonymous*|Placenta| -|*anonymous*|Prostate gland| -|*anonymous*|Pyriform sinus| -|*anonymous*|Rectosigmoid junction| -|*anonymous*|Rectum| -|*anonymous*|Renal pelvis| -|*anonymous*|Retroperitoneum and peritoneum| -|*anonymous*|Skin| -|*anonymous*|Small intestine| -|*anonymous*|Spinal cord, cranial nerves, and other parts of central nervous system| -|*anonymous*|Stomach| -|*anonymous*|Testis| -|*anonymous*|Thymus| -|*anonymous*|Thyroid gland| -|*anonymous*|Tonsil| -|*anonymous*|Trachea| -|*anonymous*|Ureter| -|*anonymous*|Uterus, NOS| -|*anonymous*|Vagina| -|*anonymous*|Vulva| -|*anonymous*|Unknown primary site| - -

Program

- - - - - - -```json -{ - "program_id": "string", - "metadata": { - "property1": null, - "property2": null - }, - "created": "2019-08-24T14:15:22Z", - "updated": "2019-08-24T14:15:22Z" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|program_id|string|true|none|none| -|metadata|object¦null|false|none|none| -|» **additionalProperties**|any|false|none|none| -|created|string(date-time)|false|none|none| -|updated|string(date-time)|false|none|none| - -

Radiation

- - - - - - -```json -{ - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "radiation_therapy_modality": "Megavoltage radiation therapy using photons (procedure)", - "radiation_therapy_type": "External", - "anatomical_site_irradiated": "Left Abdomen", - "radiation_therapy_fractions": 32767, - "radiation_therapy_dosage": 32767, - "radiation_boost": true, - "reference_radiation_treatment_id": "string", - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|id|string(uuid)|false|none|none| -|radiation_therapy_modality|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[RadiationTherapyModalityEnum](#schemaradiationtherapymodalityenum)|false|none|* `Megavoltage radiation therapy using photons (procedure)` - Megavoltage radiation therapy using photons (procedure)
* `Radiopharmaceutical` - Radiopharmaceutical
* `Teleradiotherapy using electrons (procedure)` - Teleradiotherapy using electrons (procedure)
* `Teleradiotherapy protons (procedure)` - Teleradiotherapy protons (procedure)
* `Teleradiotherapy neutrons (procedure)` - Teleradiotherapy neutrons (procedure)
* `Brachytherapy (procedure)` - Brachytherapy (procedure)
* `Other` - Other| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|radiation_therapy_type|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[RadiationTherapyTypeEnum](#schemaradiationtherapytypeenum)|false|none|* `External` - External
* `Internal` - Internal| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|anatomical_site_irradiated|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[AnatomicalSiteIrradiatedEnum](#schemaanatomicalsiteirradiatedenum)|false|none|* `Left Abdomen` - Left Abdomen
* `Whole Abdomen` - Whole Abdomen
* `Right Abdomen` - Right Abdomen
* `Lower Abdomen` - Lower Abdomen
* `Left Lower Abdomen` - Left Lower Abdomen
* `Right Lower Abdomen` - Right Lower Abdomen
* `Upper Abdomen` - Upper Abdomen
* `Left Upper Abdomen` - Left Upper Abdomen
* `Right Upper Abdomen` - Right Upper Abdomen
* `Left Adrenal` - Left Adrenal
* `Right Adrenal` - Right Adrenal
* `Bilateral Ankle` - Bilateral Ankle
* `Left Ankle` - Left Ankle
* `Right Ankle` - Right Ankle
* `Bilateral Antrum (Bull's Eye)` - Bilateral Antrum (Bull's Eye)
* `Left Antrum` - Left Antrum
* `Right Antrum` - Right Antrum
* `Anus` - Anus
* `Lower Left Arm` - Lower Left Arm
* `Lower Right Arm` - Lower Right Arm
* `Bilateral Arms` - Bilateral Arms
* `Left Arm` - Left Arm
* `Right Arm` - Right Arm
* `Upper Left Arm` - Upper Left Arm
* `Upper Right Arm` - Upper Right Arm
* `Left Axilla` - Left Axilla
* `Right Axilla` - Right Axilla
* `Skin or Soft Tissue of Back` - Skin or Soft Tissue of Back
* `Bile Duct` - Bile Duct
* `Bladder` - Bladder
* `Lower Body` - Lower Body
* `Middle Body` - Middle Body
* `Upper Body` - Upper Body
* `Whole Body` - Whole Body
* `Boost - Area Previously Treated` - Boost - Area Previously Treated
* `Brain` - Brain
* `Left Breast Boost` - Left Breast Boost
* `Right Breast Boost` - Right Breast Boost
* `Bilateral Breast` - Bilateral Breast
* `Left Breast` - Left Breast
* `Right Breast` - Right Breast
* `Bilateral Breasts with Nodes` - Bilateral Breasts with Nodes
* `Left Breast with Nodes` - Left Breast with Nodes
* `Right Breast with Nodes` - Right Breast with Nodes
* `Bilateral Buttocks` - Bilateral Buttocks
* `Left Buttock` - Left Buttock
* `Right Buttock` - Right Buttock
* `Inner Canthus` - Inner Canthus
* `Outer Canthus` - Outer Canthus
* `Cervix` - Cervix
* `Bilateral Chest Lung & Area Involve` - Bilateral Chest Lung & Area Involve
* `Left Chest` - Left Chest
* `Right Chest` - Right Chest
* `Chin` - Chin
* `Left Cheek` - Left Cheek
* `Right Cheek` - Right Cheek
* `Bilateral Chest Wall (W/o Breast)` - Bilateral Chest Wall (W/o Breast)
* `Left Chest Wall` - Left Chest Wall
* `Right Chest Wall` - Right Chest Wall
* `Bilateral Clavicle` - Bilateral Clavicle
* `Left Clavicle` - Left Clavicle
* `Right Clavicle` - Right Clavicle
* `Coccyx` - Coccyx
* `Colon` - Colon
* `Whole C.N.S. (Medulla Techinque)` - Whole C.N.S. (Medulla Techinque)
* `Csf Spine (Medull Tech 2 Diff Machi` - Csf Spine (Medull Tech 2 Diff Machi
* `Left Chestwall Boost` - Left Chestwall Boost
* `Right Chestwall Boost` - Right Chestwall Boost
* `Bilateral Chestwall with Nodes` - Bilateral Chestwall with Nodes
* `Left Chestwall with Nodes` - Left Chestwall with Nodes
* `Right Chestwall with Nodes` - Right Chestwall with Nodes
* `Left Ear` - Left Ear
* `Right Ear` - Right Ear
* `Epigastrium` - Epigastrium
* `Lower Esophagus` - Lower Esophagus
* `Middle Esophagus` - Middle Esophagus
* `Upper Esophagus` - Upper Esophagus
* `Entire Esophagus` - Entire Esophagus
* `Ethmoid Sinus` - Ethmoid Sinus
* `Bilateral Eyes` - Bilateral Eyes
* `Left Eye` - Left Eye
* `Right Eye` - Right Eye
* `Bilateral Face` - Bilateral Face
* `Left Face` - Left Face
* `Right Face` - Right Face
* `Left Fallopian Tubes` - Left Fallopian Tubes
* `Right Fallopian Tubes` - Right Fallopian Tubes
* `Bilateral Femur` - Bilateral Femur
* `Left Femur` - Left Femur
* `Right Femur` - Right Femur
* `Left Fibula` - Left Fibula
* `Right Fibula` - Right Fibula
* `Finger (Including Thumbs)` - Finger (Including Thumbs)
* `Floor of Mouth (Boosts)` - Floor of Mouth (Boosts)
* `Bilateral Feet` - Bilateral Feet
* `Left Foot` - Left Foot
* `Right Foot` - Right Foot
* `Forehead` - Forehead
* `Posterior Fossa` - Posterior Fossa
* `Gall Bladder` - Gall Bladder
* `Gingiva` - Gingiva
* `Bilateral Hand` - Bilateral Hand
* `Left Hand` - Left Hand
* `Right Hand` - Right Hand
* `Head` - Head
* `Bilateral Heel` - Bilateral Heel
* `Left Heel` - Left Heel
* `Right Heel` - Right Heel
* `Left Hemimantle` - Left Hemimantle
* `Right Hemimantle` - Right Hemimantle
* `Heart` - Heart
* `Bilateral Hip` - Bilateral Hip
* `Left Hip` - Left Hip
* `Right Hip` - Right Hip
* `Left Humerus` - Left Humerus
* `Right Humerus` - Right Humerus
* `Hypopharynx` - Hypopharynx
* `Bilateral Internal Mammary Chain` - Bilateral Internal Mammary Chain
* `Bilateral Inguinal Nodes` - Bilateral Inguinal Nodes
* `Left Inguinal Nodes` - Left Inguinal Nodes
* `Right Inguinal Nodes` - Right Inguinal Nodes
* `Inverted 'Y' (Dog-Leg,Hockey-Stick)` - Inverted 'Y' (Dog-Leg,Hockey-Stick)
* `Left Kidney` - Left Kidney
* `Right Kidney` - Right Kidney
* `Bilateral Knee` - Bilateral Knee
* `Left Knee` - Left Knee
* `Right Knee` - Right Knee
* `Bilateral Lacrimal Gland` - Bilateral Lacrimal Gland
* `Left Lacrimal Gland` - Left Lacrimal Gland
* `Right Lacrimal Gland` - Right Lacrimal Gland
* `Larygopharynx` - Larygopharynx
* `Larynx` - Larynx
* `Bilateral Leg` - Bilateral Leg
* `Left Leg` - Left Leg
* `Right Leg` - Right Leg
* `Lower Bilateral Leg` - Lower Bilateral Leg
* `Lower Left Leg` - Lower Left Leg
* `Lower Right Leg` - Lower Right Leg
* `Upper Bilateral Leg` - Upper Bilateral Leg
* `Upper Left Leg` - Upper Left Leg
* `Upper Right Leg` - Upper Right Leg
* `Both Eyelid(s)` - Both Eyelid(s)
* `Left Eyelid` - Left Eyelid
* `Right Eyelid` - Right Eyelid
* `Both Lip(s)` - Both Lip(s)
* `Lower Lip` - Lower Lip
* `Upper Lip` - Upper Lip
* `Liver` - Liver
* `Bilateral Lung` - Bilateral Lung
* `Left Lung` - Left Lung
* `Right Lung` - Right Lung
* `Bilateral Mandible` - Bilateral Mandible
* `Left Mandible` - Left Mandible
* `Right Mandible` - Right Mandible
* `Mantle` - Mantle
* `Bilateral Maxilla` - Bilateral Maxilla
* `Left Maxilla` - Left Maxilla
* `Right Maxilla` - Right Maxilla
* `Mediastinum` - Mediastinum
* `Multiple Skin` - Multiple Skin
* `Nasal Fossa` - Nasal Fossa
* `Nasopharynx` - Nasopharynx
* `Bilateral Neck Includes Nodes` - Bilateral Neck Includes Nodes
* `Left Neck Includes Nodes` - Left Neck Includes Nodes
* `Right Neck Includes Nodes` - Right Neck Includes Nodes
* `Neck - Skin` - Neck - Skin
* `Nose` - Nose
* `Oral Cavity / Buccal Mucosa` - Oral Cavity / Buccal Mucosa
* `Bilateral Orbit` - Bilateral Orbit
* `Left Orbit` - Left Orbit
* `Right Orbit` - Right Orbit
* `Oropharynx` - Oropharynx
* `Bilateral Ovary` - Bilateral Ovary
* `Left Ovary` - Left Ovary
* `Right Ovary` - Right Ovary
* `Hard Palate` - Hard Palate
* `Soft Palate` - Soft Palate
* `Palate Unspecified` - Palate Unspecified
* `Pancreas` - Pancreas
* `Para-Aortic Nodes` - Para-Aortic Nodes
* `Left Parotid` - Left Parotid
* `Right Parotid` - Right Parotid
* `Bilateral Pelvis` - Bilateral Pelvis
* `Left Pelvis` - Left Pelvis
* `Right Pelvis` - Right Pelvis
* `Penis` - Penis
* `Perineum` - Perineum
* `Pituitary` - Pituitary
* `Left Pleura (As in Mesothelioma)` - Left Pleura (As in Mesothelioma)
* `Right Pleura` - Right Pleura
* `Prostate` - Prostate
* `Pubis` - Pubis
* `Pyriform Fossa (Sinuses)` - Pyriform Fossa (Sinuses)
* `Left Radius` - Left Radius
* `Right Radius` - Right Radius
* `Rectum (Includes Sigmoid)` - Rectum (Includes Sigmoid)
* `Left Ribs` - Left Ribs
* `Right Ribs` - Right Ribs
* `Sacrum` - Sacrum
* `Left Salivary Gland` - Left Salivary Gland
* `Right Salivary Gland` - Right Salivary Gland
* `Bilateral Scapula` - Bilateral Scapula
* `Left Scapula` - Left Scapula
* `Right Scapula` - Right Scapula
* `Bilateral Supraclavicular Nodes` - Bilateral Supraclavicular Nodes
* `Left Supraclavicular Nodes` - Left Supraclavicular Nodes
* `Right Supraclavicular Nodes` - Right Supraclavicular Nodes
* `Bilateral Scalp` - Bilateral Scalp
* `Left Scalp` - Left Scalp
* `Right Scalp` - Right Scalp
* `Scrotum` - Scrotum
* `Bilateral Shoulder` - Bilateral Shoulder
* `Left Shoulder` - Left Shoulder
* `Right Shoulder` - Right Shoulder
* `Whole Body - Skin` - Whole Body - Skin
* `Skull` - Skull
* `Cervical & Thoracic Spine` - Cervical & Thoracic Spine
* `Sphenoid Sinus` - Sphenoid Sinus
* `Cervical Spine` - Cervical Spine
* `Lumbar Spine` - Lumbar Spine
* `Thoracic Spine` - Thoracic Spine
* `Whole Spine` - Whole Spine
* `Spleen` - Spleen
* `Lumbo-Sacral Spine` - Lumbo-Sacral Spine
* `Thoracic & Lumbar Spine` - Thoracic & Lumbar Spine
* `Sternum` - Sternum
* `Stomach` - Stomach
* `Submandibular Glands` - Submandibular Glands
* `Left Temple` - Left Temple
* `Right Temple` - Right Temple
* `Bilateral Testis` - Bilateral Testis
* `Left Testis` - Left Testis
* `Right Testis` - Right Testis
* `Thyroid` - Thyroid
* `Left Tibia` - Left Tibia
* `Right Tibia` - Right Tibia
* `Left Toes` - Left Toes
* `Right Toes` - Right Toes
* `Tongue` - Tongue
* `Tonsil` - Tonsil
* `Trachea` - Trachea
* `Left Ulna` - Left Ulna
* `Right Ulna` - Right Ulna
* `Left Ureter` - Left Ureter
* `Right Ureter` - Right Ureter
* `Urethra` - Urethra
* `Uterus` - Uterus
* `Uvula` - Uvula
* `Vagina` - Vagina
* `Vulva` - Vulva
* `Abdomen` - Abdomen
* `Body` - Body
* `Chest` - Chest
* `Lower Limb` - Lower Limb
* `Neck` - Neck
* `Other` - Other
* `Pelvis` - Pelvis
* `Skin` - Skin
* `Spine` - Spine
* `Upper Limb` - Upper Limb| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|radiation_therapy_fractions|integer¦null|false|none|none| -|radiation_therapy_dosage|integer¦null|false|none|none| -|radiation_boost|boolean¦null|false|none|none| -|reference_radiation_treatment_id|string¦null|false|none|none| -|program_id|string|true|none|none| -|submitter_donor_id|string|true|none|none| -|submitter_treatment_id|string|true|none|none| - -

RadiationTherapyModalityEnum

- - - - - - -```json -"Megavoltage radiation therapy using photons (procedure)" - -``` - -* `Megavoltage radiation therapy using photons (procedure)` - Megavoltage radiation therapy using photons (procedure) -* `Radiopharmaceutical` - Radiopharmaceutical -* `Teleradiotherapy using electrons (procedure)` - Teleradiotherapy using electrons (procedure) -* `Teleradiotherapy protons (procedure)` - Teleradiotherapy protons (procedure) -* `Teleradiotherapy neutrons (procedure)` - Teleradiotherapy neutrons (procedure) -* `Brachytherapy (procedure)` - Brachytherapy (procedure) -* `Other` - Other - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Megavoltage radiation therapy using photons (procedure)` - Megavoltage radiation therapy using photons (procedure)
* `Radiopharmaceutical` - Radiopharmaceutical
* `Teleradiotherapy using electrons (procedure)` - Teleradiotherapy using electrons (procedure)
* `Teleradiotherapy protons (procedure)` - Teleradiotherapy protons (procedure)
* `Teleradiotherapy neutrons (procedure)` - Teleradiotherapy neutrons (procedure)
* `Brachytherapy (procedure)` - Brachytherapy (procedure)
* `Other` - Other| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Megavoltage radiation therapy using photons (procedure)| -|*anonymous*|Radiopharmaceutical| -|*anonymous*|Teleradiotherapy using electrons (procedure)| -|*anonymous*|Teleradiotherapy protons (procedure)| -|*anonymous*|Teleradiotherapy neutrons (procedure)| -|*anonymous*|Brachytherapy (procedure)| -|*anonymous*|Other| - -

RadiationTherapyTypeEnum

- - - - - - -```json -"External" - -``` - -* `External` - External -* `Internal` - Internal - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `External` - External
* `Internal` - Internal| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|External| -|*anonymous*|Internal| - -

ReferencePathologyEnum

- - - - - - -```json -"Yes" - -``` - -* `Yes` - Yes -* `No` - No -* `Not done` - Not done -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Yes` - Yes
* `No` - No
* `Not done` - Not done
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Yes| -|*anonymous*|No| -|*anonymous*|Not done| -|*anonymous*|Unknown| - -

RelapseTypeEnum

- - - - - - -```json -"Distant recurrence/metastasis" - -``` - -* `Distant recurrence/metastasis` - Distant recurrence/metastasis -* `Local recurrence` - Local recurrence -* `Local recurrence and distant metastasis` - Local recurrence and distant metastasis -* `Progression (liquid tumours)` - Progression (liquid tumours) -* `Biochemical progression` - Biochemical progression - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Distant recurrence/metastasis` - Distant recurrence/metastasis
* `Local recurrence` - Local recurrence
* `Local recurrence and distant metastasis` - Local recurrence and distant metastasis
* `Progression (liquid tumours)` - Progression (liquid tumours)
* `Biochemical progression` - Biochemical progression| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Distant recurrence/metastasis| -|*anonymous*|Local recurrence| -|*anonymous*|Local recurrence and distant metastasis| -|*anonymous*|Progression (liquid tumours)| -|*anonymous*|Biochemical progression| - -

ResidualTumourClassificationEnum

- - - - - - -```json -"Not applicable" - -``` - -* `Not applicable` - Not applicable -* `RX` - RX -* `R0` - R0 -* `R1` - R1 -* `R2` - R2 -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Not applicable` - Not applicable
* `RX` - RX
* `R0` - R0
* `R1` - R1
* `R2` - R2
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Not applicable| -|*anonymous*|RX| -|*anonymous*|R0| -|*anonymous*|R1| -|*anonymous*|R2| -|*anonymous*|Unknown| - -

ResponseToTreatmentCriteriaMethodEnum

- - - - - - -```json -"RECIST 1.1" - -``` - -* `RECIST 1.1` - RECIST 1.1 -* `iRECIST` - iRECIST -* `Cheson CLL 2012 Oncology Response Criteria` - Cheson CLL 2012 Oncology Response Criteria -* `Response Assessment in Neuro-Oncology (RANO)` - Response Assessment in Neuro-Oncology (RANO) -* `AML Response Criteria` - AML Response Criteria -* `Physician Assessed Response Criteria` - Physician Assessed Response Criteria -* `Blazer score` - Blazer score - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `RECIST 1.1` - RECIST 1.1
* `iRECIST` - iRECIST
* `Cheson CLL 2012 Oncology Response Criteria` - Cheson CLL 2012 Oncology Response Criteria
* `Response Assessment in Neuro-Oncology (RANO)` - Response Assessment in Neuro-Oncology (RANO)
* `AML Response Criteria` - AML Response Criteria
* `Physician Assessed Response Criteria` - Physician Assessed Response Criteria
* `Blazer score` - Blazer score| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|RECIST 1.1| -|*anonymous*|iRECIST| -|*anonymous*|Cheson CLL 2012 Oncology Response Criteria| -|*anonymous*|Response Assessment in Neuro-Oncology (RANO)| -|*anonymous*|AML Response Criteria| -|*anonymous*|Physician Assessed Response Criteria| -|*anonymous*|Blazer score| - -

ResponseToTreatmentEnum

- - - - - - -```json -"Complete response" - -``` - -* `Complete response` - Complete response -* `Partial response` - Partial response -* `Progressive disease` - Progressive disease -* `Stable disease` - Stable disease -* `Immune complete response (iCR)` - Immune complete response (iCR) -* `Immune partial response (iPR)` - Immune partial response (iPR) -* `Immune uncomfirmed progressive disease (iUPD)` - Immune uncomfirmed progressive disease (iUPD) -* `Immune confirmed progressive disease (iCPD)` - Immune confirmed progressive disease (iCPD) -* `Immune stable disease (iSD)` - Immune stable disease (iSD) -* `Complete remission` - Complete remission -* `Partial remission` - Partial remission -* `Minor response` - Minor response -* `Complete remission without measurable residual disease (CR MRD-)` - Complete remission without measurable residual disease (CR MRD-) -* `Complete remission with incomplete hematologic recovery (CRi)` - Complete remission with incomplete hematologic recovery (CRi) -* `Morphologic leukemia-free state` - Morphologic leukemia-free state -* `Primary refractory disease` - Primary refractory disease -* `Hematologic relapse (after CR MRD-, CR, CRi)` - Hematologic relapse (after CR MRD-, CR, CRi) -* `Molecular relapse (after CR MRD-)` - Molecular relapse (after CR MRD-) -* `Physician assessed complete response` - Physician assessed complete response -* `Physician assessed partial response` - Physician assessed partial response -* `Physician assessed stable disease` - Physician assessed stable disease -* `No evidence of disease (NED)` - No evidence of disease (NED) -* `Major response` - Major response - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Complete response` - Complete response
* `Partial response` - Partial response
* `Progressive disease` - Progressive disease
* `Stable disease` - Stable disease
* `Immune complete response (iCR)` - Immune complete response (iCR)
* `Immune partial response (iPR)` - Immune partial response (iPR)
* `Immune uncomfirmed progressive disease (iUPD)` - Immune uncomfirmed progressive disease (iUPD)
* `Immune confirmed progressive disease (iCPD)` - Immune confirmed progressive disease (iCPD)
* `Immune stable disease (iSD)` - Immune stable disease (iSD)
* `Complete remission` - Complete remission
* `Partial remission` - Partial remission
* `Minor response` - Minor response
* `Complete remission without measurable residual disease (CR MRD-)` - Complete remission without measurable residual disease (CR MRD-)
* `Complete remission with incomplete hematologic recovery (CRi)` - Complete remission with incomplete hematologic recovery (CRi)
* `Morphologic leukemia-free state` - Morphologic leukemia-free state
* `Primary refractory disease` - Primary refractory disease
* `Hematologic relapse (after CR MRD-, CR, CRi)` - Hematologic relapse (after CR MRD-, CR, CRi)
* `Molecular relapse (after CR MRD-)` - Molecular relapse (after CR MRD-)
* `Physician assessed complete response` - Physician assessed complete response
* `Physician assessed partial response` - Physician assessed partial response
* `Physician assessed stable disease` - Physician assessed stable disease
* `No evidence of disease (NED)` - No evidence of disease (NED)
* `Major response` - Major response| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Complete response| -|*anonymous*|Partial response| -|*anonymous*|Progressive disease| -|*anonymous*|Stable disease| -|*anonymous*|Immune complete response (iCR)| -|*anonymous*|Immune partial response (iPR)| -|*anonymous*|Immune uncomfirmed progressive disease (iUPD)| -|*anonymous*|Immune confirmed progressive disease (iCPD)| -|*anonymous*|Immune stable disease (iSD)| -|*anonymous*|Complete remission| -|*anonymous*|Partial remission| -|*anonymous*|Minor response| -|*anonymous*|Complete remission without measurable residual disease (CR MRD-)| -|*anonymous*|Complete remission with incomplete hematologic recovery (CRi)| -|*anonymous*|Morphologic leukemia-free state| -|*anonymous*|Primary refractory disease| -|*anonymous*|Hematologic relapse (after CR MRD-, CR, CRi)| -|*anonymous*|Molecular relapse (after CR MRD-)| -|*anonymous*|Physician assessed complete response| -|*anonymous*|Physician assessed partial response| -|*anonymous*|Physician assessed stable disease| -|*anonymous*|No evidence of disease (NED)| -|*anonymous*|Major response| - -

SampleRegistration

- - - - - - -```json -{ - "submitter_sample_id": "string", - "specimen_tissue_source": "Abdominal fluid", - "tumour_normal_designation": "Normal", - "specimen_type": "Cell line - derived from normal", - "sample_type": "Amplified DNA", - "program_id": "string", - "submitter_donor_id": "string", - "submitter_specimen_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_sample_id|string|true|none|none| -|specimen_tissue_source|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SpecimenTissueSourceEnum](#schemaspecimentissuesourceenum)|false|none|* `Abdominal fluid` - Abdominal fluid
* `Amniotic fluid` - Amniotic fluid
* `Arterial blood` - Arterial blood
* `Bile` - Bile
* `Blood derived - bone marrow` - Blood derived - bone marrow
* `Blood derived - peripheral blood` - Blood derived - peripheral blood
* `Bone marrow fluid` - Bone marrow fluid
* `Bone marrow derived mononuclear cells` - Bone marrow derived mononuclear cells
* `Buccal cell` - Buccal cell
* `Buffy coat` - Buffy coat
* `Cerebrospinal fluid` - Cerebrospinal fluid
* `Cervical mucus` - Cervical mucus
* `Convalescent plasma` - Convalescent plasma
* `Cord blood` - Cord blood
* `Duodenal fluid` - Duodenal fluid
* `Female genital fluid` - Female genital fluid
* `Fetal blood` - Fetal blood
* `Hydrocele fluid` - Hydrocele fluid
* `Male genital fluid` - Male genital fluid
* `Pancreatic fluid` - Pancreatic fluid
* `Pericardial effusion` - Pericardial effusion
* `Pleural fluid` - Pleural fluid
* `Renal cyst fluid` - Renal cyst fluid
* `Saliva` - Saliva
* `Seminal fluid` - Seminal fluid
* `Serum` - Serum
* `Solid tissue` - Solid tissue
* `Sputum` - Sputum
* `Synovial fluid` - Synovial fluid
* `Urine` - Urine
* `Venous blood` - Venous blood
* `Vitreous fluid` - Vitreous fluid
* `Whole blood` - Whole blood
* `Wound` - Wound| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|tumour_normal_designation|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TumourNormalDesignationEnum](#schematumournormaldesignationenum)|false|none|* `Normal` - Normal
* `Tumour` - Tumour| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|specimen_type|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SpecimenTypeEnum](#schemaspecimentypeenum)|false|none|* `Cell line - derived from normal` - Cell line - derived from normal
* `Cell line - derived from primary tumour` - Cell line - derived from primary tumour
* `Cell line - derived from metastatic tumour` - Cell line - derived from metastatic tumour
* `Cell line - derived from xenograft tumour` - Cell line - derived from xenograft tumour
* `Metastatic tumour - additional metastatic` - Metastatic tumour - additional metastatic
* `Metastatic tumour - metastasis local to lymph node` - Metastatic tumour - metastasis local to lymph node
* `Metastatic tumour - metastasis to distant location` - Metastatic tumour - metastasis to distant location
* `Metastatic tumour` - Metastatic tumour
* `Normal - tissue adjacent to primary tumour` - Normal - tissue adjacent to primary tumour
* `Normal` - Normal
* `Primary tumour - additional new primary` - Primary tumour - additional new primary
* `Primary tumour - adjacent to normal` - Primary tumour - adjacent to normal
* `Primary tumour` - Primary tumour
* `Recurrent tumour` - Recurrent tumour
* `Tumour - unknown if derived from primary or metastatic tumour` - Tumour - unknown if derived from primary or metastatic tumour
* `Xenograft - derived from primary tumour` - Xenograft - derived from primary tumour
* `Xenograft - derived from metastatic tumour` - Xenograft - derived from metastatic tumour
* `Xenograft - derived from tumour cell line` - Xenograft - derived from tumour cell line| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|sample_type|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SampleTypeEnum](#schemasampletypeenum)|false|none|* `Amplified DNA` - Amplified DNA
* `ctDNA` - ctDNA
* `Other DNA enrichments` - Other DNA enrichments
* `Other RNA fractions` - Other RNA fractions
* `polyA+ RNA` - polyA+ RNA
* `Protein` - Protein
* `rRNA-depleted RNA` - rRNA-depleted RNA
* `Total DNA` - Total DNA
* `Total RNA` - Total RNA| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|program_id|string|true|none|none| -|submitter_donor_id|string|true|none|none| -|submitter_specimen_id|string|true|none|none| - -

SampleTypeEnum

- - - - - - -```json -"Amplified DNA" - -``` - -* `Amplified DNA` - Amplified DNA -* `ctDNA` - ctDNA -* `Other DNA enrichments` - Other DNA enrichments -* `Other RNA fractions` - Other RNA fractions -* `polyA+ RNA` - polyA+ RNA -* `Protein` - Protein -* `rRNA-depleted RNA` - rRNA-depleted RNA -* `Total DNA` - Total DNA -* `Total RNA` - Total RNA - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Amplified DNA` - Amplified DNA
* `ctDNA` - ctDNA
* `Other DNA enrichments` - Other DNA enrichments
* `Other RNA fractions` - Other RNA fractions
* `polyA+ RNA` - polyA+ RNA
* `Protein` - Protein
* `rRNA-depleted RNA` - rRNA-depleted RNA
* `Total DNA` - Total DNA
* `Total RNA` - Total RNA| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Amplified DNA| -|*anonymous*|ctDNA| -|*anonymous*|Other DNA enrichments| -|*anonymous*|Other RNA fractions| -|*anonymous*|polyA+ RNA| -|*anonymous*|Protein| -|*anonymous*|rRNA-depleted RNA| -|*anonymous*|Total DNA| -|*anonymous*|Total RNA| - -

SexAtBirthEnum

- - - - - - -```json -"Male" - -``` - -* `Male` - Male -* `Female` - Female -* `Other` - Other -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Male` - Male
* `Female` - Female
* `Other` - Other
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Male| -|*anonymous*|Female| -|*anonymous*|Other| -|*anonymous*|Unknown| - -

Specimen

- - - - - - -```json -{ - "submitter_specimen_id": "string", - "pathological_tumour_staging_system": "AJCC 8th edition", - "pathological_t_category": "T0", - "pathological_n_category": "N0", - "pathological_m_category": "M0", - "pathological_stage_group": "Stage 0", - "specimen_collection_date": "string", - "specimen_storage": "Cut slide", - "tumour_histological_type": "string", - "specimen_anatomic_location": "string", - "reference_pathology_confirmed_diagnosis": "Yes", - "reference_pathology_confirmed_tumour_presence": "Yes", - "tumour_grading_system": "FNCLCC grading system", - "tumour_grade": "Low grade", - "percent_tumour_cells_range": "0-19%", - "percent_tumour_cells_measurement_method": "Genomics", - "specimen_processing": "Cryopreservation in liquid nitrogen (dead tissue)", - "specimen_laterality": "Left", - "program_id": "string", - "submitter_donor_id": "string", - "submitter_primary_diagnosis_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_specimen_id|string|true|none|none| -|pathological_tumour_staging_system|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StagingSystemEnum](#schemastagingsystemenum)|false|none|* `AJCC 8th edition` - AJCC 8th edition
* `AJCC 7th edition` - AJCC 7th edition
* `AJCC 6th edition` - AJCC 6th edition
* `Ann Arbor staging system` - Ann Arbor staging system
* `Binet staging system` - Binet staging system
* `Durie-Salmon staging system` - Durie-Salmon staging system
* `FIGO staging system` - FIGO staging system
* `International Neuroblastoma Risk Group Staging System` - International Neuroblastoma Risk Group Staging System
* `International Neuroblastoma Staging System` - International Neuroblastoma Staging System
* `Lugano staging system` - Lugano staging system
* `Rai staging system` - Rai staging system
* `Revised International staging system (RISS)` - Revised International staging system (RISS)
* `SEER staging system` - SEER staging system
* `St Jude staging system` - St Jude staging system| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|pathological_t_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TCategoryEnum](#schematcategoryenum)|false|none|* `T0` - T0
* `T1` - T1
* `T1a` - T1a
* `T1a1` - T1a1
* `T1a2` - T1a2
* `T1a(s)` - T1a(s)
* `T1a(m)` - T1a(m)
* `T1b` - T1b
* `T1b1` - T1b1
* `T1b2` - T1b2
* `T1b(s)` - T1b(s)
* `T1b(m)` - T1b(m)
* `T1c` - T1c
* `T1d` - T1d
* `T1mi` - T1mi
* `T2` - T2
* `T2(s)` - T2(s)
* `T2(m)` - T2(m)
* `T2a` - T2a
* `T2a1` - T2a1
* `T2a2` - T2a2
* `T2b` - T2b
* `T2c` - T2c
* `T2d` - T2d
* `T3` - T3
* `T3(s)` - T3(s)
* `T3(m)` - T3(m)
* `T3a` - T3a
* `T3b` - T3b
* `T3c` - T3c
* `T3d` - T3d
* `T3e` - T3e
* `T4` - T4
* `T4a` - T4a
* `T4a(s)` - T4a(s)
* `T4a(m)` - T4a(m)
* `T4b` - T4b
* `T4b(s)` - T4b(s)
* `T4b(m)` - T4b(m)
* `T4c` - T4c
* `T4d` - T4d
* `T4e` - T4e
* `Ta` - Ta
* `Tis` - Tis
* `Tis(DCIS)` - Tis(DCIS)
* `Tis(LAMN)` - Tis(LAMN)
* `Tis(LCIS)` - Tis(LCIS)
* `Tis(Paget)` - Tis(Paget)
* `Tis(Paget's)` - Tis(Paget's)
* `Tis pu` - Tis pu
* `Tis pd` - Tis pd
* `TX` - TX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|pathological_n_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NCategoryEnum](#schemancategoryenum)|false|none|* `N0` - N0
* `N0a` - N0a
* `N0a (biopsy)` - N0a (biopsy)
* `N0b` - N0b
* `N0b (no biopsy)` - N0b (no biopsy)
* `N0(i+)` - N0(i+)
* `N0(i-)` - N0(i-)
* `N0(mol+)` - N0(mol+)
* `N0(mol-)` - N0(mol-)
* `N1` - N1
* `N1a` - N1a
* `N1a(sn)` - N1a(sn)
* `N1b` - N1b
* `N1c` - N1c
* `N1mi` - N1mi
* `N2` - N2
* `N2a` - N2a
* `N2b` - N2b
* `N2c` - N2c
* `N2mi` - N2mi
* `N3` - N3
* `N3a` - N3a
* `N3b` - N3b
* `N3c` - N3c
* `N4` - N4
* `NX` - NX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|pathological_m_category|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MCategoryEnum](#schemamcategoryenum)|false|none|* `M0` - M0
* `M0(i+)` - M0(i+)
* `M1` - M1
* `M1a` - M1a
* `M1a(0)` - M1a(0)
* `M1a(1)` - M1a(1)
* `M1b` - M1b
* `M1b(0)` - M1b(0)
* `M1b(1)` - M1b(1)
* `M1c` - M1c
* `M1c(0)` - M1c(0)
* `M1c(1)` - M1c(1)
* `M1d` - M1d
* `M1d(0)` - M1d(0)
* `M1d(1)` - M1d(1)
* `M1e` - M1e
* `MX` - MX| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|pathological_stage_group|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StageGroupEnum](#schemastagegroupenum)|false|none|* `Stage 0` - Stage 0
* `Stage 0a` - Stage 0a
* `Stage 0is` - Stage 0is
* `Stage 1` - Stage 1
* `Stage 1A` - Stage 1A
* `Stage 1B` - Stage 1B
* `Stage A` - Stage A
* `Stage B` - Stage B
* `Stage C` - Stage C
* `Stage I` - Stage I
* `Stage IA` - Stage IA
* `Stage IA1` - Stage IA1
* `Stage IA2` - Stage IA2
* `Stage IA3` - Stage IA3
* `Stage IAB` - Stage IAB
* `Stage IAE` - Stage IAE
* `Stage IAES` - Stage IAES
* `Stage IAS` - Stage IAS
* `Stage IB` - Stage IB
* `Stage IB1` - Stage IB1
* `Stage IB2` - Stage IB2
* `Stage IBE` - Stage IBE
* `Stage IBES` - Stage IBES
* `Stage IBS` - Stage IBS
* `Stage IC` - Stage IC
* `Stage IE` - Stage IE
* `Stage IEA` - Stage IEA
* `Stage IEB` - Stage IEB
* `Stage IES` - Stage IES
* `Stage II` - Stage II
* `Stage II bulky` - Stage II bulky
* `Stage IIA` - Stage IIA
* `Stage IIA1` - Stage IIA1
* `Stage IIA2` - Stage IIA2
* `Stage IIAE` - Stage IIAE
* `Stage IIAES` - Stage IIAES
* `Stage IIAS` - Stage IIAS
* `Stage IIB` - Stage IIB
* `Stage IIBE` - Stage IIBE
* `Stage IIBES` - Stage IIBES
* `Stage IIBS` - Stage IIBS
* `Stage IIC` - Stage IIC
* `Stage IIE` - Stage IIE
* `Stage IIEA` - Stage IIEA
* `Stage IIEB` - Stage IIEB
* `Stage IIES` - Stage IIES
* `Stage III` - Stage III
* `Stage IIIA` - Stage IIIA
* `Stage IIIA1` - Stage IIIA1
* `Stage IIIA2` - Stage IIIA2
* `Stage IIIAE` - Stage IIIAE
* `Stage IIIAES` - Stage IIIAES
* `Stage IIIAS` - Stage IIIAS
* `Stage IIIB` - Stage IIIB
* `Stage IIIBE` - Stage IIIBE
* `Stage IIIBES` - Stage IIIBES
* `Stage IIIBS` - Stage IIIBS
* `Stage IIIC` - Stage IIIC
* `Stage IIIC1` - Stage IIIC1
* `Stage IIIC2` - Stage IIIC2
* `Stage IIID` - Stage IIID
* `Stage IIIE` - Stage IIIE
* `Stage IIIES` - Stage IIIES
* `Stage IIIS` - Stage IIIS
* `Stage IIS` - Stage IIS
* `Stage IS` - Stage IS
* `Stage IV` - Stage IV
* `Stage IVA` - Stage IVA
* `Stage IVA1` - Stage IVA1
* `Stage IVA2` - Stage IVA2
* `Stage IVAE` - Stage IVAE
* `Stage IVAES` - Stage IVAES
* `Stage IVAS` - Stage IVAS
* `Stage IVB` - Stage IVB
* `Stage IVBE` - Stage IVBE
* `Stage IVBES` - Stage IVBES
* `Stage IVBS` - Stage IVBS
* `Stage IVC` - Stage IVC
* `Stage IVE` - Stage IVE
* `Stage IVES` - Stage IVES
* `Stage IVS` - Stage IVS
* `In situ` - In situ
* `Localized` - Localized
* `Regionalized` - Regionalized
* `Distant` - Distant
* `Stage L1` - Stage L1
* `Stage L2` - Stage L2
* `Stage M` - Stage M
* `Stage Ms` - Stage Ms
* `Stage 2A` - Stage 2A
* `Stage 2B` - Stage 2B
* `Stage 3` - Stage 3
* `Stage 4` - Stage 4
* `Stage 4S` - Stage 4S
* `Occult Carcinoma` - Occult Carcinoma| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|specimen_collection_date|string¦null|false|none|none| -|specimen_storage|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SpecimenStorageEnum](#schemaspecimenstorageenum)|false|none|* `Cut slide` - Cut slide
* `Frozen in -70 freezer` - Frozen in -70 freezer
* `Frozen in liquid nitrogen` - Frozen in liquid nitrogen
* `Frozen in vapour phase` - Frozen in vapour phase
* `Not Applicable` - Not Applicable
* `Other` - Other
* `Paraffin block` - Paraffin block
* `RNA later frozen` - RNA later frozen
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|tumour_histological_type|string¦null|false|none|none| -|specimen_anatomic_location|string¦null|false|none|none| -|reference_pathology_confirmed_diagnosis|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ReferencePathologyEnum](#schemareferencepathologyenum)|false|none|* `Yes` - Yes
* `No` - No
* `Not done` - Not done
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|reference_pathology_confirmed_tumour_presence|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ReferencePathologyEnum](#schemareferencepathologyenum)|false|none|* `Yes` - Yes
* `No` - No
* `Not done` - Not done
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|tumour_grading_system|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TumourGradingSystemEnum](#schematumourgradingsystemenum)|false|none|* `FNCLCC grading system` - FNCLCC grading system
* `Four-tier grading system` - Four-tier grading system
* `Gleason grade group system` - Gleason grade group system
* `Grading system for GISTs` - Grading system for GISTs
* `Grading system for GNETs` - Grading system for GNETs
* `IASLC grading system` - IASLC grading system
* `ISUP grading system` - ISUP grading system
* `Nottingham grading system` - Nottingham grading system
* `Nuclear grading system for DCIS` - Nuclear grading system for DCIS
* `Scarff-Bloom-Richardson grading system` - Scarff-Bloom-Richardson grading system
* `Three-tier grading system` - Three-tier grading system
* `Two-tier grading system` - Two-tier grading system
* `WHO grading system for CNS tumours` - WHO grading system for CNS tumours| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|tumour_grade|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TumourGradeEnum](#schematumourgradeenum)|false|none|* `Low grade` - Low grade
* `High grade` - High grade
* `GX` - GX
* `G1` - G1
* `G2` - G2
* `G3` - G3
* `G4` - G4
* `Low` - Low
* `High` - High
* `Grade 1` - Grade 1
* `Grade 2` - Grade 2
* `Grade 3` - Grade 3
* `Grade 4` - Grade 4
* `Grade I` - Grade I
* `Grade II` - Grade II
* `Grade III` - Grade III
* `Grade IV` - Grade IV
* `Grade Group 1` - Grade Group 1
* `Grade Group 2` - Grade Group 2
* `Grade Group 3` - Grade Group 3
* `Grade Group 4` - Grade Group 4
* `Grade Group 5` - Grade Group 5| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|percent_tumour_cells_range|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[PercentTumourCellsRangeEnum](#schemapercenttumourcellsrangeenum)|false|none|* `0-19%` - 0-19%
* `20-50%` - 20-50%
* `51-100%` - 51-100%| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|percent_tumour_cells_measurement_method|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[PercentTumourCellsMeasurementMethodEnum](#schemapercenttumourcellsmeasurementmethodenum)|false|none|* `Genomics` - Genomics
* `Image analysis` - Image analysis
* `Pathology estimate by percent nuclei` - Pathology estimate by percent nuclei
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|specimen_processing|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SpecimenProcessingEnum](#schemaspecimenprocessingenum)|false|none|* `Cryopreservation in liquid nitrogen (dead tissue)` - Cryopreservation in liquid nitrogen (dead tissue)
* `Cryopreservation in dry ice (dead tissue)` - Cryopreservation in dry ice (dead tissue)
* `Cryopreservation of live cells in liquid nitrogen` - Cryopreservation of live cells in liquid nitrogen
* `Cryopreservation - other` - Cryopreservation - other
* `Formalin fixed & paraffin embedded` - Formalin fixed & paraffin embedded
* `Formalin fixed - buffered` - Formalin fixed - buffered
* `Formalin fixed - unbuffered` - Formalin fixed - unbuffered
* `Fresh` - Fresh
* `Other` - Other
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|specimen_laterality|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SpecimenLateralityEnum](#schemaspecimenlateralityenum)|false|none|* `Left` - Left
* `Not applicable` - Not applicable
* `Right` - Right
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|program_id|string|true|none|none| -|submitter_donor_id|string|true|none|none| -|submitter_primary_diagnosis_id|string|true|none|none| - -

SpecimenLateralityEnum

- - - - - - -```json -"Left" - -``` - -* `Left` - Left -* `Not applicable` - Not applicable -* `Right` - Right -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Left` - Left
* `Not applicable` - Not applicable
* `Right` - Right
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Left| -|*anonymous*|Not applicable| -|*anonymous*|Right| -|*anonymous*|Unknown| - -

SpecimenProcessingEnum

- - - - - - -```json -"Cryopreservation in liquid nitrogen (dead tissue)" - -``` - -* `Cryopreservation in liquid nitrogen (dead tissue)` - Cryopreservation in liquid nitrogen (dead tissue) -* `Cryopreservation in dry ice (dead tissue)` - Cryopreservation in dry ice (dead tissue) -* `Cryopreservation of live cells in liquid nitrogen` - Cryopreservation of live cells in liquid nitrogen -* `Cryopreservation - other` - Cryopreservation - other -* `Formalin fixed & paraffin embedded` - Formalin fixed & paraffin embedded -* `Formalin fixed - buffered` - Formalin fixed - buffered -* `Formalin fixed - unbuffered` - Formalin fixed - unbuffered -* `Fresh` - Fresh -* `Other` - Other -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Cryopreservation in liquid nitrogen (dead tissue)` - Cryopreservation in liquid nitrogen (dead tissue)
* `Cryopreservation in dry ice (dead tissue)` - Cryopreservation in dry ice (dead tissue)
* `Cryopreservation of live cells in liquid nitrogen` - Cryopreservation of live cells in liquid nitrogen
* `Cryopreservation - other` - Cryopreservation - other
* `Formalin fixed & paraffin embedded` - Formalin fixed & paraffin embedded
* `Formalin fixed - buffered` - Formalin fixed - buffered
* `Formalin fixed - unbuffered` - Formalin fixed - unbuffered
* `Fresh` - Fresh
* `Other` - Other
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Cryopreservation in liquid nitrogen (dead tissue)| -|*anonymous*|Cryopreservation in dry ice (dead tissue)| -|*anonymous*|Cryopreservation of live cells in liquid nitrogen| -|*anonymous*|Cryopreservation - other| -|*anonymous*|Formalin fixed & paraffin embedded| -|*anonymous*|Formalin fixed - buffered| -|*anonymous*|Formalin fixed - unbuffered| -|*anonymous*|Fresh| -|*anonymous*|Other| -|*anonymous*|Unknown| - -

SpecimenStorageEnum

- - - - - - -```json -"Cut slide" - -``` - -* `Cut slide` - Cut slide -* `Frozen in -70 freezer` - Frozen in -70 freezer -* `Frozen in liquid nitrogen` - Frozen in liquid nitrogen -* `Frozen in vapour phase` - Frozen in vapour phase -* `Not Applicable` - Not Applicable -* `Other` - Other -* `Paraffin block` - Paraffin block -* `RNA later frozen` - RNA later frozen -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Cut slide` - Cut slide
* `Frozen in -70 freezer` - Frozen in -70 freezer
* `Frozen in liquid nitrogen` - Frozen in liquid nitrogen
* `Frozen in vapour phase` - Frozen in vapour phase
* `Not Applicable` - Not Applicable
* `Other` - Other
* `Paraffin block` - Paraffin block
* `RNA later frozen` - RNA later frozen
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Cut slide| -|*anonymous*|Frozen in -70 freezer| -|*anonymous*|Frozen in liquid nitrogen| -|*anonymous*|Frozen in vapour phase| -|*anonymous*|Not Applicable| -|*anonymous*|Other| -|*anonymous*|Paraffin block| -|*anonymous*|RNA later frozen| -|*anonymous*|Unknown| - -

SpecimenTissueSourceEnum

- - - - - - -```json -"Abdominal fluid" - -``` - -* `Abdominal fluid` - Abdominal fluid -* `Amniotic fluid` - Amniotic fluid -* `Arterial blood` - Arterial blood -* `Bile` - Bile -* `Blood derived - bone marrow` - Blood derived - bone marrow -* `Blood derived - peripheral blood` - Blood derived - peripheral blood -* `Bone marrow fluid` - Bone marrow fluid -* `Bone marrow derived mononuclear cells` - Bone marrow derived mononuclear cells -* `Buccal cell` - Buccal cell -* `Buffy coat` - Buffy coat -* `Cerebrospinal fluid` - Cerebrospinal fluid -* `Cervical mucus` - Cervical mucus -* `Convalescent plasma` - Convalescent plasma -* `Cord blood` - Cord blood -* `Duodenal fluid` - Duodenal fluid -* `Female genital fluid` - Female genital fluid -* `Fetal blood` - Fetal blood -* `Hydrocele fluid` - Hydrocele fluid -* `Male genital fluid` - Male genital fluid -* `Pancreatic fluid` - Pancreatic fluid -* `Pericardial effusion` - Pericardial effusion -* `Pleural fluid` - Pleural fluid -* `Renal cyst fluid` - Renal cyst fluid -* `Saliva` - Saliva -* `Seminal fluid` - Seminal fluid -* `Serum` - Serum -* `Solid tissue` - Solid tissue -* `Sputum` - Sputum -* `Synovial fluid` - Synovial fluid -* `Urine` - Urine -* `Venous blood` - Venous blood -* `Vitreous fluid` - Vitreous fluid -* `Whole blood` - Whole blood -* `Wound` - Wound - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Abdominal fluid` - Abdominal fluid
* `Amniotic fluid` - Amniotic fluid
* `Arterial blood` - Arterial blood
* `Bile` - Bile
* `Blood derived - bone marrow` - Blood derived - bone marrow
* `Blood derived - peripheral blood` - Blood derived - peripheral blood
* `Bone marrow fluid` - Bone marrow fluid
* `Bone marrow derived mononuclear cells` - Bone marrow derived mononuclear cells
* `Buccal cell` - Buccal cell
* `Buffy coat` - Buffy coat
* `Cerebrospinal fluid` - Cerebrospinal fluid
* `Cervical mucus` - Cervical mucus
* `Convalescent plasma` - Convalescent plasma
* `Cord blood` - Cord blood
* `Duodenal fluid` - Duodenal fluid
* `Female genital fluid` - Female genital fluid
* `Fetal blood` - Fetal blood
* `Hydrocele fluid` - Hydrocele fluid
* `Male genital fluid` - Male genital fluid
* `Pancreatic fluid` - Pancreatic fluid
* `Pericardial effusion` - Pericardial effusion
* `Pleural fluid` - Pleural fluid
* `Renal cyst fluid` - Renal cyst fluid
* `Saliva` - Saliva
* `Seminal fluid` - Seminal fluid
* `Serum` - Serum
* `Solid tissue` - Solid tissue
* `Sputum` - Sputum
* `Synovial fluid` - Synovial fluid
* `Urine` - Urine
* `Venous blood` - Venous blood
* `Vitreous fluid` - Vitreous fluid
* `Whole blood` - Whole blood
* `Wound` - Wound| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Abdominal fluid| -|*anonymous*|Amniotic fluid| -|*anonymous*|Arterial blood| -|*anonymous*|Bile| -|*anonymous*|Blood derived - bone marrow| -|*anonymous*|Blood derived - peripheral blood| -|*anonymous*|Bone marrow fluid| -|*anonymous*|Bone marrow derived mononuclear cells| -|*anonymous*|Buccal cell| -|*anonymous*|Buffy coat| -|*anonymous*|Cerebrospinal fluid| -|*anonymous*|Cervical mucus| -|*anonymous*|Convalescent plasma| -|*anonymous*|Cord blood| -|*anonymous*|Duodenal fluid| -|*anonymous*|Female genital fluid| -|*anonymous*|Fetal blood| -|*anonymous*|Hydrocele fluid| -|*anonymous*|Male genital fluid| -|*anonymous*|Pancreatic fluid| -|*anonymous*|Pericardial effusion| -|*anonymous*|Pleural fluid| -|*anonymous*|Renal cyst fluid| -|*anonymous*|Saliva| -|*anonymous*|Seminal fluid| -|*anonymous*|Serum| -|*anonymous*|Solid tissue| -|*anonymous*|Sputum| -|*anonymous*|Synovial fluid| -|*anonymous*|Urine| -|*anonymous*|Venous blood| -|*anonymous*|Vitreous fluid| -|*anonymous*|Whole blood| -|*anonymous*|Wound| - -

SpecimenTypeEnum

- - - - - - -```json -"Cell line - derived from normal" - -``` - -* `Cell line - derived from normal` - Cell line - derived from normal -* `Cell line - derived from primary tumour` - Cell line - derived from primary tumour -* `Cell line - derived from metastatic tumour` - Cell line - derived from metastatic tumour -* `Cell line - derived from xenograft tumour` - Cell line - derived from xenograft tumour -* `Metastatic tumour - additional metastatic` - Metastatic tumour - additional metastatic -* `Metastatic tumour - metastasis local to lymph node` - Metastatic tumour - metastasis local to lymph node -* `Metastatic tumour - metastasis to distant location` - Metastatic tumour - metastasis to distant location -* `Metastatic tumour` - Metastatic tumour -* `Normal - tissue adjacent to primary tumour` - Normal - tissue adjacent to primary tumour -* `Normal` - Normal -* `Primary tumour - additional new primary` - Primary tumour - additional new primary -* `Primary tumour - adjacent to normal` - Primary tumour - adjacent to normal -* `Primary tumour` - Primary tumour -* `Recurrent tumour` - Recurrent tumour -* `Tumour - unknown if derived from primary or metastatic tumour` - Tumour - unknown if derived from primary or metastatic tumour -* `Xenograft - derived from primary tumour` - Xenograft - derived from primary tumour -* `Xenograft - derived from metastatic tumour` - Xenograft - derived from metastatic tumour -* `Xenograft - derived from tumour cell line` - Xenograft - derived from tumour cell line - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Cell line - derived from normal` - Cell line - derived from normal
* `Cell line - derived from primary tumour` - Cell line - derived from primary tumour
* `Cell line - derived from metastatic tumour` - Cell line - derived from metastatic tumour
* `Cell line - derived from xenograft tumour` - Cell line - derived from xenograft tumour
* `Metastatic tumour - additional metastatic` - Metastatic tumour - additional metastatic
* `Metastatic tumour - metastasis local to lymph node` - Metastatic tumour - metastasis local to lymph node
* `Metastatic tumour - metastasis to distant location` - Metastatic tumour - metastasis to distant location
* `Metastatic tumour` - Metastatic tumour
* `Normal - tissue adjacent to primary tumour` - Normal - tissue adjacent to primary tumour
* `Normal` - Normal
* `Primary tumour - additional new primary` - Primary tumour - additional new primary
* `Primary tumour - adjacent to normal` - Primary tumour - adjacent to normal
* `Primary tumour` - Primary tumour
* `Recurrent tumour` - Recurrent tumour
* `Tumour - unknown if derived from primary or metastatic tumour` - Tumour - unknown if derived from primary or metastatic tumour
* `Xenograft - derived from primary tumour` - Xenograft - derived from primary tumour
* `Xenograft - derived from metastatic tumour` - Xenograft - derived from metastatic tumour
* `Xenograft - derived from tumour cell line` - Xenograft - derived from tumour cell line| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Cell line - derived from normal| -|*anonymous*|Cell line - derived from primary tumour| -|*anonymous*|Cell line - derived from metastatic tumour| -|*anonymous*|Cell line - derived from xenograft tumour| -|*anonymous*|Metastatic tumour - additional metastatic| -|*anonymous*|Metastatic tumour - metastasis local to lymph node| -|*anonymous*|Metastatic tumour - metastasis to distant location| -|*anonymous*|Metastatic tumour| -|*anonymous*|Normal - tissue adjacent to primary tumour| -|*anonymous*|Normal| -|*anonymous*|Primary tumour - additional new primary| -|*anonymous*|Primary tumour - adjacent to normal| -|*anonymous*|Primary tumour| -|*anonymous*|Recurrent tumour| -|*anonymous*|Tumour - unknown if derived from primary or metastatic tumour| -|*anonymous*|Xenograft - derived from primary tumour| -|*anonymous*|Xenograft - derived from metastatic tumour| -|*anonymous*|Xenograft - derived from tumour cell line| - -

StageGroupEnum

- - - - - - -```json -"Stage 0" - -``` - -* `Stage 0` - Stage 0 -* `Stage 0a` - Stage 0a -* `Stage 0is` - Stage 0is -* `Stage 1` - Stage 1 -* `Stage 1A` - Stage 1A -* `Stage 1B` - Stage 1B -* `Stage A` - Stage A -* `Stage B` - Stage B -* `Stage C` - Stage C -* `Stage I` - Stage I -* `Stage IA` - Stage IA -* `Stage IA1` - Stage IA1 -* `Stage IA2` - Stage IA2 -* `Stage IA3` - Stage IA3 -* `Stage IAB` - Stage IAB -* `Stage IAE` - Stage IAE -* `Stage IAES` - Stage IAES -* `Stage IAS` - Stage IAS -* `Stage IB` - Stage IB -* `Stage IB1` - Stage IB1 -* `Stage IB2` - Stage IB2 -* `Stage IBE` - Stage IBE -* `Stage IBES` - Stage IBES -* `Stage IBS` - Stage IBS -* `Stage IC` - Stage IC -* `Stage IE` - Stage IE -* `Stage IEA` - Stage IEA -* `Stage IEB` - Stage IEB -* `Stage IES` - Stage IES -* `Stage II` - Stage II -* `Stage II bulky` - Stage II bulky -* `Stage IIA` - Stage IIA -* `Stage IIA1` - Stage IIA1 -* `Stage IIA2` - Stage IIA2 -* `Stage IIAE` - Stage IIAE -* `Stage IIAES` - Stage IIAES -* `Stage IIAS` - Stage IIAS -* `Stage IIB` - Stage IIB -* `Stage IIBE` - Stage IIBE -* `Stage IIBES` - Stage IIBES -* `Stage IIBS` - Stage IIBS -* `Stage IIC` - Stage IIC -* `Stage IIE` - Stage IIE -* `Stage IIEA` - Stage IIEA -* `Stage IIEB` - Stage IIEB -* `Stage IIES` - Stage IIES -* `Stage III` - Stage III -* `Stage IIIA` - Stage IIIA -* `Stage IIIA1` - Stage IIIA1 -* `Stage IIIA2` - Stage IIIA2 -* `Stage IIIAE` - Stage IIIAE -* `Stage IIIAES` - Stage IIIAES -* `Stage IIIAS` - Stage IIIAS -* `Stage IIIB` - Stage IIIB -* `Stage IIIBE` - Stage IIIBE -* `Stage IIIBES` - Stage IIIBES -* `Stage IIIBS` - Stage IIIBS -* `Stage IIIC` - Stage IIIC -* `Stage IIIC1` - Stage IIIC1 -* `Stage IIIC2` - Stage IIIC2 -* `Stage IIID` - Stage IIID -* `Stage IIIE` - Stage IIIE -* `Stage IIIES` - Stage IIIES -* `Stage IIIS` - Stage IIIS -* `Stage IIS` - Stage IIS -* `Stage IS` - Stage IS -* `Stage IV` - Stage IV -* `Stage IVA` - Stage IVA -* `Stage IVA1` - Stage IVA1 -* `Stage IVA2` - Stage IVA2 -* `Stage IVAE` - Stage IVAE -* `Stage IVAES` - Stage IVAES -* `Stage IVAS` - Stage IVAS -* `Stage IVB` - Stage IVB -* `Stage IVBE` - Stage IVBE -* `Stage IVBES` - Stage IVBES -* `Stage IVBS` - Stage IVBS -* `Stage IVC` - Stage IVC -* `Stage IVE` - Stage IVE -* `Stage IVES` - Stage IVES -* `Stage IVS` - Stage IVS -* `In situ` - In situ -* `Localized` - Localized -* `Regionalized` - Regionalized -* `Distant` - Distant -* `Stage L1` - Stage L1 -* `Stage L2` - Stage L2 -* `Stage M` - Stage M -* `Stage Ms` - Stage Ms -* `Stage 2A` - Stage 2A -* `Stage 2B` - Stage 2B -* `Stage 3` - Stage 3 -* `Stage 4` - Stage 4 -* `Stage 4S` - Stage 4S -* `Occult Carcinoma` - Occult Carcinoma - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Stage 0` - Stage 0
* `Stage 0a` - Stage 0a
* `Stage 0is` - Stage 0is
* `Stage 1` - Stage 1
* `Stage 1A` - Stage 1A
* `Stage 1B` - Stage 1B
* `Stage A` - Stage A
* `Stage B` - Stage B
* `Stage C` - Stage C
* `Stage I` - Stage I
* `Stage IA` - Stage IA
* `Stage IA1` - Stage IA1
* `Stage IA2` - Stage IA2
* `Stage IA3` - Stage IA3
* `Stage IAB` - Stage IAB
* `Stage IAE` - Stage IAE
* `Stage IAES` - Stage IAES
* `Stage IAS` - Stage IAS
* `Stage IB` - Stage IB
* `Stage IB1` - Stage IB1
* `Stage IB2` - Stage IB2
* `Stage IBE` - Stage IBE
* `Stage IBES` - Stage IBES
* `Stage IBS` - Stage IBS
* `Stage IC` - Stage IC
* `Stage IE` - Stage IE
* `Stage IEA` - Stage IEA
* `Stage IEB` - Stage IEB
* `Stage IES` - Stage IES
* `Stage II` - Stage II
* `Stage II bulky` - Stage II bulky
* `Stage IIA` - Stage IIA
* `Stage IIA1` - Stage IIA1
* `Stage IIA2` - Stage IIA2
* `Stage IIAE` - Stage IIAE
* `Stage IIAES` - Stage IIAES
* `Stage IIAS` - Stage IIAS
* `Stage IIB` - Stage IIB
* `Stage IIBE` - Stage IIBE
* `Stage IIBES` - Stage IIBES
* `Stage IIBS` - Stage IIBS
* `Stage IIC` - Stage IIC
* `Stage IIE` - Stage IIE
* `Stage IIEA` - Stage IIEA
* `Stage IIEB` - Stage IIEB
* `Stage IIES` - Stage IIES
* `Stage III` - Stage III
* `Stage IIIA` - Stage IIIA
* `Stage IIIA1` - Stage IIIA1
* `Stage IIIA2` - Stage IIIA2
* `Stage IIIAE` - Stage IIIAE
* `Stage IIIAES` - Stage IIIAES
* `Stage IIIAS` - Stage IIIAS
* `Stage IIIB` - Stage IIIB
* `Stage IIIBE` - Stage IIIBE
* `Stage IIIBES` - Stage IIIBES
* `Stage IIIBS` - Stage IIIBS
* `Stage IIIC` - Stage IIIC
* `Stage IIIC1` - Stage IIIC1
* `Stage IIIC2` - Stage IIIC2
* `Stage IIID` - Stage IIID
* `Stage IIIE` - Stage IIIE
* `Stage IIIES` - Stage IIIES
* `Stage IIIS` - Stage IIIS
* `Stage IIS` - Stage IIS
* `Stage IS` - Stage IS
* `Stage IV` - Stage IV
* `Stage IVA` - Stage IVA
* `Stage IVA1` - Stage IVA1
* `Stage IVA2` - Stage IVA2
* `Stage IVAE` - Stage IVAE
* `Stage IVAES` - Stage IVAES
* `Stage IVAS` - Stage IVAS
* `Stage IVB` - Stage IVB
* `Stage IVBE` - Stage IVBE
* `Stage IVBES` - Stage IVBES
* `Stage IVBS` - Stage IVBS
* `Stage IVC` - Stage IVC
* `Stage IVE` - Stage IVE
* `Stage IVES` - Stage IVES
* `Stage IVS` - Stage IVS
* `In situ` - In situ
* `Localized` - Localized
* `Regionalized` - Regionalized
* `Distant` - Distant
* `Stage L1` - Stage L1
* `Stage L2` - Stage L2
* `Stage M` - Stage M
* `Stage Ms` - Stage Ms
* `Stage 2A` - Stage 2A
* `Stage 2B` - Stage 2B
* `Stage 3` - Stage 3
* `Stage 4` - Stage 4
* `Stage 4S` - Stage 4S
* `Occult Carcinoma` - Occult Carcinoma| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Stage 0| -|*anonymous*|Stage 0a| -|*anonymous*|Stage 0is| -|*anonymous*|Stage 1| -|*anonymous*|Stage 1A| -|*anonymous*|Stage 1B| -|*anonymous*|Stage A| -|*anonymous*|Stage B| -|*anonymous*|Stage C| -|*anonymous*|Stage I| -|*anonymous*|Stage IA| -|*anonymous*|Stage IA1| -|*anonymous*|Stage IA2| -|*anonymous*|Stage IA3| -|*anonymous*|Stage IAB| -|*anonymous*|Stage IAE| -|*anonymous*|Stage IAES| -|*anonymous*|Stage IAS| -|*anonymous*|Stage IB| -|*anonymous*|Stage IB1| -|*anonymous*|Stage IB2| -|*anonymous*|Stage IBE| -|*anonymous*|Stage IBES| -|*anonymous*|Stage IBS| -|*anonymous*|Stage IC| -|*anonymous*|Stage IE| -|*anonymous*|Stage IEA| -|*anonymous*|Stage IEB| -|*anonymous*|Stage IES| -|*anonymous*|Stage II| -|*anonymous*|Stage II bulky| -|*anonymous*|Stage IIA| -|*anonymous*|Stage IIA1| -|*anonymous*|Stage IIA2| -|*anonymous*|Stage IIAE| -|*anonymous*|Stage IIAES| -|*anonymous*|Stage IIAS| -|*anonymous*|Stage IIB| -|*anonymous*|Stage IIBE| -|*anonymous*|Stage IIBES| -|*anonymous*|Stage IIBS| -|*anonymous*|Stage IIC| -|*anonymous*|Stage IIE| -|*anonymous*|Stage IIEA| -|*anonymous*|Stage IIEB| -|*anonymous*|Stage IIES| -|*anonymous*|Stage III| -|*anonymous*|Stage IIIA| -|*anonymous*|Stage IIIA1| -|*anonymous*|Stage IIIA2| -|*anonymous*|Stage IIIAE| -|*anonymous*|Stage IIIAES| -|*anonymous*|Stage IIIAS| -|*anonymous*|Stage IIIB| -|*anonymous*|Stage IIIBE| -|*anonymous*|Stage IIIBES| -|*anonymous*|Stage IIIBS| -|*anonymous*|Stage IIIC| -|*anonymous*|Stage IIIC1| -|*anonymous*|Stage IIIC2| -|*anonymous*|Stage IIID| -|*anonymous*|Stage IIIE| -|*anonymous*|Stage IIIES| -|*anonymous*|Stage IIIS| -|*anonymous*|Stage IIS| -|*anonymous*|Stage IS| -|*anonymous*|Stage IV| -|*anonymous*|Stage IVA| -|*anonymous*|Stage IVA1| -|*anonymous*|Stage IVA2| -|*anonymous*|Stage IVAE| -|*anonymous*|Stage IVAES| -|*anonymous*|Stage IVAS| -|*anonymous*|Stage IVB| -|*anonymous*|Stage IVBE| -|*anonymous*|Stage IVBES| -|*anonymous*|Stage IVBS| -|*anonymous*|Stage IVC| -|*anonymous*|Stage IVE| -|*anonymous*|Stage IVES| -|*anonymous*|Stage IVS| -|*anonymous*|In situ| -|*anonymous*|Localized| -|*anonymous*|Regionalized| -|*anonymous*|Distant| -|*anonymous*|Stage L1| -|*anonymous*|Stage L2| -|*anonymous*|Stage M| -|*anonymous*|Stage Ms| -|*anonymous*|Stage 2A| -|*anonymous*|Stage 2B| -|*anonymous*|Stage 3| -|*anonymous*|Stage 4| -|*anonymous*|Stage 4S| -|*anonymous*|Occult Carcinoma| - -

StagingSystemEnum

- - - - - - -```json -"AJCC 8th edition" - -``` - -* `AJCC 8th edition` - AJCC 8th edition -* `AJCC 7th edition` - AJCC 7th edition -* `AJCC 6th edition` - AJCC 6th edition -* `Ann Arbor staging system` - Ann Arbor staging system -* `Binet staging system` - Binet staging system -* `Durie-Salmon staging system` - Durie-Salmon staging system -* `FIGO staging system` - FIGO staging system -* `International Neuroblastoma Risk Group Staging System` - International Neuroblastoma Risk Group Staging System -* `International Neuroblastoma Staging System` - International Neuroblastoma Staging System -* `Lugano staging system` - Lugano staging system -* `Rai staging system` - Rai staging system -* `Revised International staging system (RISS)` - Revised International staging system (RISS) -* `SEER staging system` - SEER staging system -* `St Jude staging system` - St Jude staging system - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `AJCC 8th edition` - AJCC 8th edition
* `AJCC 7th edition` - AJCC 7th edition
* `AJCC 6th edition` - AJCC 6th edition
* `Ann Arbor staging system` - Ann Arbor staging system
* `Binet staging system` - Binet staging system
* `Durie-Salmon staging system` - Durie-Salmon staging system
* `FIGO staging system` - FIGO staging system
* `International Neuroblastoma Risk Group Staging System` - International Neuroblastoma Risk Group Staging System
* `International Neuroblastoma Staging System` - International Neuroblastoma Staging System
* `Lugano staging system` - Lugano staging system
* `Rai staging system` - Rai staging system
* `Revised International staging system (RISS)` - Revised International staging system (RISS)
* `SEER staging system` - SEER staging system
* `St Jude staging system` - St Jude staging system| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|AJCC 8th edition| -|*anonymous*|AJCC 7th edition| -|*anonymous*|AJCC 6th edition| -|*anonymous*|Ann Arbor staging system| -|*anonymous*|Binet staging system| -|*anonymous*|Durie-Salmon staging system| -|*anonymous*|FIGO staging system| -|*anonymous*|International Neuroblastoma Risk Group Staging System| -|*anonymous*|International Neuroblastoma Staging System| -|*anonymous*|Lugano staging system| -|*anonymous*|Rai staging system| -|*anonymous*|Revised International staging system (RISS)| -|*anonymous*|SEER staging system| -|*anonymous*|St Jude staging system| - -

StatusOfTreatmentEnum

- - - - - - -```json -"Treatment completed as prescribed" - -``` - -* `Treatment completed as prescribed` - Treatment completed as prescribed -* `Treatment incomplete due to technical or organizational problems` - Treatment incomplete due to technical or organizational problems -* `Treatment incomplete because patient died` - Treatment incomplete because patient died -* `Patient choice (stopped or interrupted treatment)` - Patient choice (stopped or interrupted treatment) -* `Physician decision (stopped or interrupted treatment)` - Physician decision (stopped or interrupted treatment) -* `Treatment stopped due to lack of efficacy (disease progression)` - Treatment stopped due to lack of efficacy (disease progression) -* `Treatment stopped due to acute toxicity` - Treatment stopped due to acute toxicity -* `Other` - Other -* `Not applicable` - Not applicable -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Treatment completed as prescribed` - Treatment completed as prescribed
* `Treatment incomplete due to technical or organizational problems` - Treatment incomplete due to technical or organizational problems
* `Treatment incomplete because patient died` - Treatment incomplete because patient died
* `Patient choice (stopped or interrupted treatment)` - Patient choice (stopped or interrupted treatment)
* `Physician decision (stopped or interrupted treatment)` - Physician decision (stopped or interrupted treatment)
* `Treatment stopped due to lack of efficacy (disease progression)` - Treatment stopped due to lack of efficacy (disease progression)
* `Treatment stopped due to acute toxicity` - Treatment stopped due to acute toxicity
* `Other` - Other
* `Not applicable` - Not applicable
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Treatment completed as prescribed| -|*anonymous*|Treatment incomplete due to technical or organizational problems| -|*anonymous*|Treatment incomplete because patient died| -|*anonymous*|Patient choice (stopped or interrupted treatment)| -|*anonymous*|Physician decision (stopped or interrupted treatment)| -|*anonymous*|Treatment stopped due to lack of efficacy (disease progression)| -|*anonymous*|Treatment stopped due to acute toxicity| -|*anonymous*|Other| -|*anonymous*|Not applicable| -|*anonymous*|Unknown| - -

Surgery

- - - - - - -```json -{ - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "surgery_type": "Ablation", - "surgery_site": "string", - "surgery_location": "Local recurrence", - "tumour_focality": "Cannot be assessed", - "residual_tumour_classification": "Not applicable", - "margin_types_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_involved": [ - "Circumferential resection margin" - ], - "margin_types_not_assessed": [ - "Circumferential resection margin" - ], - "lymphovascular_invasion": "Absent", - "perineural_invasion": "Absent", - "submitter_specimen_id": "string", - "tumour_length": 32767, - "tumour_width": 32767, - "greatest_dimension_tumour": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_treatment_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|id|string(uuid)|false|none|none| -|surgery_type|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SurgeryTypeEnum](#schemasurgerytypeenum)|false|none|* `Ablation` - Ablation
* `Axillary Clearance` - Axillary Clearance
* `Axillary lymph nodes sampling` - Axillary lymph nodes sampling
* `Bilateral complete salpingo-oophorectomy` - Bilateral complete salpingo-oophorectomy
* `Biopsy` - Biopsy
* `Bypass Gastrojejunostomy` - Bypass Gastrojejunostomy
* `Cholecystectomy` - Cholecystectomy
* `Cholecystojejunostomy` - Cholecystojejunostomy
* `Completion Gastrectomy` - Completion Gastrectomy
* `Debridement of pancreatic and peripancreatic necrosis` - Debridement of pancreatic and peripancreatic necrosis
* `Distal subtotal pancreatectomy` - Distal subtotal pancreatectomy
* `Drainage of abscess` - Drainage of abscess
* `Duodenal preserving pancreatic head resection` - Duodenal preserving pancreatic head resection
* `Endoscopic biopsy` - Endoscopic biopsy
* `Endoscopic brushings of gastrointestinal tract` - Endoscopic brushings of gastrointestinal tract
* `Enucleation` - Enucleation
* `Esophageal bypass surgery/jejunostomy only` - Esophageal bypass surgery/jejunostomy only
* `Exploratory laparotomy` - Exploratory laparotomy
* `Fine needle aspiration biopsy` - Fine needle aspiration biopsy
* `Gastric Antrectomy` - Gastric Antrectomy
* `Glossectomy` - Glossectomy
* `Hepatojejunostomy` - Hepatojejunostomy
* `Hysterectomy` - Hysterectomy
* `Incision of thorax` - Incision of thorax
* `Ivor Lewis subtotal esophagectomy` - Ivor Lewis subtotal esophagectomy
* `Laparotomy` - Laparotomy
* `Left thoracoabdominal incision` - Left thoracoabdominal incision
* `Lobectomy` - Lobectomy
* `Mammoplasty` - Mammoplasty
* `Mastectomy` - Mastectomy
* `McKeown esophagectomy` - McKeown esophagectomy
* `Merendino procedure` - Merendino procedure
* `Minimally invasive esophagectomy` - Minimally invasive esophagectomy
* `Omentectomy` - Omentectomy
* `Ovariectomy` - Ovariectomy
* `Pancreaticoduodenectomy (Whipple procedure)` - Pancreaticoduodenectomy (Whipple procedure)
* `Pancreaticojejunostomy, side-to-side anastomosis` - Pancreaticojejunostomy, side-to-side anastomosis
* `Partial pancreatectomy` - Partial pancreatectomy
* `Pneumonectomy` - Pneumonectomy
* `Prostatectomy` - Prostatectomy
* `Proximal subtotal gastrectomy` - Proximal subtotal gastrectomy
* `Pylorus-sparing Whipple operation` - Pylorus-sparing Whipple operation
* `Radical pancreaticoduodenectomy` - Radical pancreaticoduodenectomy
* `Radical prostatectomy` - Radical prostatectomy
* `Reexcision` - Reexcision
* `Segmentectomy` - Segmentectomy
* `Sentinal Lymph Node Biopsy` - Sentinal Lymph Node Biopsy
* `Spleen preserving distal pancreatectomy` - Spleen preserving distal pancreatectomy
* `Splenectomy` - Splenectomy
* `Total gastrectomy` - Total gastrectomy
* `Total gastrectomy with extended lymphadenectomy` - Total gastrectomy with extended lymphadenectomy
* `Total pancreatectomy` - Total pancreatectomy
* `Transhiatal esophagectomy` - Transhiatal esophagectomy
* `Triple bypass of pancreas` - Triple bypass of pancreas
* `Tumor Debulking` - Tumor Debulking
* `Wedge/localised gastric resection` - Wedge/localised gastric resection
* `Wide Local Excision` - Wide Local Excision| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|surgery_site|string¦null|false|none|none| -|surgery_location|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[SurgeryLocationEnum](#schemasurgerylocationenum)|false|none|* `Local recurrence` - Local recurrence
* `Metastatic` - Metastatic
* `Primary` - Primary| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|tumour_focality|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TumourFocalityEnum](#schematumourfocalityenum)|false|none|* `Cannot be assessed` - Cannot be assessed
* `Multifocal` - Multifocal
* `Not applicable` - Not applicable
* `Unifocal` - Unifocal
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|residual_tumour_classification|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ResidualTumourClassificationEnum](#schemaresidualtumourclassificationenum)|false|none|* `Not applicable` - Not applicable
* `RX` - RX
* `R0` - R0
* `R1` - R1
* `R2` - R2
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|margin_types_involved|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MarginTypesEnum](#schemamargintypesenum)|false|none|* `Circumferential resection margin` - Circumferential resection margin
* `Common bile duct margin` - Common bile duct margin
* `Distal margin` - Distal margin
* `Not applicable` - Not applicable
* `Proximal margin` - Proximal margin
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|margin_types_not_involved|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MarginTypesEnum](#schemamargintypesenum)|false|none|* `Circumferential resection margin` - Circumferential resection margin
* `Common bile duct margin` - Common bile duct margin
* `Distal margin` - Distal margin
* `Not applicable` - Not applicable
* `Proximal margin` - Proximal margin
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|margin_types_not_assessed|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[MarginTypesEnum](#schemamargintypesenum)|false|none|* `Circumferential resection margin` - Circumferential resection margin
* `Common bile duct margin` - Common bile duct margin
* `Distal margin` - Distal margin
* `Not applicable` - Not applicable
* `Proximal margin` - Proximal margin
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|lymphovascular_invasion|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[LymphovascularInvasionEnum](#schemalymphovascularinvasionenum)|false|none|* `Absent` - Absent
* `Both lymphatic and small vessel and venous (large vessel) invasion` - Both lymphatic and small vessel and venous (large vessel) invasion
* `Lymphatic and small vessel invasion only` - Lymphatic and small vessel invasion only
* `Not applicable` - Not applicable
* `Present` - Present
* `Venous (large vessel) invasion only` - Venous (large vessel) invasion only
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|perineural_invasion|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[PerineuralInvasionEnum](#schemaperineuralinvasionenum)|false|none|* `Absent` - Absent
* `Cannot be assessed` - Cannot be assessed
* `Not applicable` - Not applicable
* `Present` - Present
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_specimen_id|string¦null|false|none|none| -|tumour_length|integer¦null|false|none|none| -|tumour_width|integer¦null|false|none|none| -|greatest_dimension_tumour|integer¦null|false|none|none| -|program_id|string|true|none|none| -|submitter_donor_id|string|true|none|none| -|submitter_treatment_id|string|true|none|none| - -

SurgeryLocationEnum

- - - - - - -```json -"Local recurrence" - -``` - -* `Local recurrence` - Local recurrence -* `Metastatic` - Metastatic -* `Primary` - Primary - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Local recurrence` - Local recurrence
* `Metastatic` - Metastatic
* `Primary` - Primary| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Local recurrence| -|*anonymous*|Metastatic| -|*anonymous*|Primary| - -

SurgeryTypeEnum

- - - - - - -```json -"Ablation" - -``` - -* `Ablation` - Ablation -* `Axillary Clearance` - Axillary Clearance -* `Axillary lymph nodes sampling` - Axillary lymph nodes sampling -* `Bilateral complete salpingo-oophorectomy` - Bilateral complete salpingo-oophorectomy -* `Biopsy` - Biopsy -* `Bypass Gastrojejunostomy` - Bypass Gastrojejunostomy -* `Cholecystectomy` - Cholecystectomy -* `Cholecystojejunostomy` - Cholecystojejunostomy -* `Completion Gastrectomy` - Completion Gastrectomy -* `Debridement of pancreatic and peripancreatic necrosis` - Debridement of pancreatic and peripancreatic necrosis -* `Distal subtotal pancreatectomy` - Distal subtotal pancreatectomy -* `Drainage of abscess` - Drainage of abscess -* `Duodenal preserving pancreatic head resection` - Duodenal preserving pancreatic head resection -* `Endoscopic biopsy` - Endoscopic biopsy -* `Endoscopic brushings of gastrointestinal tract` - Endoscopic brushings of gastrointestinal tract -* `Enucleation` - Enucleation -* `Esophageal bypass surgery/jejunostomy only` - Esophageal bypass surgery/jejunostomy only -* `Exploratory laparotomy` - Exploratory laparotomy -* `Fine needle aspiration biopsy` - Fine needle aspiration biopsy -* `Gastric Antrectomy` - Gastric Antrectomy -* `Glossectomy` - Glossectomy -* `Hepatojejunostomy` - Hepatojejunostomy -* `Hysterectomy` - Hysterectomy -* `Incision of thorax` - Incision of thorax -* `Ivor Lewis subtotal esophagectomy` - Ivor Lewis subtotal esophagectomy -* `Laparotomy` - Laparotomy -* `Left thoracoabdominal incision` - Left thoracoabdominal incision -* `Lobectomy` - Lobectomy -* `Mammoplasty` - Mammoplasty -* `Mastectomy` - Mastectomy -* `McKeown esophagectomy` - McKeown esophagectomy -* `Merendino procedure` - Merendino procedure -* `Minimally invasive esophagectomy` - Minimally invasive esophagectomy -* `Omentectomy` - Omentectomy -* `Ovariectomy` - Ovariectomy -* `Pancreaticoduodenectomy (Whipple procedure)` - Pancreaticoduodenectomy (Whipple procedure) -* `Pancreaticojejunostomy, side-to-side anastomosis` - Pancreaticojejunostomy, side-to-side anastomosis -* `Partial pancreatectomy` - Partial pancreatectomy -* `Pneumonectomy` - Pneumonectomy -* `Prostatectomy` - Prostatectomy -* `Proximal subtotal gastrectomy` - Proximal subtotal gastrectomy -* `Pylorus-sparing Whipple operation` - Pylorus-sparing Whipple operation -* `Radical pancreaticoduodenectomy` - Radical pancreaticoduodenectomy -* `Radical prostatectomy` - Radical prostatectomy -* `Reexcision` - Reexcision -* `Segmentectomy` - Segmentectomy -* `Sentinal Lymph Node Biopsy` - Sentinal Lymph Node Biopsy -* `Spleen preserving distal pancreatectomy` - Spleen preserving distal pancreatectomy -* `Splenectomy` - Splenectomy -* `Total gastrectomy` - Total gastrectomy -* `Total gastrectomy with extended lymphadenectomy` - Total gastrectomy with extended lymphadenectomy -* `Total pancreatectomy` - Total pancreatectomy -* `Transhiatal esophagectomy` - Transhiatal esophagectomy -* `Triple bypass of pancreas` - Triple bypass of pancreas -* `Tumor Debulking` - Tumor Debulking -* `Wedge/localised gastric resection` - Wedge/localised gastric resection -* `Wide Local Excision` - Wide Local Excision - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Ablation` - Ablation
* `Axillary Clearance` - Axillary Clearance
* `Axillary lymph nodes sampling` - Axillary lymph nodes sampling
* `Bilateral complete salpingo-oophorectomy` - Bilateral complete salpingo-oophorectomy
* `Biopsy` - Biopsy
* `Bypass Gastrojejunostomy` - Bypass Gastrojejunostomy
* `Cholecystectomy` - Cholecystectomy
* `Cholecystojejunostomy` - Cholecystojejunostomy
* `Completion Gastrectomy` - Completion Gastrectomy
* `Debridement of pancreatic and peripancreatic necrosis` - Debridement of pancreatic and peripancreatic necrosis
* `Distal subtotal pancreatectomy` - Distal subtotal pancreatectomy
* `Drainage of abscess` - Drainage of abscess
* `Duodenal preserving pancreatic head resection` - Duodenal preserving pancreatic head resection
* `Endoscopic biopsy` - Endoscopic biopsy
* `Endoscopic brushings of gastrointestinal tract` - Endoscopic brushings of gastrointestinal tract
* `Enucleation` - Enucleation
* `Esophageal bypass surgery/jejunostomy only` - Esophageal bypass surgery/jejunostomy only
* `Exploratory laparotomy` - Exploratory laparotomy
* `Fine needle aspiration biopsy` - Fine needle aspiration biopsy
* `Gastric Antrectomy` - Gastric Antrectomy
* `Glossectomy` - Glossectomy
* `Hepatojejunostomy` - Hepatojejunostomy
* `Hysterectomy` - Hysterectomy
* `Incision of thorax` - Incision of thorax
* `Ivor Lewis subtotal esophagectomy` - Ivor Lewis subtotal esophagectomy
* `Laparotomy` - Laparotomy
* `Left thoracoabdominal incision` - Left thoracoabdominal incision
* `Lobectomy` - Lobectomy
* `Mammoplasty` - Mammoplasty
* `Mastectomy` - Mastectomy
* `McKeown esophagectomy` - McKeown esophagectomy
* `Merendino procedure` - Merendino procedure
* `Minimally invasive esophagectomy` - Minimally invasive esophagectomy
* `Omentectomy` - Omentectomy
* `Ovariectomy` - Ovariectomy
* `Pancreaticoduodenectomy (Whipple procedure)` - Pancreaticoduodenectomy (Whipple procedure)
* `Pancreaticojejunostomy, side-to-side anastomosis` - Pancreaticojejunostomy, side-to-side anastomosis
* `Partial pancreatectomy` - Partial pancreatectomy
* `Pneumonectomy` - Pneumonectomy
* `Prostatectomy` - Prostatectomy
* `Proximal subtotal gastrectomy` - Proximal subtotal gastrectomy
* `Pylorus-sparing Whipple operation` - Pylorus-sparing Whipple operation
* `Radical pancreaticoduodenectomy` - Radical pancreaticoduodenectomy
* `Radical prostatectomy` - Radical prostatectomy
* `Reexcision` - Reexcision
* `Segmentectomy` - Segmentectomy
* `Sentinal Lymph Node Biopsy` - Sentinal Lymph Node Biopsy
* `Spleen preserving distal pancreatectomy` - Spleen preserving distal pancreatectomy
* `Splenectomy` - Splenectomy
* `Total gastrectomy` - Total gastrectomy
* `Total gastrectomy with extended lymphadenectomy` - Total gastrectomy with extended lymphadenectomy
* `Total pancreatectomy` - Total pancreatectomy
* `Transhiatal esophagectomy` - Transhiatal esophagectomy
* `Triple bypass of pancreas` - Triple bypass of pancreas
* `Tumor Debulking` - Tumor Debulking
* `Wedge/localised gastric resection` - Wedge/localised gastric resection
* `Wide Local Excision` - Wide Local Excision| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Ablation| -|*anonymous*|Axillary Clearance| -|*anonymous*|Axillary lymph nodes sampling| -|*anonymous*|Bilateral complete salpingo-oophorectomy| -|*anonymous*|Biopsy| -|*anonymous*|Bypass Gastrojejunostomy| -|*anonymous*|Cholecystectomy| -|*anonymous*|Cholecystojejunostomy| -|*anonymous*|Completion Gastrectomy| -|*anonymous*|Debridement of pancreatic and peripancreatic necrosis| -|*anonymous*|Distal subtotal pancreatectomy| -|*anonymous*|Drainage of abscess| -|*anonymous*|Duodenal preserving pancreatic head resection| -|*anonymous*|Endoscopic biopsy| -|*anonymous*|Endoscopic brushings of gastrointestinal tract| -|*anonymous*|Enucleation| -|*anonymous*|Esophageal bypass surgery/jejunostomy only| -|*anonymous*|Exploratory laparotomy| -|*anonymous*|Fine needle aspiration biopsy| -|*anonymous*|Gastric Antrectomy| -|*anonymous*|Glossectomy| -|*anonymous*|Hepatojejunostomy| -|*anonymous*|Hysterectomy| -|*anonymous*|Incision of thorax| -|*anonymous*|Ivor Lewis subtotal esophagectomy| -|*anonymous*|Laparotomy| -|*anonymous*|Left thoracoabdominal incision| -|*anonymous*|Lobectomy| -|*anonymous*|Mammoplasty| -|*anonymous*|Mastectomy| -|*anonymous*|McKeown esophagectomy| -|*anonymous*|Merendino procedure| -|*anonymous*|Minimally invasive esophagectomy| -|*anonymous*|Omentectomy| -|*anonymous*|Ovariectomy| -|*anonymous*|Pancreaticoduodenectomy (Whipple procedure)| -|*anonymous*|Pancreaticojejunostomy, side-to-side anastomosis| -|*anonymous*|Partial pancreatectomy| -|*anonymous*|Pneumonectomy| -|*anonymous*|Prostatectomy| -|*anonymous*|Proximal subtotal gastrectomy| -|*anonymous*|Pylorus-sparing Whipple operation| -|*anonymous*|Radical pancreaticoduodenectomy| -|*anonymous*|Radical prostatectomy| -|*anonymous*|Reexcision| -|*anonymous*|Segmentectomy| -|*anonymous*|Sentinal Lymph Node Biopsy| -|*anonymous*|Spleen preserving distal pancreatectomy| -|*anonymous*|Splenectomy| -|*anonymous*|Total gastrectomy| -|*anonymous*|Total gastrectomy with extended lymphadenectomy| -|*anonymous*|Total pancreatectomy| -|*anonymous*|Transhiatal esophagectomy| -|*anonymous*|Triple bypass of pancreas| -|*anonymous*|Tumor Debulking| -|*anonymous*|Wedge/localised gastric resection| -|*anonymous*|Wide Local Excision| - -

TCategoryEnum

- - - - - - -```json -"T0" - -``` - -* `T0` - T0 -* `T1` - T1 -* `T1a` - T1a -* `T1a1` - T1a1 -* `T1a2` - T1a2 -* `T1a(s)` - T1a(s) -* `T1a(m)` - T1a(m) -* `T1b` - T1b -* `T1b1` - T1b1 -* `T1b2` - T1b2 -* `T1b(s)` - T1b(s) -* `T1b(m)` - T1b(m) -* `T1c` - T1c -* `T1d` - T1d -* `T1mi` - T1mi -* `T2` - T2 -* `T2(s)` - T2(s) -* `T2(m)` - T2(m) -* `T2a` - T2a -* `T2a1` - T2a1 -* `T2a2` - T2a2 -* `T2b` - T2b -* `T2c` - T2c -* `T2d` - T2d -* `T3` - T3 -* `T3(s)` - T3(s) -* `T3(m)` - T3(m) -* `T3a` - T3a -* `T3b` - T3b -* `T3c` - T3c -* `T3d` - T3d -* `T3e` - T3e -* `T4` - T4 -* `T4a` - T4a -* `T4a(s)` - T4a(s) -* `T4a(m)` - T4a(m) -* `T4b` - T4b -* `T4b(s)` - T4b(s) -* `T4b(m)` - T4b(m) -* `T4c` - T4c -* `T4d` - T4d -* `T4e` - T4e -* `Ta` - Ta -* `Tis` - Tis -* `Tis(DCIS)` - Tis(DCIS) -* `Tis(LAMN)` - Tis(LAMN) -* `Tis(LCIS)` - Tis(LCIS) -* `Tis(Paget)` - Tis(Paget) -* `Tis(Paget's)` - Tis(Paget's) -* `Tis pu` - Tis pu -* `Tis pd` - Tis pd -* `TX` - TX - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `T0` - T0
* `T1` - T1
* `T1a` - T1a
* `T1a1` - T1a1
* `T1a2` - T1a2
* `T1a(s)` - T1a(s)
* `T1a(m)` - T1a(m)
* `T1b` - T1b
* `T1b1` - T1b1
* `T1b2` - T1b2
* `T1b(s)` - T1b(s)
* `T1b(m)` - T1b(m)
* `T1c` - T1c
* `T1d` - T1d
* `T1mi` - T1mi
* `T2` - T2
* `T2(s)` - T2(s)
* `T2(m)` - T2(m)
* `T2a` - T2a
* `T2a1` - T2a1
* `T2a2` - T2a2
* `T2b` - T2b
* `T2c` - T2c
* `T2d` - T2d
* `T3` - T3
* `T3(s)` - T3(s)
* `T3(m)` - T3(m)
* `T3a` - T3a
* `T3b` - T3b
* `T3c` - T3c
* `T3d` - T3d
* `T3e` - T3e
* `T4` - T4
* `T4a` - T4a
* `T4a(s)` - T4a(s)
* `T4a(m)` - T4a(m)
* `T4b` - T4b
* `T4b(s)` - T4b(s)
* `T4b(m)` - T4b(m)
* `T4c` - T4c
* `T4d` - T4d
* `T4e` - T4e
* `Ta` - Ta
* `Tis` - Tis
* `Tis(DCIS)` - Tis(DCIS)
* `Tis(LAMN)` - Tis(LAMN)
* `Tis(LCIS)` - Tis(LCIS)
* `Tis(Paget)` - Tis(Paget)
* `Tis(Paget's)` - Tis(Paget's)
* `Tis pu` - Tis pu
* `Tis pd` - Tis pd
* `TX` - TX| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|T0| -|*anonymous*|T1| -|*anonymous*|T1a| -|*anonymous*|T1a1| -|*anonymous*|T1a2| -|*anonymous*|T1a(s)| -|*anonymous*|T1a(m)| -|*anonymous*|T1b| -|*anonymous*|T1b1| -|*anonymous*|T1b2| -|*anonymous*|T1b(s)| -|*anonymous*|T1b(m)| -|*anonymous*|T1c| -|*anonymous*|T1d| -|*anonymous*|T1mi| -|*anonymous*|T2| -|*anonymous*|T2(s)| -|*anonymous*|T2(m)| -|*anonymous*|T2a| -|*anonymous*|T2a1| -|*anonymous*|T2a2| -|*anonymous*|T2b| -|*anonymous*|T2c| -|*anonymous*|T2d| -|*anonymous*|T3| -|*anonymous*|T3(s)| -|*anonymous*|T3(m)| -|*anonymous*|T3a| -|*anonymous*|T3b| -|*anonymous*|T3c| -|*anonymous*|T3d| -|*anonymous*|T3e| -|*anonymous*|T4| -|*anonymous*|T4a| -|*anonymous*|T4a(s)| -|*anonymous*|T4a(m)| -|*anonymous*|T4b| -|*anonymous*|T4b(s)| -|*anonymous*|T4b(m)| -|*anonymous*|T4c| -|*anonymous*|T4d| -|*anonymous*|T4e| -|*anonymous*|Ta| -|*anonymous*|Tis| -|*anonymous*|Tis(DCIS)| -|*anonymous*|Tis(LAMN)| -|*anonymous*|Tis(LCIS)| -|*anonymous*|Tis(Paget)| -|*anonymous*|Tis(Paget's)| -|*anonymous*|Tis pu| -|*anonymous*|Tis pd| -|*anonymous*|TX| - -

TobaccoSmokingStatusEnum

- - - - - - -```json -"Current reformed smoker for <= 15 years" - -``` - -* `Current reformed smoker for <= 15 years` - Current reformed smoker for <= 15 years -* `Current reformed smoker for > 15 years` - Current reformed smoker for > 15 years -* `Current reformed smoker, duration not specified` - Current reformed smoker, duration not specified -* `Current smoker` - Current smoker -* `Lifelong non-smoker (<100 cigarettes smoked in lifetime)` - Lifelong non-smoker (<100 cigarettes smoked in lifetime) -* `Not applicable` - Not applicable -* `Smoking history not documented` - Smoking history not documented - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Current reformed smoker for <= 15 years` - Current reformed smoker for <= 15 years
* `Current reformed smoker for > 15 years` - Current reformed smoker for > 15 years
* `Current reformed smoker, duration not specified` - Current reformed smoker, duration not specified
* `Current smoker` - Current smoker
* `Lifelong non-smoker (<100 cigarettes smoked in lifetime)` - Lifelong non-smoker (<100 cigarettes smoked in lifetime)
* `Not applicable` - Not applicable
* `Smoking history not documented` - Smoking history not documented| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Current reformed smoker for <= 15 years| -|*anonymous*|Current reformed smoker for > 15 years| -|*anonymous*|Current reformed smoker, duration not specified| -|*anonymous*|Current smoker| -|*anonymous*|Lifelong non-smoker (<100 cigarettes smoked in lifetime)| -|*anonymous*|Not applicable| -|*anonymous*|Smoking history not documented| - -

TobaccoTypeEnum

- - - - - - -```json -"Chewing Tobacco" - -``` - -* `Chewing Tobacco` - Chewing Tobacco -* `Cigar` - Cigar -* `Cigarettes` - Cigarettes -* `Electronic cigarettes` - Electronic cigarettes -* `Not applicable` - Not applicable -* `Pipe` - Pipe -* `Roll-ups` - Roll-ups -* `Snuff` - Snuff -* `Unknown` - Unknown -* `Waterpipe` - Waterpipe - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Chewing Tobacco` - Chewing Tobacco
* `Cigar` - Cigar
* `Cigarettes` - Cigarettes
* `Electronic cigarettes` - Electronic cigarettes
* `Not applicable` - Not applicable
* `Pipe` - Pipe
* `Roll-ups` - Roll-ups
* `Snuff` - Snuff
* `Unknown` - Unknown
* `Waterpipe` - Waterpipe| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Chewing Tobacco| -|*anonymous*|Cigar| -|*anonymous*|Cigarettes| -|*anonymous*|Electronic cigarettes| -|*anonymous*|Not applicable| -|*anonymous*|Pipe| -|*anonymous*|Roll-ups| -|*anonymous*|Snuff| -|*anonymous*|Unknown| -|*anonymous*|Waterpipe| - -

Treatment

- - - - - - -```json -{ - "submitter_treatment_id": "string", - "treatment_type": [ - "Bone marrow transplant" - ], - "is_primary_treatment": "Yes", - "treatment_start_date": "string", - "treatment_end_date": "string", - "treatment_setting": "Adjuvant", - "treatment_intent": "Curative", - "response_to_treatment_criteria_method": "RECIST 1.1", - "response_to_treatment": "Complete response", - "status_of_treatment": "Treatment completed as prescribed", - "line_of_treatment": -2147483648, - "days_per_cycle": 32767, - "number_of_cycles": 32767, - "program_id": "string", - "submitter_donor_id": "string", - "submitter_primary_diagnosis_id": "string" -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|submitter_treatment_id|string|true|none|none| -|treatment_type|[oneOf]¦null|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TreatmentTypeEnum](#schematreatmenttypeenum)|false|none|* `Bone marrow transplant` - Bone marrow transplant
* `Chemotherapy` - Chemotherapy
* `Hormonal therapy` - Hormonal therapy
* `Immunotherapy` - Immunotherapy
* `No treatment` - No treatment
* `Other targeting molecular therapy` - Other targeting molecular therapy
* `Photodynamic therapy` - Photodynamic therapy
* `Radiation therapy` - Radiation therapy
* `Stem cell transplant` - Stem cell transplant
* `Surgery` - Surgery| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|is_primary_treatment|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[uBooleanEnum](#schemaubooleanenum)|false|none|* `Yes` - Yes
* `No` - No
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|treatment_start_date|string¦null|false|none|none| -|treatment_end_date|string¦null|false|none|none| -|treatment_setting|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TreatmentSettingEnum](#schematreatmentsettingenum)|false|none|* `Adjuvant` - Adjuvant
* `Advanced/Metastatic` - Advanced/Metastatic
* `Neoadjuvant` - Neoadjuvant
* `Conditioning` - Conditioning
* `Induction` - Induction
* `Locally advanced` - Locally advanced
* `Maintenance` - Maintenance
* `Mobilization` - Mobilization
* `Preventative` - Preventative
* `Radiosensitization` - Radiosensitization
* `Salvage` - Salvage| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|treatment_intent|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[TreatmentIntentEnum](#schematreatmentintentenum)|false|none|* `Curative` - Curative
* `Palliative` - Palliative
* `Supportive` - Supportive
* `Diagnostic` - Diagnostic
* `Preventive` - Preventive
* `Guidance` - Guidance
* `Screening` - Screening
* `Forensic` - Forensic| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|response_to_treatment_criteria_method|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ResponseToTreatmentCriteriaMethodEnum](#schemaresponsetotreatmentcriteriamethodenum)|false|none|* `RECIST 1.1` - RECIST 1.1
* `iRECIST` - iRECIST
* `Cheson CLL 2012 Oncology Response Criteria` - Cheson CLL 2012 Oncology Response Criteria
* `Response Assessment in Neuro-Oncology (RANO)` - Response Assessment in Neuro-Oncology (RANO)
* `AML Response Criteria` - AML Response Criteria
* `Physician Assessed Response Criteria` - Physician Assessed Response Criteria
* `Blazer score` - Blazer score| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|response_to_treatment|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[ResponseToTreatmentEnum](#schemaresponsetotreatmentenum)|false|none|* `Complete response` - Complete response
* `Partial response` - Partial response
* `Progressive disease` - Progressive disease
* `Stable disease` - Stable disease
* `Immune complete response (iCR)` - Immune complete response (iCR)
* `Immune partial response (iPR)` - Immune partial response (iPR)
* `Immune uncomfirmed progressive disease (iUPD)` - Immune uncomfirmed progressive disease (iUPD)
* `Immune confirmed progressive disease (iCPD)` - Immune confirmed progressive disease (iCPD)
* `Immune stable disease (iSD)` - Immune stable disease (iSD)
* `Complete remission` - Complete remission
* `Partial remission` - Partial remission
* `Minor response` - Minor response
* `Complete remission without measurable residual disease (CR MRD-)` - Complete remission without measurable residual disease (CR MRD-)
* `Complete remission with incomplete hematologic recovery (CRi)` - Complete remission with incomplete hematologic recovery (CRi)
* `Morphologic leukemia-free state` - Morphologic leukemia-free state
* `Primary refractory disease` - Primary refractory disease
* `Hematologic relapse (after CR MRD-, CR, CRi)` - Hematologic relapse (after CR MRD-, CR, CRi)
* `Molecular relapse (after CR MRD-)` - Molecular relapse (after CR MRD-)
* `Physician assessed complete response` - Physician assessed complete response
* `Physician assessed partial response` - Physician assessed partial response
* `Physician assessed stable disease` - Physician assessed stable disease
* `No evidence of disease (NED)` - No evidence of disease (NED)
* `Major response` - Major response| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|status_of_treatment|any|false|none|none| - -oneOf - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[StatusOfTreatmentEnum](#schemastatusoftreatmentenum)|false|none|* `Treatment completed as prescribed` - Treatment completed as prescribed
* `Treatment incomplete due to technical or organizational problems` - Treatment incomplete due to technical or organizational problems
* `Treatment incomplete because patient died` - Treatment incomplete because patient died
* `Patient choice (stopped or interrupted treatment)` - Patient choice (stopped or interrupted treatment)
* `Physician decision (stopped or interrupted treatment)` - Physician decision (stopped or interrupted treatment)
* `Treatment stopped due to lack of efficacy (disease progression)` - Treatment stopped due to lack of efficacy (disease progression)
* `Treatment stopped due to acute toxicity` - Treatment stopped due to acute toxicity
* `Other` - Other
* `Not applicable` - Not applicable
* `Unknown` - Unknown| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[BlankEnum](#schemablankenum)|false|none|none| - -xor - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|» *anonymous*|[NullEnum](#schemanullenum)|false|none|none| - -continued - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|line_of_treatment|integer¦null|false|none|none| -|days_per_cycle|integer¦null|false|none|none| -|number_of_cycles|integer¦null|false|none|none| -|program_id|string|true|none|none| -|submitter_donor_id|string|true|none|none| -|submitter_primary_diagnosis_id|string|true|none|none| - -

TreatmentIntentEnum

- - - - - - -```json -"Curative" - -``` - -* `Curative` - Curative -* `Palliative` - Palliative -* `Supportive` - Supportive -* `Diagnostic` - Diagnostic -* `Preventive` - Preventive -* `Guidance` - Guidance -* `Screening` - Screening -* `Forensic` - Forensic - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Curative` - Curative
* `Palliative` - Palliative
* `Supportive` - Supportive
* `Diagnostic` - Diagnostic
* `Preventive` - Preventive
* `Guidance` - Guidance
* `Screening` - Screening
* `Forensic` - Forensic| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Curative| -|*anonymous*|Palliative| -|*anonymous*|Supportive| -|*anonymous*|Diagnostic| -|*anonymous*|Preventive| -|*anonymous*|Guidance| -|*anonymous*|Screening| -|*anonymous*|Forensic| - -

TreatmentSettingEnum

- - - - - - -```json -"Adjuvant" - -``` - -* `Adjuvant` - Adjuvant -* `Advanced/Metastatic` - Advanced/Metastatic -* `Neoadjuvant` - Neoadjuvant -* `Conditioning` - Conditioning -* `Induction` - Induction -* `Locally advanced` - Locally advanced -* `Maintenance` - Maintenance -* `Mobilization` - Mobilization -* `Preventative` - Preventative -* `Radiosensitization` - Radiosensitization -* `Salvage` - Salvage - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Adjuvant` - Adjuvant
* `Advanced/Metastatic` - Advanced/Metastatic
* `Neoadjuvant` - Neoadjuvant
* `Conditioning` - Conditioning
* `Induction` - Induction
* `Locally advanced` - Locally advanced
* `Maintenance` - Maintenance
* `Mobilization` - Mobilization
* `Preventative` - Preventative
* `Radiosensitization` - Radiosensitization
* `Salvage` - Salvage| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Adjuvant| -|*anonymous*|Advanced/Metastatic| -|*anonymous*|Neoadjuvant| -|*anonymous*|Conditioning| -|*anonymous*|Induction| -|*anonymous*|Locally advanced| -|*anonymous*|Maintenance| -|*anonymous*|Mobilization| -|*anonymous*|Preventative| -|*anonymous*|Radiosensitization| -|*anonymous*|Salvage| - -

TreatmentTypeEnum

- - - - - - -```json -"Bone marrow transplant" - -``` - -* `Bone marrow transplant` - Bone marrow transplant -* `Chemotherapy` - Chemotherapy -* `Hormonal therapy` - Hormonal therapy -* `Immunotherapy` - Immunotherapy -* `No treatment` - No treatment -* `Other targeting molecular therapy` - Other targeting molecular therapy -* `Photodynamic therapy` - Photodynamic therapy -* `Radiation therapy` - Radiation therapy -* `Stem cell transplant` - Stem cell transplant -* `Surgery` - Surgery - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Bone marrow transplant` - Bone marrow transplant
* `Chemotherapy` - Chemotherapy
* `Hormonal therapy` - Hormonal therapy
* `Immunotherapy` - Immunotherapy
* `No treatment` - No treatment
* `Other targeting molecular therapy` - Other targeting molecular therapy
* `Photodynamic therapy` - Photodynamic therapy
* `Radiation therapy` - Radiation therapy
* `Stem cell transplant` - Stem cell transplant
* `Surgery` - Surgery| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Bone marrow transplant| -|*anonymous*|Chemotherapy| -|*anonymous*|Hormonal therapy| -|*anonymous*|Immunotherapy| -|*anonymous*|No treatment| -|*anonymous*|Other targeting molecular therapy| -|*anonymous*|Photodynamic therapy| -|*anonymous*|Radiation therapy| -|*anonymous*|Stem cell transplant| -|*anonymous*|Surgery| - -

TumourFocalityEnum

- - - - - - -```json -"Cannot be assessed" - -``` - -* `Cannot be assessed` - Cannot be assessed -* `Multifocal` - Multifocal -* `Not applicable` - Not applicable -* `Unifocal` - Unifocal -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Cannot be assessed` - Cannot be assessed
* `Multifocal` - Multifocal
* `Not applicable` - Not applicable
* `Unifocal` - Unifocal
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Cannot be assessed| -|*anonymous*|Multifocal| -|*anonymous*|Not applicable| -|*anonymous*|Unifocal| -|*anonymous*|Unknown| - -

TumourGradeEnum

- - - - - - -```json -"Low grade" - -``` - -* `Low grade` - Low grade -* `High grade` - High grade -* `GX` - GX -* `G1` - G1 -* `G2` - G2 -* `G3` - G3 -* `G4` - G4 -* `Low` - Low -* `High` - High -* `Grade 1` - Grade 1 -* `Grade 2` - Grade 2 -* `Grade 3` - Grade 3 -* `Grade 4` - Grade 4 -* `Grade I` - Grade I -* `Grade II` - Grade II -* `Grade III` - Grade III -* `Grade IV` - Grade IV -* `Grade Group 1` - Grade Group 1 -* `Grade Group 2` - Grade Group 2 -* `Grade Group 3` - Grade Group 3 -* `Grade Group 4` - Grade Group 4 -* `Grade Group 5` - Grade Group 5 - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Low grade` - Low grade
* `High grade` - High grade
* `GX` - GX
* `G1` - G1
* `G2` - G2
* `G3` - G3
* `G4` - G4
* `Low` - Low
* `High` - High
* `Grade 1` - Grade 1
* `Grade 2` - Grade 2
* `Grade 3` - Grade 3
* `Grade 4` - Grade 4
* `Grade I` - Grade I
* `Grade II` - Grade II
* `Grade III` - Grade III
* `Grade IV` - Grade IV
* `Grade Group 1` - Grade Group 1
* `Grade Group 2` - Grade Group 2
* `Grade Group 3` - Grade Group 3
* `Grade Group 4` - Grade Group 4
* `Grade Group 5` - Grade Group 5| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Low grade| -|*anonymous*|High grade| -|*anonymous*|GX| -|*anonymous*|G1| -|*anonymous*|G2| -|*anonymous*|G3| -|*anonymous*|G4| -|*anonymous*|Low| -|*anonymous*|High| -|*anonymous*|Grade 1| -|*anonymous*|Grade 2| -|*anonymous*|Grade 3| -|*anonymous*|Grade 4| -|*anonymous*|Grade I| -|*anonymous*|Grade II| -|*anonymous*|Grade III| -|*anonymous*|Grade IV| -|*anonymous*|Grade Group 1| -|*anonymous*|Grade Group 2| -|*anonymous*|Grade Group 3| -|*anonymous*|Grade Group 4| -|*anonymous*|Grade Group 5| - -

TumourGradingSystemEnum

- - - - - - -```json -"FNCLCC grading system" - -``` - -* `FNCLCC grading system` - FNCLCC grading system -* `Four-tier grading system` - Four-tier grading system -* `Gleason grade group system` - Gleason grade group system -* `Grading system for GISTs` - Grading system for GISTs -* `Grading system for GNETs` - Grading system for GNETs -* `IASLC grading system` - IASLC grading system -* `ISUP grading system` - ISUP grading system -* `Nottingham grading system` - Nottingham grading system -* `Nuclear grading system for DCIS` - Nuclear grading system for DCIS -* `Scarff-Bloom-Richardson grading system` - Scarff-Bloom-Richardson grading system -* `Three-tier grading system` - Three-tier grading system -* `Two-tier grading system` - Two-tier grading system -* `WHO grading system for CNS tumours` - WHO grading system for CNS tumours - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `FNCLCC grading system` - FNCLCC grading system
* `Four-tier grading system` - Four-tier grading system
* `Gleason grade group system` - Gleason grade group system
* `Grading system for GISTs` - Grading system for GISTs
* `Grading system for GNETs` - Grading system for GNETs
* `IASLC grading system` - IASLC grading system
* `ISUP grading system` - ISUP grading system
* `Nottingham grading system` - Nottingham grading system
* `Nuclear grading system for DCIS` - Nuclear grading system for DCIS
* `Scarff-Bloom-Richardson grading system` - Scarff-Bloom-Richardson grading system
* `Three-tier grading system` - Three-tier grading system
* `Two-tier grading system` - Two-tier grading system
* `WHO grading system for CNS tumours` - WHO grading system for CNS tumours| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|FNCLCC grading system| -|*anonymous*|Four-tier grading system| -|*anonymous*|Gleason grade group system| -|*anonymous*|Grading system for GISTs| -|*anonymous*|Grading system for GNETs| -|*anonymous*|IASLC grading system| -|*anonymous*|ISUP grading system| -|*anonymous*|Nottingham grading system| -|*anonymous*|Nuclear grading system for DCIS| -|*anonymous*|Scarff-Bloom-Richardson grading system| -|*anonymous*|Three-tier grading system| -|*anonymous*|Two-tier grading system| -|*anonymous*|WHO grading system for CNS tumours| - -

TumourNormalDesignationEnum

- - - - - - -```json -"Normal" - -``` - -* `Normal` - Normal -* `Tumour` - Tumour - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Normal` - Normal
* `Tumour` - Tumour| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Normal| -|*anonymous*|Tumour| - -

moh_overview_cancer_type_count_response

- - - - - - -```json -{ - "cancer_type_count": 0 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|cancer_type_count|integer|true|none|none| - -

moh_overview_cohort_count_response

- - - - - - -```json -{ - "cohort_count": 0 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|cohort_count|integer|true|none|none| - -

moh_overview_diagnosis_age_count_response

- - - - - - -```json -{ - "age_range_count": 0 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|age_range_count|integer|true|none|none| - -

moh_overview_gender_count_response

- - - - - - -```json -{ - "gender_count": 0 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|gender_count|integer|true|none|none| - -

moh_overview_individual_count_response

- - - - - - -```json -{ - "individual_count": 0 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|individual_count|integer|true|none|none| - -

moh_overview_patient_per_cohort_response

- - - - - - -```json -{ - "patients_per_cohort_count": 0 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|patients_per_cohort_count|integer|true|none|none| - -

moh_overview_treatment_type_count_response

- - - - - - -```json -{ - "treatment_type_count": 0 -} - -``` - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|treatment_type_count|integer|true|none|none| - -

uBooleanEnum

- - - - - - -```json -"Yes" - -``` - -* `Yes` - Yes -* `No` - No -* `Unknown` - Unknown - -### Properties - -|Name|Type|Required|Restrictions|Description| -|---|---|---|---|---| -|*anonymous*|string|false|none|* `Yes` - Yes
* `No` - No
* `Unknown` - Unknown| - -#### Enumerated Values - -|Property|Value| -|---|---| -|*anonymous*|Yes| -|*anonymous*|No| -|*anonymous*|Unknown| - diff --git a/chord_metadata_service/mohpackets/docs/schema.json b/chord_metadata_service/mohpackets/docs/schema.json new file mode 100644 index 000000000..cb3783edd --- /dev/null +++ b/chord_metadata_service/mohpackets/docs/schema.json @@ -0,0 +1,14762 @@ +{ + "openapi": "3.1.0", + "info": { + "title": "MoH Service API", + "version": "3.0.0", + "description": "This is the RESTful API for the MoH Service. Based on https://raw.githubusercontent.com/CanDIG/katsu/29caaa0842abd9b6b422f77ad9362c61fabb8e13/chord_metadata_service/mohpackets/docs/schema.json" + }, + "paths": { + "/v2/service-info": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_core_service_info", + "summary": "Service Info", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/v2/ingest/program/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_program", + "summary": "Create Program", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProgramModelSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/donor/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_donor", + "summary": "Create Donor", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DonorIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/biomarker/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_biomarker", + "summary": "Create Biomarker", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BiomarkerIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/chemotherapy/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_chemotherapy", + "summary": "Create Chemotherapy", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChemotherapyIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/comorbidity/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_comorbidity", + "summary": "Create Comorbidity", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComorbidityIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/exposure/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_exposure", + "summary": "Create Exposure", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExposureIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/follow_up/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_follow_up", + "summary": "Create Follow Up", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FollowUpIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/hormone_therapy/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_hormone_therapy", + "summary": "Create Hormone Therapy", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HormoneTherapyIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/immunotherapy/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_immunotherapy", + "summary": "Create Immunotherapy", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImmunotherapyIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/primary_diagnosis/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_primary_diagnosis", + "summary": "Create Primary Diagnosis", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrimaryDiagnosisIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/radiation/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_radiation", + "summary": "Create Radiation", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RadiationIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/sample_registration/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_sample_registration", + "summary": "Create Sample Registration", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SampleRegistrationIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/specimen/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_specimen", + "summary": "Create Specimen", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SpecimenIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/surgery/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_surgery", + "summary": "Create Surgery", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SurgeryIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/ingest/treatment/": { + "post": { + "operationId": "chord_metadata_service_mohpackets_apis_ingestion_create_treatment", + "summary": "Create Treatment", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ingest" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TreatmentIngestSchema" + } + } + }, + "required": true + }, + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/program/{program_id}/": { + "delete": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_delete_program", + "summary": "Delete Program", + "parameters": [ + { + "in": "path", + "name": "program_id", + "schema": { + "title": "Program Id", + "type": "string" + }, + "required": true + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "type": "string" + }, + "title": "Response", + "type": "object" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/donor_with_clinical_data/program/{program_id}/donor/{donor_id}": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_get_donor_with_clinical_data", + "summary": "Get Donor With Clinical Data", + "parameters": [ + { + "in": "path", + "name": "program_id", + "schema": { + "title": "Program Id", + "type": "string" + }, + "required": true + }, + { + "in": "path", + "name": "donor_id", + "schema": { + "title": "Donor Id", + "type": "string" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DonorWithClinicalDataSchema" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "type": "string" + }, + "title": "Response", + "type": "object" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/programs/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_programs", + "summary": "List Programs", + "parameters": [ + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedProgramModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/donors/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_donors", + "summary": "List Donors", + "parameters": [ + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "gender", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "q": "gender__icontains", + "title": "Gender" + }, + "required": false + }, + { + "in": "query", + "name": "sex_at_birth", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Sex At Birth" + }, + "required": false + }, + { + "in": "query", + "name": "is_deceased", + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Is Deceased" + }, + "required": false + }, + { + "in": "query", + "name": "lost_to_followup_after_clinical_event_identifier", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lost To Followup After Clinical Event Identifier" + }, + "required": false + }, + { + "in": "query", + "name": "lost_to_followup_reason", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lost To Followup Reason" + }, + "required": false + }, + { + "in": "query", + "name": "date_alive_after_lost_to_followup", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Alive After Lost To Followup" + }, + "required": false + }, + { + "in": "query", + "name": "cause_of_death", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Cause Of Death" + }, + "required": false + }, + { + "in": "query", + "name": "date_of_birth", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Birth" + }, + "required": false + }, + { + "in": "query", + "name": "date_of_death", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Death" + }, + "required": false + }, + { + "in": "query", + "name": "primary_site", + "schema": { + "items": { + "type": "string" + }, + "q": "primary_site__overlap", + "title": "Primary Site", + "type": "array" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedDonorModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/primary_diagnoses/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_primary_diagnoses", + "summary": "List Primary Diagnoses", + "parameters": [ + { + "in": "query", + "name": "submitter_primary_diagnosis_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "required": false + }, + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "date_of_diagnosis", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Diagnosis" + }, + "required": false + }, + { + "in": "query", + "name": "cancer_type_code", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Cancer Type Code" + }, + "required": false + }, + { + "in": "query", + "name": "basis_of_diagnosis", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Basis Of Diagnosis" + }, + "required": false + }, + { + "in": "query", + "name": "laterality", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Laterality" + }, + "required": false + }, + { + "in": "query", + "name": "lymph_nodes_examined_status", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lymph Nodes Examined Status" + }, + "required": false + }, + { + "in": "query", + "name": "lymph_nodes_examined_method", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lymph Nodes Examined Method" + }, + "required": false + }, + { + "in": "query", + "name": "number_lymph_nodes_positive", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Number Lymph Nodes Positive" + }, + "required": false + }, + { + "in": "query", + "name": "clinical_tumour_staging_system", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical Tumour Staging System" + }, + "required": false + }, + { + "in": "query", + "name": "clinical_t_category", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical T Category" + }, + "required": false + }, + { + "in": "query", + "name": "clinical_n_category", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical N Category" + }, + "required": false + }, + { + "in": "query", + "name": "clinical_m_category", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical M Category" + }, + "required": false + }, + { + "in": "query", + "name": "clinical_stage_group", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical Stage Group" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedPrimaryDiagnosisModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/biomarkers/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_biomarkers", + "summary": "List Biomarkers", + "parameters": [ + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_specimen_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_primary_diagnosis_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_treatment_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_follow_up_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Follow Up Id" + }, + "required": false + }, + { + "in": "query", + "name": "test_date", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Test Date" + }, + "required": false + }, + { + "in": "query", + "name": "psa_level", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Psa Level" + }, + "required": false + }, + { + "in": "query", + "name": "ca125", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Ca125" + }, + "required": false + }, + { + "in": "query", + "name": "cea", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Cea" + }, + "required": false + }, + { + "in": "query", + "name": "er_status", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Er Status" + }, + "required": false + }, + { + "in": "query", + "name": "er_percent_positive", + "schema": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Er Percent Positive" + }, + "required": false + }, + { + "in": "query", + "name": "pr_status", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pr Status" + }, + "required": false + }, + { + "in": "query", + "name": "pr_percent_positive", + "schema": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Pr Percent Positive" + }, + "required": false + }, + { + "in": "query", + "name": "her2_ihc_status", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Her2 Ihc Status" + }, + "required": false + }, + { + "in": "query", + "name": "her2_ish_status", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Her2 Ish Status" + }, + "required": false + }, + { + "in": "query", + "name": "hpv_ihc_status", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hpv Ihc Status" + }, + "required": false + }, + { + "in": "query", + "name": "hpv_pcr_status", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hpv Pcr Status" + }, + "required": false + }, + { + "in": "query", + "name": "hpv_strain", + "schema": { + "items": { + "type": "string" + }, + "q": "hpv_strain__overlap", + "title": "Hpv Strain", + "type": "array" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedBiomarkerModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/chemotherapies/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_chemotherapies", + "summary": "List Chemotherapies", + "parameters": [ + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_treatment_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "required": false + }, + { + "in": "query", + "name": "drug_reference_database", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Database" + }, + "required": false + }, + { + "in": "query", + "name": "drug_name", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "required": false + }, + { + "in": "query", + "name": "drug_reference_identifier", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "required": false + }, + { + "in": "query", + "name": "chemotherapy_drug_dose_units", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Chemotherapy Drug Dose Units" + }, + "required": false + }, + { + "in": "query", + "name": "prescribed_cumulative_drug_dose", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "required": false + }, + { + "in": "query", + "name": "actual_cumulative_drug_dose", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedChemotherapyModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/comorbidities/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_comorbidities", + "summary": "List Comorbidities", + "parameters": [ + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "prior_malignancy", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Prior Malignancy" + }, + "required": false + }, + { + "in": "query", + "name": "laterality_of_prior_malignancy", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Laterality Of Prior Malignancy" + }, + "required": false + }, + { + "in": "query", + "name": "age_at_comorbidity_diagnosis", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Age At Comorbidity Diagnosis" + }, + "required": false + }, + { + "in": "query", + "name": "comorbidity_type_code", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Type Code" + }, + "required": false + }, + { + "in": "query", + "name": "comorbidity_treatment_status", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Treatment Status" + }, + "required": false + }, + { + "in": "query", + "name": "comorbidity_treatment", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Treatment" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedComorbidityModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/exposures/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_exposures", + "summary": "List Exposures", + "parameters": [ + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "tobacco_smoking_status", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tobacco Smoking Status" + }, + "required": false + }, + { + "in": "query", + "name": "tobacco_type", + "schema": { + "items": { + "type": "string" + }, + "q": "tobacco_type__overlap", + "title": "Tobacco Type", + "type": "array" + }, + "required": false + }, + { + "in": "query", + "name": "pack_years_smoked", + "schema": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Pack Years Smoked" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedExposureModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/follow_ups/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_follow_ups", + "summary": "List Follow Ups", + "parameters": [ + { + "in": "query", + "name": "submitter_follow_up_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Follow Up Id" + }, + "required": false + }, + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_primary_diagnosis_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_treatment_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "required": false + }, + { + "in": "query", + "name": "date_of_followup", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Followup" + }, + "required": false + }, + { + "in": "query", + "name": "disease_status_at_followup", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Disease Status At Followup" + }, + "required": false + }, + { + "in": "query", + "name": "relapse_type", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Relapse Type" + }, + "required": false + }, + { + "in": "query", + "name": "date_of_relapse", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Relapse" + }, + "required": false + }, + { + "in": "query", + "name": "method_of_progression_status", + "schema": { + "items": { + "type": "string" + }, + "q": "method_of_progression_status__overlap", + "title": "Method Of Progression Status", + "type": "array" + }, + "required": false + }, + { + "in": "query", + "name": "anatomic_site_progression_or_recurrence", + "schema": { + "items": { + "type": "string" + }, + "q": "anatomic_site_progression_or_recurrence__overlap", + "title": "Anatomic Site Progression Or Recurrence", + "type": "array" + }, + "required": false + }, + { + "in": "query", + "name": "recurrence_tumour_staging_system", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence Tumour Staging System" + }, + "required": false + }, + { + "in": "query", + "name": "recurrence_t_category", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence T Category" + }, + "required": false + }, + { + "in": "query", + "name": "recurrence_n_category", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence N Category" + }, + "required": false + }, + { + "in": "query", + "name": "recurrence_m_category", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence M Category" + }, + "required": false + }, + { + "in": "query", + "name": "recurrence_stage_group", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence Stage Group" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedFollowUpModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/hormone_therapies/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_hormone_therapies", + "summary": "List Hormone Therapies", + "parameters": [ + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_treatment_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "required": false + }, + { + "in": "query", + "name": "drug_reference_database", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Database" + }, + "required": false + }, + { + "in": "query", + "name": "drug_name", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "required": false + }, + { + "in": "query", + "name": "drug_reference_identifier", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "required": false + }, + { + "in": "query", + "name": "hormone_drug_dose_units", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hormone Drug Dose Units" + }, + "required": false + }, + { + "in": "query", + "name": "prescribed_cumulative_drug_dose", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "required": false + }, + { + "in": "query", + "name": "actual_cumulative_drug_dose", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedHormoneTherapyModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/immunotherapies/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_immunotherapies", + "summary": "List Immunotherapies", + "parameters": [ + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_treatment_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "required": false + }, + { + "in": "query", + "name": "drug_reference_database", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Database" + }, + "required": false + }, + { + "in": "query", + "name": "immunotherapy_type", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Immunotherapy Type" + }, + "required": false + }, + { + "in": "query", + "name": "drug_name", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "required": false + }, + { + "in": "query", + "name": "drug_reference_identifier", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "required": false + }, + { + "in": "query", + "name": "immunotherapy_drug_dose_units", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Immunotherapy Drug Dose Units" + }, + "required": false + }, + { + "in": "query", + "name": "prescribed_cumulative_drug_dose", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "required": false + }, + { + "in": "query", + "name": "actual_cumulative_drug_dose", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedImmunotherapyModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/radiations/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_radiations", + "summary": "List Radiations", + "parameters": [ + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_treatment_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "required": false + }, + { + "in": "query", + "name": "radiation_therapy_modality", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Modality" + }, + "required": false + }, + { + "in": "query", + "name": "radiation_therapy_type", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Type" + }, + "required": false + }, + { + "in": "query", + "name": "radiation_therapy_fractions", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Fractions" + }, + "required": false + }, + { + "in": "query", + "name": "radiation_therapy_dosage", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Dosage" + }, + "required": false + }, + { + "in": "query", + "name": "anatomical_site_irradiated", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Anatomical Site Irradiated" + }, + "required": false + }, + { + "in": "query", + "name": "radiation_boost", + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Radiation Boost" + }, + "required": false + }, + { + "in": "query", + "name": "reference_radiation_treatment_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reference Radiation Treatment Id" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedRadiationModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/sample_registrations/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_sample_registrations", + "summary": "List Sample Registrations", + "parameters": [ + { + "in": "query", + "name": "submitter_sample_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Sample Id" + }, + "required": false + }, + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_specimen_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "required": false + }, + { + "in": "query", + "name": "specimen_tissue_source", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Tissue Source" + }, + "required": false + }, + { + "in": "query", + "name": "tumour_normal_designation", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Normal Designation" + }, + "required": false + }, + { + "in": "query", + "name": "specimen_type", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Type" + }, + "required": false + }, + { + "in": "query", + "name": "sample_type", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Sample Type" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedSampleRegistrationModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/specimens/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_specimens", + "summary": "List Specimens", + "parameters": [ + { + "in": "query", + "name": "submitter_specimen_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "required": false + }, + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_primary_diagnosis_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "required": false + }, + { + "in": "query", + "name": "pathological_tumour_staging_system", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological Tumour Staging System" + }, + "required": false + }, + { + "in": "query", + "name": "pathological_t_category", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological T Category" + }, + "required": false + }, + { + "in": "query", + "name": "pathological_n_category", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological N Category" + }, + "required": false + }, + { + "in": "query", + "name": "pathological_m_category", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological M Category" + }, + "required": false + }, + { + "in": "query", + "name": "pathological_stage_group", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological Stage Group" + }, + "required": false + }, + { + "in": "query", + "name": "specimen_collection_date", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Collection Date" + }, + "required": false + }, + { + "in": "query", + "name": "specimen_storage", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Storage" + }, + "required": false + }, + { + "in": "query", + "name": "specimen_processing", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Processing" + }, + "required": false + }, + { + "in": "query", + "name": "tumour_histological_type", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Histological Type" + }, + "required": false + }, + { + "in": "query", + "name": "specimen_anatomic_location", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Anatomic Location" + }, + "required": false + }, + { + "in": "query", + "name": "specimen_laterality", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Laterality" + }, + "required": false + }, + { + "in": "query", + "name": "reference_pathology_confirmed_diagnosis", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reference Pathology Confirmed Diagnosis" + }, + "required": false + }, + { + "in": "query", + "name": "reference_pathology_confirmed_tumour_presence", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reference Pathology Confirmed Tumour Presence" + }, + "required": false + }, + { + "in": "query", + "name": "tumour_grading_system", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Grading System" + }, + "required": false + }, + { + "in": "query", + "name": "tumour_grade", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Grade" + }, + "required": false + }, + { + "in": "query", + "name": "percent_tumour_cells_range", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Percent Tumour Cells Range" + }, + "required": false + }, + { + "in": "query", + "name": "percent_tumour_cells_measurement_method", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Percent Tumour Cells Measurement Method" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedSpecimenModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/surgeries/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_surgeries", + "summary": "List Surgeries", + "parameters": [ + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_treatment_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_specimen_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "required": false + }, + { + "in": "query", + "name": "surgery_type", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Surgery Type" + }, + "required": false + }, + { + "in": "query", + "name": "surgery_site", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Surgery Site" + }, + "required": false + }, + { + "in": "query", + "name": "surgery_location", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Surgery Location" + }, + "required": false + }, + { + "in": "query", + "name": "tumour_length", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Tumour Length" + }, + "required": false + }, + { + "in": "query", + "name": "tumour_width", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Tumour Width" + }, + "required": false + }, + { + "in": "query", + "name": "greatest_dimension_tumour", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Greatest Dimension Tumour" + }, + "required": false + }, + { + "in": "query", + "name": "tumour_focality", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Focality" + }, + "required": false + }, + { + "in": "query", + "name": "residual_tumour_classification", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Residual Tumour Classification" + }, + "required": false + }, + { + "in": "query", + "name": "margin_types_involved", + "schema": { + "items": { + "type": "string" + }, + "q": "margin_types_involved__overlap", + "title": "Margin Types Involved", + "type": "array" + }, + "required": false + }, + { + "in": "query", + "name": "margin_types_not_involved", + "schema": { + "items": { + "type": "string" + }, + "q": "margin_types_not_involved__overlap", + "title": "Margin Types Not Involved", + "type": "array" + }, + "required": false + }, + { + "in": "query", + "name": "margin_types_not_assessed", + "schema": { + "items": { + "type": "string" + }, + "q": "margin_types_not_assessed__overlap", + "title": "Margin Types Not Assessed", + "type": "array" + }, + "required": false + }, + { + "in": "query", + "name": "lymphovascular_invasion", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lymphovascular Invasion" + }, + "required": false + }, + { + "in": "query", + "name": "perineural_invasion", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Perineural Invasion" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedSurgeryModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/authorized/treatments/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_clinical_data_list_treatments", + "summary": "List Treatments", + "parameters": [ + { + "in": "query", + "name": "submitter_treatment_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "required": false + }, + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "submitter_primary_diagnosis_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "required": false + }, + { + "in": "query", + "name": "treatment_type", + "schema": { + "items": { + "type": "string" + }, + "q": "treatment_type__overlap", + "title": "Treatment Type", + "type": "array" + }, + "required": false + }, + { + "in": "query", + "name": "is_primary_treatment", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Is Primary Treatment" + }, + "required": false + }, + { + "in": "query", + "name": "line_of_treatment", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Line Of Treatment" + }, + "required": false + }, + { + "in": "query", + "name": "treatment_start_date", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Start Date" + }, + "required": false + }, + { + "in": "query", + "name": "treatment_end_date", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment End Date" + }, + "required": false + }, + { + "in": "query", + "name": "treatment_setting", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Setting" + }, + "required": false + }, + { + "in": "query", + "name": "treatment_intent", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Intent" + }, + "required": false + }, + { + "in": "query", + "name": "days_per_cycle", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Days Per Cycle" + }, + "required": false + }, + { + "in": "query", + "name": "number_of_cycles", + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Number Of Cycles" + }, + "required": false + }, + { + "in": "query", + "name": "response_to_treatment_criteria_method", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Response To Treatment Criteria Method" + }, + "required": false + }, + { + "in": "query", + "name": "response_to_treatment", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Response To Treatment" + }, + "required": false + }, + { + "in": "query", + "name": "status_of_treatment", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Status Of Treatment" + }, + "required": false + }, + { + "in": "query", + "name": "page", + "schema": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "page_size", + "schema": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedTreatmentModelSchema" + } + } + } + } + }, + "tags": [ + "authorized" + ], + "security": [ + { + "LocalAuth": [] + } + ] + } + }, + "/v2/discovery/programs/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_programs", + "summary": "Discover Programs", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProgramDiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/donors/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_donors", + "summary": "Discover Donors", + "parameters": [ + { + "in": "query", + "name": "submitter_donor_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "required": false + }, + { + "in": "query", + "name": "program_id", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "required": false + }, + { + "in": "query", + "name": "gender", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "q": "gender__icontains", + "title": "Gender" + }, + "required": false + }, + { + "in": "query", + "name": "sex_at_birth", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Sex At Birth" + }, + "required": false + }, + { + "in": "query", + "name": "is_deceased", + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Is Deceased" + }, + "required": false + }, + { + "in": "query", + "name": "lost_to_followup_after_clinical_event_identifier", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lost To Followup After Clinical Event Identifier" + }, + "required": false + }, + { + "in": "query", + "name": "lost_to_followup_reason", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lost To Followup Reason" + }, + "required": false + }, + { + "in": "query", + "name": "date_alive_after_lost_to_followup", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Alive After Lost To Followup" + }, + "required": false + }, + { + "in": "query", + "name": "cause_of_death", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Cause Of Death" + }, + "required": false + }, + { + "in": "query", + "name": "date_of_birth", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Birth" + }, + "required": false + }, + { + "in": "query", + "name": "date_of_death", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Death" + }, + "required": false + }, + { + "in": "query", + "name": "primary_site", + "schema": { + "items": { + "type": "string" + }, + "q": "primary_site__overlap", + "title": "Primary Site", + "type": "array" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/specimen/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_specimens", + "summary": "Discover Specimens", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/sample_registrations/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_sample_registrations", + "summary": "Discover Sample Registrations", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/primary_diagnoses/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_primary_diagnoses", + "summary": "Discover Primary Diagnoses", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/treatments/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_treatments", + "summary": "Discover Treatments", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/chemotherapies/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_chemotherapies", + "summary": "Discover Chemotherapies", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/hormone_therapies/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_hormone_therapies", + "summary": "Discover Hormone Therapies", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/radiations/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_radiations", + "summary": "Discover Radiations", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/immunotherapies/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_immunotherapies", + "summary": "Discover Immunotherapies", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/surgeries/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_surgeries", + "summary": "Discover Surgeries", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/follow_ups/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_follow_ups", + "summary": "Discover Follow Ups", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/biomarkers/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_biomarkers", + "summary": "Discover Biomarkers", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/comorbidities/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_comorbidities", + "summary": "Discover Comorbidities", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/exposures/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_exposures", + "summary": "Discover Exposures", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoverySchema" + } + } + } + } + }, + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/sidebar_list/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_sidebar_list", + "summary": "Discover Sidebar List", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "title": "Response", + "type": "object" + } + } + } + } + }, + "description": "Retrieve the list of available values for all fields (including for\ndatasets that the user is not authorized to view)", + "tags": [ + "discovery" + ] + } + }, + "/v2/discovery/overview/cohort_count/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_cohort_count", + "summary": "Discover Cohort Count", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "type": "integer" + }, + "title": "Response", + "type": "object" + } + } + } + } + }, + "description": "Return the number of cohorts in the database.", + "tags": [ + "overview" + ] + } + }, + "/v2/discovery/overview/patients_per_cohort/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_patients_per_cohort", + "summary": "Discover Patients Per Cohort", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "type": "integer" + }, + "title": "Response", + "type": "object" + } + } + } + } + }, + "description": "Return the number of patients per cohort in the database.", + "tags": [ + "overview" + ] + } + }, + "/v2/discovery/overview/individual_count/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_individual_count", + "summary": "Discover Individual Count", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "type": "integer" + }, + "title": "Response", + "type": "object" + } + } + } + } + }, + "description": "Return the number of individuals in the database.", + "tags": [ + "overview" + ] + } + }, + "/v2/discovery/overview/gender_count/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_gender_count", + "summary": "Discover Gender Count", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "type": "integer" + }, + "title": "Response", + "type": "object" + } + } + } + } + }, + "description": "Return the count for every gender in the database.", + "tags": [ + "overview" + ] + } + }, + "/v2/discovery/overview/cancer_type_count/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_cancer_type_count", + "summary": "Discover Cancer Type Count", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "type": "integer" + }, + "title": "Response", + "type": "object" + } + } + } + } + }, + "description": "Return the count for every cancer type in the database.", + "tags": [ + "overview" + ] + } + }, + "/v2/discovery/overview/treatment_type_count/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_treatment_type_count", + "summary": "Discover Treatment Type Count", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "type": "integer" + }, + "title": "Response", + "type": "object" + } + } + } + } + }, + "description": "Return the count for every treatment type in the database.", + "tags": [ + "overview" + ] + } + }, + "/v2/discovery/overview/diagnosis_age_count/": { + "get": { + "operationId": "chord_metadata_service_mohpackets_apis_discovery_discover_diagnosis_age_count", + "summary": "Discover Diagnosis Age Count", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "type": "integer" + }, + "title": "Response", + "type": "object" + } + } + } + } + }, + "description": "Return the count for age of diagnosis in the database.\nIf there are multiple date_of_diagnosis, get the earliest", + "tags": [ + "overview" + ] + } + } + }, + "components": { + "schemas": { + "ProgramModelSchema": { + "properties": { + "program_id": { + "maxLength": 64, + "pattern": "^[A-Za-z0-9\\-\\._]{1,64}", + "title": "Program Id", + "type": "string" + }, + "metadata": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Metadata" + }, + "created": { + "format": "date-time", + "title": "Created", + "type": "string" + }, + "updated": { + "format": "date-time", + "title": "Updated", + "type": "string" + } + }, + "required": [ + "program_id" + ], + "title": "ProgramModelSchema", + "type": "object" + }, + "DonorIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "gender": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Gender" + }, + "sex_at_birth": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Sex At Birth" + }, + "is_deceased": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Is Deceased" + }, + "lost_to_followup_after_clinical_event_identifier": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lost To Followup After Clinical Event Identifier" + }, + "lost_to_followup_reason": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lost To Followup Reason" + }, + "date_alive_after_lost_to_followup": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Alive After Lost To Followup" + }, + "cause_of_death": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Cause Of Death" + }, + "date_of_birth": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Birth" + }, + "date_of_death": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Death" + }, + "primary_site": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Primary Site" + } + }, + "required": [ + "program_id", + "submitter_donor_id" + ], + "title": "DonorIngestSchema", + "type": "object" + }, + "BiomarkerIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_specimen_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "submitter_primary_diagnosis_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "submitter_treatment_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "submitter_follow_up_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Follow Up Id" + }, + "test_date": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Test Date" + }, + "psa_level": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Psa Level" + }, + "ca125": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Ca125" + }, + "cea": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Cea" + }, + "er_status": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Er Status" + }, + "er_percent_positive": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Er Percent Positive" + }, + "pr_status": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pr Status" + }, + "pr_percent_positive": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Pr Percent Positive" + }, + "her2_ihc_status": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Her2 Ihc Status" + }, + "her2_ish_status": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Her2 Ish Status" + }, + "hpv_ihc_status": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hpv Ihc Status" + }, + "hpv_pcr_status": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hpv Pcr Status" + }, + "hpv_strain": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Hpv Strain" + } + }, + "required": [ + "program_id", + "submitter_donor_id" + ], + "title": "BiomarkerIngestSchema", + "type": "object" + }, + "ChemotherapyIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_treatment_id": { + "maxLength": 64, + "title": "Submitter Treatment Id", + "type": "string" + }, + "drug_reference_database": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Database" + }, + "drug_name": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "drug_reference_identifier": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "chemotherapy_drug_dose_units": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Chemotherapy Drug Dose Units" + }, + "prescribed_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "actual_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + } + }, + "required": [ + "program_id", + "submitter_donor_id", + "submitter_treatment_id" + ], + "title": "ChemotherapyIngestSchema", + "type": "object" + }, + "ComorbidityIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "prior_malignancy": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Prior Malignancy" + }, + "laterality_of_prior_malignancy": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Laterality Of Prior Malignancy" + }, + "age_at_comorbidity_diagnosis": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Age At Comorbidity Diagnosis" + }, + "comorbidity_type_code": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Type Code" + }, + "comorbidity_treatment_status": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Treatment Status" + }, + "comorbidity_treatment": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Treatment" + } + }, + "required": [ + "program_id", + "submitter_donor_id" + ], + "title": "ComorbidityIngestSchema", + "type": "object" + }, + "ExposureIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "tobacco_smoking_status": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tobacco Smoking Status" + }, + "tobacco_type": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Tobacco Type" + }, + "pack_years_smoked": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Pack Years Smoked" + } + }, + "required": [ + "program_id", + "submitter_donor_id" + ], + "title": "ExposureIngestSchema", + "type": "object" + }, + "FollowUpIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "treatment_uuid_id": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Uuid" + }, + "primary_diagnosis_uuid_id": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Primary Diagnosis Uuid" + }, + "submitter_follow_up_id": { + "maxLength": 64, + "title": "Submitter Follow Up Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_primary_diagnosis_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "submitter_treatment_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "date_of_followup": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Followup" + }, + "disease_status_at_followup": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Disease Status At Followup" + }, + "relapse_type": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Relapse Type" + }, + "date_of_relapse": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Relapse" + }, + "method_of_progression_status": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Method Of Progression Status" + }, + "anatomic_site_progression_or_recurrence": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Anatomic Site Progression Or Recurrence" + }, + "recurrence_tumour_staging_system": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence Tumour Staging System" + }, + "recurrence_t_category": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence T Category" + }, + "recurrence_n_category": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence N Category" + }, + "recurrence_m_category": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence M Category" + }, + "recurrence_stage_group": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence Stage Group" + } + }, + "required": [ + "program_id", + "submitter_follow_up_id", + "submitter_donor_id" + ], + "title": "FollowUpIngestSchema", + "type": "object" + }, + "HormoneTherapyIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_treatment_id": { + "maxLength": 64, + "title": "Submitter Treatment Id", + "type": "string" + }, + "drug_reference_database": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Database" + }, + "drug_name": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "drug_reference_identifier": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "hormone_drug_dose_units": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hormone Drug Dose Units" + }, + "prescribed_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "actual_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + } + }, + "required": [ + "program_id", + "submitter_donor_id", + "submitter_treatment_id" + ], + "title": "HormoneTherapyIngestSchema", + "type": "object" + }, + "ImmunotherapyIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_treatment_id": { + "maxLength": 64, + "title": "Submitter Treatment Id", + "type": "string" + }, + "drug_reference_database": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Database" + }, + "immunotherapy_type": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Immunotherapy Type" + }, + "drug_name": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "drug_reference_identifier": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "immunotherapy_drug_dose_units": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Immunotherapy Drug Dose Units" + }, + "prescribed_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "actual_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + } + }, + "required": [ + "program_id", + "submitter_donor_id", + "submitter_treatment_id" + ], + "title": "ImmunotherapyIngestSchema", + "type": "object" + }, + "PrimaryDiagnosisIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "submitter_primary_diagnosis_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "date_of_diagnosis": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Diagnosis" + }, + "cancer_type_code": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Cancer Type Code" + }, + "basis_of_diagnosis": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Basis Of Diagnosis" + }, + "laterality": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Laterality" + }, + "lymph_nodes_examined_status": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lymph Nodes Examined Status" + }, + "lymph_nodes_examined_method": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lymph Nodes Examined Method" + }, + "number_lymph_nodes_positive": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Number Lymph Nodes Positive" + }, + "clinical_tumour_staging_system": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical Tumour Staging System" + }, + "clinical_t_category": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical T Category" + }, + "clinical_n_category": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical N Category" + }, + "clinical_m_category": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical M Category" + }, + "clinical_stage_group": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical Stage Group" + } + }, + "required": [ + "program_id" + ], + "title": "PrimaryDiagnosisIngestSchema", + "type": "object" + }, + "RadiationIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_treatment_id": { + "maxLength": 64, + "title": "Submitter Treatment Id", + "type": "string" + }, + "radiation_therapy_modality": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Modality" + }, + "radiation_therapy_type": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Type" + }, + "radiation_therapy_fractions": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Fractions" + }, + "radiation_therapy_dosage": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Dosage" + }, + "anatomical_site_irradiated": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Anatomical Site Irradiated" + }, + "radiation_boost": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Radiation Boost" + }, + "reference_radiation_treatment_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reference Radiation Treatment Id" + } + }, + "required": [ + "program_id", + "submitter_donor_id", + "submitter_treatment_id" + ], + "title": "RadiationIngestSchema", + "type": "object" + }, + "SampleRegistrationIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "submitter_sample_id": { + "maxLength": 64, + "title": "Submitter Sample Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_specimen_id": { + "maxLength": 64, + "title": "Submitter Specimen Id", + "type": "string" + }, + "specimen_tissue_source": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Tissue Source" + }, + "tumour_normal_designation": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Normal Designation" + }, + "specimen_type": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Type" + }, + "sample_type": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Sample Type" + } + }, + "required": [ + "program_id", + "submitter_sample_id", + "submitter_donor_id", + "submitter_specimen_id" + ], + "title": "SampleRegistrationIngestSchema", + "type": "object" + }, + "SpecimenIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "submitter_specimen_id": { + "maxLength": 64, + "title": "Submitter Specimen Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_primary_diagnosis_id": { + "maxLength": 64, + "title": "Submitter Primary Diagnosis Id", + "type": "string" + }, + "pathological_tumour_staging_system": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological Tumour Staging System" + }, + "pathological_t_category": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological T Category" + }, + "pathological_n_category": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological N Category" + }, + "pathological_m_category": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological M Category" + }, + "pathological_stage_group": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological Stage Group" + }, + "specimen_collection_date": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Collection Date" + }, + "specimen_storage": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Storage" + }, + "specimen_processing": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Processing" + }, + "tumour_histological_type": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Histological Type" + }, + "specimen_anatomic_location": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Anatomic Location" + }, + "specimen_laterality": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Laterality" + }, + "reference_pathology_confirmed_diagnosis": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reference Pathology Confirmed Diagnosis" + }, + "reference_pathology_confirmed_tumour_presence": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reference Pathology Confirmed Tumour Presence" + }, + "tumour_grading_system": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Grading System" + }, + "tumour_grade": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Grade" + }, + "percent_tumour_cells_range": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Percent Tumour Cells Range" + }, + "percent_tumour_cells_measurement_method": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Percent Tumour Cells Measurement Method" + } + }, + "required": [ + "program_id", + "submitter_specimen_id", + "submitter_donor_id", + "submitter_primary_diagnosis_id" + ], + "title": "SpecimenIngestSchema", + "type": "object" + }, + "SurgeryIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_treatment_id": { + "maxLength": 64, + "title": "Submitter Treatment Id", + "type": "string" + }, + "submitter_specimen_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "surgery_type": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Surgery Type" + }, + "surgery_site": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Surgery Site" + }, + "surgery_location": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Surgery Location" + }, + "tumour_length": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Tumour Length" + }, + "tumour_width": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Tumour Width" + }, + "greatest_dimension_tumour": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Greatest Dimension Tumour" + }, + "tumour_focality": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Focality" + }, + "residual_tumour_classification": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Residual Tumour Classification" + }, + "margin_types_involved": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Margin Types Involved" + }, + "margin_types_not_involved": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Margin Types Not Involved" + }, + "margin_types_not_assessed": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Margin Types Not Assessed" + }, + "lymphovascular_invasion": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lymphovascular Invasion" + }, + "perineural_invasion": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Perineural Invasion" + } + }, + "required": [ + "program_id", + "submitter_donor_id", + "submitter_treatment_id" + ], + "title": "SurgeryIngestSchema", + "type": "object" + }, + "TreatmentIngestSchema": { + "properties": { + "program_id": { + "title": "Program Id", + "type": "string" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "submitter_treatment_id": { + "maxLength": 64, + "title": "Submitter Treatment Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_primary_diagnosis_id": { + "maxLength": 64, + "title": "Submitter Primary Diagnosis Id", + "type": "string" + }, + "treatment_type": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Treatment Type" + }, + "is_primary_treatment": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Is Primary Treatment" + }, + "line_of_treatment": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Line Of Treatment" + }, + "treatment_start_date": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Start Date" + }, + "treatment_end_date": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment End Date" + }, + "treatment_setting": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Setting" + }, + "treatment_intent": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Intent" + }, + "days_per_cycle": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Days Per Cycle" + }, + "number_of_cycles": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Number Of Cycles" + }, + "response_to_treatment_criteria_method": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Response To Treatment Criteria Method" + }, + "response_to_treatment": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Response To Treatment" + }, + "status_of_treatment": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Status Of Treatment" + } + }, + "required": [ + "program_id", + "submitter_treatment_id", + "submitter_donor_id", + "submitter_primary_diagnosis_id" + ], + "title": "TreatmentIngestSchema", + "type": "object" + }, + "DonorWithClinicalDataSchema": { + "properties": { + "primary_diagnoses": { + "items": { + "$ref": "#/components/schemas/NestedPrimaryDiagnosisSchema" + }, + "title": "Primary Diagnoses", + "type": "array" + }, + "followups": { + "items": { + "$ref": "#/components/schemas/NestedFollowUpSchema" + }, + "title": "Followups", + "type": "array" + }, + "biomarkers": { + "items": { + "$ref": "#/components/schemas/NestedBiomarkerSchema" + }, + "title": "Biomarkers", + "type": "array" + }, + "exposures": { + "items": { + "$ref": "#/components/schemas/NestedExposureSchema" + }, + "title": "Exposures", + "type": "array" + }, + "comorbidities": { + "items": { + "$ref": "#/components/schemas/NestedComorbiditySchema" + }, + "title": "Comorbidities", + "type": "array" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "gender": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Gender" + }, + "sex_at_birth": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Sex At Birth" + }, + "is_deceased": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Is Deceased" + }, + "lost_to_followup_after_clinical_event_identifier": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lost To Followup After Clinical Event Identifier" + }, + "lost_to_followup_reason": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lost To Followup Reason" + }, + "date_alive_after_lost_to_followup": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Alive After Lost To Followup" + }, + "cause_of_death": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Cause Of Death" + }, + "date_of_birth": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Birth" + }, + "date_of_death": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Death" + }, + "primary_site": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Primary Site" + } + }, + "required": [ + "submitter_donor_id", + "program_id" + ], + "title": "DonorWithClinicalDataSchema", + "type": "object" + }, + "NestedBiomarkerSchema": { + "properties": { + "submitter_specimen_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "submitter_primary_diagnosis_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "submitter_treatment_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "submitter_follow_up_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Follow Up Id" + }, + "test_date": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Test Date" + }, + "psa_level": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Psa Level" + }, + "ca125": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Ca125" + }, + "cea": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Cea" + }, + "er_status": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Er Status" + }, + "er_percent_positive": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Er Percent Positive" + }, + "pr_status": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pr Status" + }, + "pr_percent_positive": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Pr Percent Positive" + }, + "her2_ihc_status": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Her2 Ihc Status" + }, + "her2_ish_status": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Her2 Ish Status" + }, + "hpv_ihc_status": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hpv Ihc Status" + }, + "hpv_pcr_status": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hpv Pcr Status" + }, + "hpv_strain": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Hpv Strain" + } + }, + "title": "NestedBiomarkerSchema", + "type": "object" + }, + "NestedChemotherapySchema": { + "properties": { + "drug_reference_database": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Database" + }, + "drug_name": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "drug_reference_identifier": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "chemotherapy_drug_dose_units": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Chemotherapy Drug Dose Units" + }, + "prescribed_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "actual_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + } + }, + "title": "NestedChemotherapySchema", + "type": "object" + }, + "NestedComorbiditySchema": { + "properties": { + "prior_malignancy": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Prior Malignancy" + }, + "laterality_of_prior_malignancy": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Laterality Of Prior Malignancy" + }, + "age_at_comorbidity_diagnosis": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Age At Comorbidity Diagnosis" + }, + "comorbidity_type_code": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Type Code" + }, + "comorbidity_treatment_status": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Treatment Status" + }, + "comorbidity_treatment": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Treatment" + } + }, + "title": "NestedComorbiditySchema", + "type": "object" + }, + "NestedExposureSchema": { + "properties": { + "tobacco_smoking_status": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tobacco Smoking Status" + }, + "tobacco_type": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Tobacco Type" + }, + "pack_years_smoked": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Pack Years Smoked" + } + }, + "title": "NestedExposureSchema", + "type": "object" + }, + "NestedFollowUpSchema": { + "properties": { + "submitter_follow_up_id": { + "maxLength": 64, + "title": "Submitter Follow Up Id", + "type": "string" + }, + "date_of_followup": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Followup" + }, + "disease_status_at_followup": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Disease Status At Followup" + }, + "relapse_type": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Relapse Type" + }, + "date_of_relapse": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Relapse" + }, + "method_of_progression_status": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Method Of Progression Status" + }, + "anatomic_site_progression_or_recurrence": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Anatomic Site Progression Or Recurrence" + }, + "recurrence_tumour_staging_system": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence Tumour Staging System" + }, + "recurrence_t_category": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence T Category" + }, + "recurrence_n_category": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence N Category" + }, + "recurrence_m_category": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence M Category" + }, + "recurrence_stage_group": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence Stage Group" + } + }, + "required": [ + "submitter_follow_up_id" + ], + "title": "NestedFollowUpSchema", + "type": "object" + }, + "NestedHormoneTherapySchema": { + "properties": { + "drug_reference_database": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Database" + }, + "drug_name": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "drug_reference_identifier": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "hormone_drug_dose_units": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hormone Drug Dose Units" + }, + "prescribed_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "actual_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + } + }, + "title": "NestedHormoneTherapySchema", + "type": "object" + }, + "NestedImmunotherapySchema": { + "properties": { + "drug_reference_database": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Database" + }, + "immunotherapy_type": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Immunotherapy Type" + }, + "drug_name": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "drug_reference_identifier": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "immunotherapy_drug_dose_units": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Immunotherapy Drug Dose Units" + }, + "prescribed_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "actual_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + } + }, + "title": "NestedImmunotherapySchema", + "type": "object" + }, + "NestedPrimaryDiagnosisSchema": { + "properties": { + "specimens": { + "items": { + "$ref": "#/components/schemas/NestedSpecimenSchema" + }, + "title": "Specimens", + "type": "array" + }, + "treatments": { + "items": { + "$ref": "#/components/schemas/NestedTreatmentSchema" + }, + "title": "Treatments", + "type": "array" + }, + "followups": { + "items": { + "$ref": "#/components/schemas/NestedFollowUpSchema" + }, + "title": "Followups", + "type": "array" + }, + "submitter_primary_diagnosis_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "date_of_diagnosis": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Diagnosis" + }, + "cancer_type_code": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Cancer Type Code" + }, + "basis_of_diagnosis": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Basis Of Diagnosis" + }, + "laterality": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Laterality" + }, + "lymph_nodes_examined_status": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lymph Nodes Examined Status" + }, + "lymph_nodes_examined_method": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lymph Nodes Examined Method" + }, + "number_lymph_nodes_positive": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Number Lymph Nodes Positive" + }, + "clinical_tumour_staging_system": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical Tumour Staging System" + }, + "clinical_t_category": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical T Category" + }, + "clinical_n_category": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical N Category" + }, + "clinical_m_category": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical M Category" + }, + "clinical_stage_group": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical Stage Group" + } + }, + "title": "NestedPrimaryDiagnosisSchema", + "type": "object" + }, + "NestedRadiationSchema": { + "properties": { + "radiation_therapy_modality": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Modality" + }, + "radiation_therapy_type": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Type" + }, + "radiation_therapy_fractions": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Fractions" + }, + "radiation_therapy_dosage": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Dosage" + }, + "anatomical_site_irradiated": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Anatomical Site Irradiated" + }, + "radiation_boost": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Radiation Boost" + }, + "reference_radiation_treatment_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reference Radiation Treatment Id" + } + }, + "title": "NestedRadiationSchema", + "type": "object" + }, + "NestedSampleRegistrationSchema": { + "properties": { + "submitter_sample_id": { + "maxLength": 64, + "title": "Submitter Sample Id", + "type": "string" + }, + "specimen_tissue_source": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Tissue Source" + }, + "tumour_normal_designation": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Normal Designation" + }, + "specimen_type": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Type" + }, + "sample_type": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Sample Type" + } + }, + "required": [ + "submitter_sample_id" + ], + "title": "NestedSampleRegistrationSchema", + "type": "object" + }, + "NestedSpecimenSchema": { + "properties": { + "sample_registrations": { + "items": { + "$ref": "#/components/schemas/NestedSampleRegistrationSchema" + }, + "title": "Sample Registrations", + "type": "array" + }, + "submitter_specimen_id": { + "maxLength": 64, + "title": "Submitter Specimen Id", + "type": "string" + }, + "pathological_tumour_staging_system": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological Tumour Staging System" + }, + "pathological_t_category": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological T Category" + }, + "pathological_n_category": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological N Category" + }, + "pathological_m_category": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological M Category" + }, + "pathological_stage_group": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological Stage Group" + }, + "specimen_collection_date": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Collection Date" + }, + "specimen_storage": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Storage" + }, + "specimen_processing": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Processing" + }, + "tumour_histological_type": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Histological Type" + }, + "specimen_anatomic_location": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Anatomic Location" + }, + "specimen_laterality": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Laterality" + }, + "reference_pathology_confirmed_diagnosis": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reference Pathology Confirmed Diagnosis" + }, + "reference_pathology_confirmed_tumour_presence": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reference Pathology Confirmed Tumour Presence" + }, + "tumour_grading_system": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Grading System" + }, + "tumour_grade": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Grade" + }, + "percent_tumour_cells_range": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Percent Tumour Cells Range" + }, + "percent_tumour_cells_measurement_method": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Percent Tumour Cells Measurement Method" + } + }, + "required": [ + "submitter_specimen_id" + ], + "title": "NestedSpecimenSchema", + "type": "object" + }, + "NestedSurgerySchema": { + "properties": { + "submitter_specimen_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "surgery_type": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Surgery Type" + }, + "surgery_site": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Surgery Site" + }, + "surgery_location": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Surgery Location" + }, + "tumour_length": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Tumour Length" + }, + "tumour_width": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Tumour Width" + }, + "greatest_dimension_tumour": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Greatest Dimension Tumour" + }, + "tumour_focality": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Focality" + }, + "residual_tumour_classification": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Residual Tumour Classification" + }, + "margin_types_involved": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Margin Types Involved" + }, + "margin_types_not_involved": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Margin Types Not Involved" + }, + "margin_types_not_assessed": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Margin Types Not Assessed" + }, + "lymphovascular_invasion": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lymphovascular Invasion" + }, + "perineural_invasion": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Perineural Invasion" + } + }, + "title": "NestedSurgerySchema", + "type": "object" + }, + "NestedTreatmentSchema": { + "properties": { + "chemotherapies": { + "items": { + "$ref": "#/components/schemas/NestedChemotherapySchema" + }, + "title": "Chemotherapies", + "type": "array" + }, + "immunotherapies": { + "items": { + "$ref": "#/components/schemas/NestedImmunotherapySchema" + }, + "title": "Immunotherapies", + "type": "array" + }, + "hormone_therapies": { + "items": { + "$ref": "#/components/schemas/NestedHormoneTherapySchema" + }, + "title": "Hormone Therapies", + "type": "array" + }, + "radiations": { + "items": { + "$ref": "#/components/schemas/NestedRadiationSchema" + }, + "title": "Radiations", + "type": "array" + }, + "surgeries": { + "items": { + "$ref": "#/components/schemas/NestedSurgerySchema" + }, + "title": "Surgeries", + "type": "array" + }, + "followups": { + "items": { + "$ref": "#/components/schemas/NestedFollowUpSchema" + }, + "title": "Followups", + "type": "array" + }, + "submitter_treatment_id": { + "maxLength": 64, + "title": "Submitter Treatment Id", + "type": "string" + }, + "treatment_type": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Treatment Type" + }, + "is_primary_treatment": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Is Primary Treatment" + }, + "line_of_treatment": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Line Of Treatment" + }, + "treatment_start_date": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Start Date" + }, + "treatment_end_date": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment End Date" + }, + "treatment_setting": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Setting" + }, + "treatment_intent": { + "anyOf": [ + { + "maxLength": 128, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Intent" + }, + "days_per_cycle": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Days Per Cycle" + }, + "number_of_cycles": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Number Of Cycles" + }, + "response_to_treatment_criteria_method": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Response To Treatment Criteria Method" + }, + "response_to_treatment": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Response To Treatment" + }, + "status_of_treatment": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Status Of Treatment" + } + }, + "required": [ + "submitter_treatment_id" + ], + "title": "NestedTreatmentSchema", + "type": "object" + }, + "Input": { + "properties": { + "page": { + "minimum": 1, + "title": "Page", + "type": "integer" + }, + "page_size": { + "minimum": 1, + "title": "Page Size", + "type": "integer" + } + }, + "title": "Input", + "type": "object" + }, + "ProgramFilterSchema": { + "properties": { + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + } + }, + "title": "ProgramFilterSchema", + "type": "object" + }, + "PagedProgramModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/ProgramModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedProgramModelSchema", + "type": "object" + }, + "DonorFilterSchema": { + "properties": { + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "gender": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "q": "gender__icontains", + "title": "Gender" + }, + "sex_at_birth": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Sex At Birth" + }, + "is_deceased": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Is Deceased" + }, + "lost_to_followup_after_clinical_event_identifier": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lost To Followup After Clinical Event Identifier" + }, + "lost_to_followup_reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lost To Followup Reason" + }, + "date_alive_after_lost_to_followup": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Alive After Lost To Followup" + }, + "cause_of_death": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Cause Of Death" + }, + "date_of_birth": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Birth" + }, + "date_of_death": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Death" + }, + "primary_site": { + "items": { + "type": "string" + }, + "q": "primary_site__overlap", + "title": "Primary Site", + "type": "array" + } + }, + "title": "DonorFilterSchema", + "type": "object" + }, + "CauseOfDeathEnum": { + "enum": [ + "Died of cancer", + "Died of other reasons", + "Unknown" + ], + "title": "CauseOfDeathEnum", + "type": "string" + }, + "DonorModelSchema": { + "properties": { + "cause_of_death": { + "anyOf": [ + { + "$ref": "#/components/schemas/CauseOfDeathEnum" + }, + { + "type": "null" + } + ] + }, + "submitter_donor_id": { + "maxLength": 64, + "pattern": "^[A-Za-z0-9\\-\\._]{1,64}", + "title": "Submitter Donor Id", + "type": "string" + }, + "date_of_birth": { + "anyOf": [ + { + "maxLength": 32, + "pattern": "^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Birth" + }, + "date_of_death": { + "anyOf": [ + { + "maxLength": 32, + "pattern": "^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Death" + }, + "primary_site": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/PrimarySiteEnum" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Primary Site" + }, + "gender": { + "anyOf": [ + { + "$ref": "#/components/schemas/GenderEnum" + }, + { + "type": "null" + } + ] + }, + "sex_at_birth": { + "anyOf": [ + { + "$ref": "#/components/schemas/SexAtBirthEnum" + }, + { + "type": "null" + } + ] + }, + "lost_to_followup_reason": { + "anyOf": [ + { + "$ref": "#/components/schemas/LostToFollowupReasonEnum" + }, + { + "type": "null" + } + ] + }, + "date_alive_after_lost_to_followup": { + "anyOf": [ + { + "maxLength": 32, + "pattern": "^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Alive After Lost To Followup" + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "is_deceased": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Is Deceased" + }, + "lost_to_followup_after_clinical_event_identifier": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lost To Followup After Clinical Event Identifier" + } + }, + "required": [ + "submitter_donor_id", + "program_id" + ], + "title": "DonorModelSchema", + "type": "object" + }, + "GenderEnum": { + "enum": [ + "Man", + "Woman", + "Non-binary" + ], + "title": "GenderEnum", + "type": "string" + }, + "LostToFollowupReasonEnum": { + "enum": [ + "Completed study", + "Discharged to palliative care", + "Lost contact", + "Not applicable", + "Unknown", + "Withdrew from study" + ], + "title": "LostToFollowupReasonEnum", + "type": "string" + }, + "PagedDonorModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/DonorModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedDonorModelSchema", + "type": "object" + }, + "PrimarySiteEnum": { + "enum": [ + "Accessory sinuses", + "Adrenal gland", + "Anus and anal canal", + "Base of tongue", + "Bladder", + "Bones, joints and articular cartilage of limbs", + "Bones, joints and articular cartilage of other and unspecified sites", + "Brain", + "Breast", + "Bronchus and lung", + "Cervix uteri", + "Colon", + "Connective, subcutaneous and other soft tissues", + "Corpus uteri", + "Esophagus", + "Eye and adnexa", + "Floor of mouth", + "Gallbladder", + "Gum", + "Heart, mediastinum, and pleura", + "Hematopoietic and reticuloendothelial systems", + "Hypopharynx", + "Kidney", + "Larynx", + "Lip", + "Liver and intrahepatic bile ducts", + "Lymph nodes", + "Meninges", + "Nasal cavity and middle ear", + "Nasopharynx", + "Oropharynx", + "Other and ill-defined digestive organs", + "Other and ill-defined sites", + "Other and ill-defined sites in lip, oral cavity and pharynx", + "Other and ill-defined sites within respiratory system and intrathoracic organs", + "Other and unspecified female genital organs", + "Other and unspecified major salivary glands", + "Other and unspecified male genital organs", + "Other and unspecified parts of biliary tract", + "Other and unspecified parts of mouth", + "Other and unspecified parts of tongue", + "Other and unspecified urinary organs", + "Other endocrine glands and related structures", + "Ovary", + "Palate", + "Pancreas", + "Parotid gland", + "Penis", + "Peripheral nerves and autonomic nervous system", + "Placenta", + "Prostate gland", + "Pyriform sinus", + "Rectosigmoid junction", + "Rectum", + "Renal pelvis", + "Retroperitoneum and peritoneum", + "Skin", + "Small intestine", + "Spinal cord, cranial nerves, and other parts of central nervous system", + "Stomach", + "Testis", + "Thymus", + "Thyroid gland", + "Tonsil", + "Trachea", + "Ureter", + "Uterus, NOS", + "Vagina", + "Vulva", + "Unknown primary site" + ], + "title": "PrimarySiteEnum", + "type": "string" + }, + "SexAtBirthEnum": { + "enum": [ + "Male", + "Female", + "Other", + "Unknown" + ], + "title": "SexAtBirthEnum", + "type": "string" + }, + "PrimaryDiagnosisFilterSchema": { + "properties": { + "submitter_primary_diagnosis_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "date_of_diagnosis": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Diagnosis" + }, + "cancer_type_code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Cancer Type Code" + }, + "basis_of_diagnosis": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Basis Of Diagnosis" + }, + "laterality": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Laterality" + }, + "lymph_nodes_examined_status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lymph Nodes Examined Status" + }, + "lymph_nodes_examined_method": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lymph Nodes Examined Method" + }, + "number_lymph_nodes_positive": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Number Lymph Nodes Positive" + }, + "clinical_tumour_staging_system": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical Tumour Staging System" + }, + "clinical_t_category": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical T Category" + }, + "clinical_n_category": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical N Category" + }, + "clinical_m_category": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical M Category" + }, + "clinical_stage_group": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Clinical Stage Group" + } + }, + "title": "PrimaryDiagnosisFilterSchema", + "type": "object" + }, + "BasisOfDiagnosisEnum": { + "enum": [ + "Clinical investigation", + "Clinical", + "Cytology", + "Death certificate only", + "Histology of a metastasis", + "Histology of a primary tumour", + "Specific tumour markers", + "Unknown" + ], + "title": "BasisOfDiagnosisEnum", + "type": "string" + }, + "LymphNodeMethodEnum": { + "enum": [ + "Imaging", + "Lymph node dissection/pathological exam", + "Physical palpation of patient" + ], + "title": "LymphNodeMethodEnum", + "type": "string" + }, + "LymphNodeStatusEnum": { + "enum": [ + "Cannot be determined", + "No", + "No lymph nodes found in resected specimen", + "Not applicable", + "Yes" + ], + "title": "LymphNodeStatusEnum", + "type": "string" + }, + "MCategoryEnum": { + "enum": [ + "M0", + "M0(i+)", + "M1", + "M1a", + "M1a(0)", + "M1a(1)", + "M1b", + "M1b(0)", + "M1b(1)", + "M1c", + "M1c(0)", + "M1c(1)", + "M1d", + "M1d(0)", + "M1d(1)", + "M1e", + "MX" + ], + "title": "MCategoryEnum", + "type": "string" + }, + "NCategoryEnum": { + "enum": [ + "N0", + "N0a", + "N0a (biopsy)", + "N0b", + "N0b (no biopsy)", + "N0(i+)", + "N0(i-)", + "N0(mol+)", + "N0(mol-)", + "N1", + "N1a", + "N1a(sn)", + "N1b", + "N1c", + "N1mi", + "N2", + "N2a", + "N2b", + "N2c", + "N2mi", + "N3", + "N3a", + "N3b", + "N3c", + "N4", + "NX" + ], + "title": "NCategoryEnum", + "type": "string" + }, + "PagedPrimaryDiagnosisModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/PrimaryDiagnosisModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedPrimaryDiagnosisModelSchema", + "type": "object" + }, + "PrimaryDiagnosisLateralityEnum": { + "enum": [ + "Bilateral", + "Left", + "Midline", + "Not a paired site", + "Right", + "Unilateral, side not specified", + "Unknown" + ], + "title": "PrimaryDiagnosisLateralityEnum", + "type": "string" + }, + "PrimaryDiagnosisModelSchema": { + "properties": { + "submitter_primary_diagnosis_id": { + "maxLength": 64, + "pattern": "^[A-Za-z0-9\\-\\._]{1,64}", + "title": "Submitter Primary Diagnosis Id", + "type": "string" + }, + "date_of_diagnosis": { + "anyOf": [ + { + "maxLength": 32, + "pattern": "^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Diagnosis" + }, + "basis_of_diagnosis": { + "anyOf": [ + { + "$ref": "#/components/schemas/BasisOfDiagnosisEnum" + }, + { + "type": "null" + } + ] + }, + "lymph_nodes_examined_status": { + "anyOf": [ + { + "$ref": "#/components/schemas/LymphNodeStatusEnum" + }, + { + "type": "null" + } + ] + }, + "lymph_nodes_examined_method": { + "anyOf": [ + { + "$ref": "#/components/schemas/LymphNodeMethodEnum" + }, + { + "type": "null" + } + ] + }, + "clinical_tumour_staging_system": { + "anyOf": [ + { + "$ref": "#/components/schemas/TumourStagingSystemEnum" + }, + { + "type": "null" + } + ] + }, + "clinical_t_category": { + "anyOf": [ + { + "$ref": "#/components/schemas/TCategoryEnum" + }, + { + "type": "null" + } + ] + }, + "clinical_n_category": { + "anyOf": [ + { + "$ref": "#/components/schemas/NCategoryEnum" + }, + { + "type": "null" + } + ] + }, + "clinical_m_category": { + "anyOf": [ + { + "$ref": "#/components/schemas/MCategoryEnum" + }, + { + "type": "null" + } + ] + }, + "clinical_stage_group": { + "anyOf": [ + { + "$ref": "#/components/schemas/StageGroupEnum" + }, + { + "type": "null" + } + ] + }, + "laterality": { + "anyOf": [ + { + "$ref": "#/components/schemas/PrimaryDiagnosisLateralityEnum" + }, + { + "type": "null" + } + ] + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "submitter_donor_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "cancer_type_code": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Cancer Type Code" + }, + "number_lymph_nodes_positive": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Number Lymph Nodes Positive" + } + }, + "required": [ + "submitter_primary_diagnosis_id", + "program_id" + ], + "title": "PrimaryDiagnosisModelSchema", + "type": "object" + }, + "StageGroupEnum": { + "enum": [ + "Stage 0", + "Stage 0a", + "Stage 0is", + "Stage 1", + "Stage 1A", + "Stage 1B", + "Stage A", + "Stage B", + "Stage C", + "Stage I", + "Stage IA", + "Stage IA1", + "Stage IA2", + "Stage IA3", + "Stage IAB", + "Stage IAE", + "Stage IAES", + "Stage IAS", + "Stage IB", + "Stage IB1", + "Stage IB2", + "Stage IBE", + "Stage IBES", + "Stage IBS", + "Stage IC", + "Stage IE", + "Stage IEA", + "Stage IEB", + "Stage IES", + "Stage II", + "Stage II bulky", + "Stage IIA", + "Stage IIA1", + "Stage IIA2", + "Stage IIAE", + "Stage IIAES", + "Stage IIAS", + "Stage IIB", + "Stage IIBE", + "Stage IIBES", + "Stage IIBS", + "Stage IIC", + "Stage IIE", + "Stage IIEA", + "Stage IIEB", + "Stage IIES", + "Stage III", + "Stage IIIA", + "Stage IIIA1", + "Stage IIIA2", + "Stage IIIAE", + "Stage IIIAES", + "Stage IIIAS", + "Stage IIIB", + "Stage IIIBE", + "Stage IIIBES", + "Stage IIIBS", + "Stage IIIC", + "Stage IIIC1", + "Stage IIIC2", + "Stage IIID", + "Stage IIIE", + "Stage IIIES", + "Stage IIIS", + "Stage IIS", + "Stage IS", + "Stage IV", + "Stage IVA", + "Stage IVA1", + "Stage IVA2", + "Stage IVAE", + "Stage IVAES", + "Stage IVAS", + "Stage IVB", + "Stage IVBE", + "Stage IVBES", + "Stage IVBS", + "Stage IVC", + "Stage IVE", + "Stage IVES", + "Stage IVS", + "In situ", + "Localized", + "Regionalized", + "Distant", + "Stage L1", + "Stage L2", + "Stage M", + "Stage Ms", + "Stage 2A", + "Stage 2B", + "Stage 3", + "Stage 4", + "Stage 4S", + "Occult Carcinoma" + ], + "title": "StageGroupEnum", + "type": "string" + }, + "TCategoryEnum": { + "enum": [ + "T0", + "T1", + "T1a", + "T1a1", + "T1a2", + "T1a(s)", + "T1a(m)", + "T1b", + "T1b1", + "T1b2", + "T1b(s)", + "T1b(m)", + "T1c", + "T1d", + "T1mi", + "T2", + "T2(s)", + "T2(m)", + "T2a", + "T2a1", + "T2a2", + "T2b", + "T2c", + "T2d", + "T3", + "T3(s)", + "T3(m)", + "T3a", + "T3b", + "T3c", + "T3d", + "T3e", + "T4", + "T4a", + "T4a(s)", + "T4a(m)", + "T4b", + "T4b(s)", + "T4b(m)", + "T4c", + "T4d", + "T4e", + "Ta", + "Tis", + "Tis(DCIS)", + "Tis(LAMN)", + "Tis(LCIS)", + "Tis(Paget)", + "Tis(Paget's)", + "Tis pu", + "Tis pd", + "TX" + ], + "title": "TCategoryEnum", + "type": "string" + }, + "TumourStagingSystemEnum": { + "enum": [ + "AJCC 8th edition", + "AJCC 7th edition", + "AJCC 6th edition", + "Ann Arbor staging system", + "Binet staging system", + "Durie-Salmon staging system", + "FIGO staging system", + "International Neuroblastoma Risk Group Staging System", + "International Neuroblastoma Staging System", + "Lugano staging system", + "Rai staging system", + "Revised International staging system (RISS)", + "SEER staging system", + "St Jude staging system" + ], + "title": "TumourStagingSystemEnum", + "type": "string" + }, + "BiomarkerFilterSchema": { + "properties": { + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "submitter_specimen_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "submitter_primary_diagnosis_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "submitter_treatment_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "submitter_follow_up_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Follow Up Id" + }, + "test_date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Test Date" + }, + "psa_level": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Psa Level" + }, + "ca125": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Ca125" + }, + "cea": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Cea" + }, + "er_status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Er Status" + }, + "er_percent_positive": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Er Percent Positive" + }, + "pr_status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pr Status" + }, + "pr_percent_positive": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Pr Percent Positive" + }, + "her2_ihc_status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Her2 Ihc Status" + }, + "her2_ish_status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Her2 Ish Status" + }, + "hpv_ihc_status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hpv Ihc Status" + }, + "hpv_pcr_status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hpv Pcr Status" + }, + "hpv_strain": { + "items": { + "type": "string" + }, + "q": "hpv_strain__overlap", + "title": "Hpv Strain", + "type": "array" + } + }, + "title": "BiomarkerFilterSchema", + "type": "object" + }, + "BiomarkerModelSchema": { + "properties": { + "er_status": { + "anyOf": [ + { + "$ref": "#/components/schemas/ErPrHpvStatusEnum" + }, + { + "type": "null" + } + ] + }, + "pr_status": { + "anyOf": [ + { + "$ref": "#/components/schemas/ErPrHpvStatusEnum" + }, + { + "type": "null" + } + ] + }, + "her2_ihc_status": { + "anyOf": [ + { + "$ref": "#/components/schemas/Her2StatusEnum" + }, + { + "type": "null" + } + ] + }, + "her2_ish_status": { + "anyOf": [ + { + "$ref": "#/components/schemas/Her2StatusEnum" + }, + { + "type": "null" + } + ] + }, + "hpv_ihc_status": { + "anyOf": [ + { + "$ref": "#/components/schemas/ErPrHpvStatusEnum" + }, + { + "type": "null" + } + ] + }, + "hpv_pcr_status": { + "anyOf": [ + { + "$ref": "#/components/schemas/ErPrHpvStatusEnum" + }, + { + "type": "null" + } + ] + }, + "hpv_strain": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/HpvStrainEnum" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Hpv Strain" + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_specimen_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "submitter_primary_diagnosis_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "submitter_treatment_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "submitter_follow_up_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Follow Up Id" + }, + "test_date": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Test Date" + }, + "psa_level": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Psa Level" + }, + "ca125": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Ca125" + }, + "cea": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Cea" + }, + "er_percent_positive": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Er Percent Positive" + }, + "pr_percent_positive": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Pr Percent Positive" + } + }, + "required": [ + "program_id", + "submitter_donor_id" + ], + "title": "BiomarkerModelSchema", + "type": "object" + }, + "ErPrHpvStatusEnum": { + "enum": [ + "Cannot be determined", + "Negative", + "Not applicable", + "Positive", + "Unknown" + ], + "title": "ErPrHpvStatusEnum", + "type": "string" + }, + "Her2StatusEnum": { + "enum": [ + "Cannot be determined", + "Equivocal", + "Positive", + "Negative", + "Not applicable", + "Unknown" + ], + "title": "Her2StatusEnum", + "type": "string" + }, + "HpvStrainEnum": { + "enum": [ + "HPV16", + "HPV18", + "HPV31", + "HPV33", + "HPV35", + "HPV39", + "HPV45", + "HPV51", + "HPV52", + "HPV56", + "HPV58", + "HPV59", + "HPV66", + "HPV68", + "HPV73" + ], + "title": "HpvStrainEnum", + "type": "string" + }, + "PagedBiomarkerModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/BiomarkerModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedBiomarkerModelSchema", + "type": "object" + }, + "ChemotherapyFilterSchema": { + "properties": { + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "submitter_treatment_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "drug_reference_database": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Database" + }, + "drug_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "drug_reference_identifier": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "chemotherapy_drug_dose_units": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Chemotherapy Drug Dose Units" + }, + "prescribed_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "actual_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + } + }, + "title": "ChemotherapyFilterSchema", + "type": "object" + }, + "ChemotherapyModelSchema": { + "properties": { + "chemotherapy_drug_dose_units": { + "anyOf": [ + { + "$ref": "#/components/schemas/DosageUnitsEnum" + }, + { + "type": "null" + } + ] + }, + "drug_reference_database": { + "anyOf": [ + { + "$ref": "#/components/schemas/DrugReferenceDbEnum" + }, + { + "type": "null" + } + ] + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_treatment_id": { + "maxLength": 64, + "title": "Submitter Treatment Id", + "type": "string" + }, + "drug_name": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "drug_reference_identifier": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "prescribed_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "actual_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + } + }, + "required": [ + "program_id", + "submitter_donor_id", + "submitter_treatment_id" + ], + "title": "ChemotherapyModelSchema", + "type": "object" + }, + "DosageUnitsEnum": { + "enum": [ + "mg/m2", + "IU/m2", + "IU/kg", + "ug/m2", + "g/m2", + "mg/kg", + "cells/kg" + ], + "title": "DosageUnitsEnum", + "type": "string" + }, + "DrugReferenceDbEnum": { + "enum": [ + "RxNorm", + "PubChem", + "NCI Thesaurus" + ], + "title": "DrugReferenceDbEnum", + "type": "string" + }, + "PagedChemotherapyModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/ChemotherapyModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedChemotherapyModelSchema", + "type": "object" + }, + "ComorbidityFilterSchema": { + "properties": { + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "prior_malignancy": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Prior Malignancy" + }, + "laterality_of_prior_malignancy": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Laterality Of Prior Malignancy" + }, + "age_at_comorbidity_diagnosis": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Age At Comorbidity Diagnosis" + }, + "comorbidity_type_code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Type Code" + }, + "comorbidity_treatment_status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Treatment Status" + }, + "comorbidity_treatment": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Treatment" + } + }, + "title": "ComorbidityFilterSchema", + "type": "object" + }, + "ComorbidityModelSchema": { + "properties": { + "prior_malignancy": { + "anyOf": [ + { + "$ref": "#/components/schemas/uBooleanEnum" + }, + { + "type": "null" + } + ] + }, + "laterality_of_prior_malignancy": { + "anyOf": [ + { + "$ref": "#/components/schemas/MalignancyLateralityEnum" + }, + { + "type": "null" + } + ] + }, + "comorbidity_type_code": { + "anyOf": [ + { + "maxLength": 64, + "pattern": "^[A-Z][0-9]{2}(.[0-9]{1,3}[A-Z]{0,1})?$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Type Code" + }, + "comorbidity_treatment_status": { + "anyOf": [ + { + "$ref": "#/components/schemas/uBooleanEnum" + }, + { + "type": "null" + } + ] + }, + "comorbidity_treatment": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Comorbidity Treatment" + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "age_at_comorbidity_diagnosis": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Age At Comorbidity Diagnosis" + } + }, + "required": [ + "program_id", + "submitter_donor_id" + ], + "title": "ComorbidityModelSchema", + "type": "object" + }, + "MalignancyLateralityEnum": { + "enum": [ + "Bilateral", + "Left", + "Midline", + "Not applicable", + "Right", + "Unilateral, Side not specified", + "Unknown" + ], + "title": "MalignancyLateralityEnum", + "type": "string" + }, + "PagedComorbidityModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/ComorbidityModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedComorbidityModelSchema", + "type": "object" + }, + "uBooleanEnum": { + "enum": [ + "Yes", + "No", + "Unknown" + ], + "title": "uBooleanEnum", + "type": "string" + }, + "ExposureFilterSchema": { + "properties": { + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "tobacco_smoking_status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tobacco Smoking Status" + }, + "tobacco_type": { + "items": { + "type": "string" + }, + "q": "tobacco_type__overlap", + "title": "Tobacco Type", + "type": "array" + }, + "pack_years_smoked": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Pack Years Smoked" + } + }, + "title": "ExposureFilterSchema", + "type": "object" + }, + "ExposureModelSchema": { + "properties": { + "tobacco_smoking_status": { + "anyOf": [ + { + "$ref": "#/components/schemas/SmokingStatusEnum" + }, + { + "type": "null" + } + ] + }, + "tobacco_type": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/TobaccoTypeEnum" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Tobacco Type" + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "pack_years_smoked": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Pack Years Smoked" + } + }, + "required": [ + "program_id", + "submitter_donor_id" + ], + "title": "ExposureModelSchema", + "type": "object" + }, + "PagedExposureModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/ExposureModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedExposureModelSchema", + "type": "object" + }, + "SmokingStatusEnum": { + "enum": [ + "Current reformed smoker for <= 15 years", + "Current reformed smoker for > 15 years", + "Current reformed smoker, duration not specified", + "Current smoker", + "Lifelong non-smoker (<100 cigarettes smoked in lifetime)", + "Not applicable", + "Smoking history not documented" + ], + "title": "SmokingStatusEnum", + "type": "string" + }, + "TobaccoTypeEnum": { + "enum": [ + "Chewing Tobacco", + "Cigar", + "Cigarettes", + "Electronic cigarettes", + "Not applicable", + "Pipe", + "Roll-ups", + "Snuff", + "Unknown", + "Waterpipe" + ], + "title": "TobaccoTypeEnum", + "type": "string" + }, + "FollowUpFilterSchema": { + "properties": { + "submitter_follow_up_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Follow Up Id" + }, + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "submitter_primary_diagnosis_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "submitter_treatment_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "date_of_followup": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Followup" + }, + "disease_status_at_followup": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Disease Status At Followup" + }, + "relapse_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Relapse Type" + }, + "date_of_relapse": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Relapse" + }, + "method_of_progression_status": { + "items": { + "type": "string" + }, + "q": "method_of_progression_status__overlap", + "title": "Method Of Progression Status", + "type": "array" + }, + "anatomic_site_progression_or_recurrence": { + "items": { + "type": "string" + }, + "q": "anatomic_site_progression_or_recurrence__overlap", + "title": "Anatomic Site Progression Or Recurrence", + "type": "array" + }, + "recurrence_tumour_staging_system": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence Tumour Staging System" + }, + "recurrence_t_category": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence T Category" + }, + "recurrence_n_category": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence N Category" + }, + "recurrence_m_category": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence M Category" + }, + "recurrence_stage_group": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recurrence Stage Group" + } + }, + "title": "FollowUpFilterSchema", + "type": "object" + }, + "DiseaseStatusFollowupEnum": { + "enum": [ + "Complete remission", + "Distant progression", + "Loco-regional progression", + "No evidence of disease", + "Partial remission", + "Progression not otherwise specified", + "Relapse or recurrence", + "Stable" + ], + "title": "DiseaseStatusFollowupEnum", + "type": "string" + }, + "FollowUpModelSchema": { + "properties": { + "submitter_follow_up_id": { + "maxLength": 64, + "pattern": "^[A-Za-z0-9\\-\\._]{1,64}", + "title": "Submitter Follow Up Id", + "type": "string" + }, + "disease_status_at_followup": { + "anyOf": [ + { + "$ref": "#/components/schemas/DiseaseStatusFollowupEnum" + }, + { + "type": "null" + } + ] + }, + "relapse_type": { + "anyOf": [ + { + "$ref": "#/components/schemas/RelapseTypeEnum" + }, + { + "type": "null" + } + ] + }, + "date_of_followup": { + "anyOf": [ + { + "maxLength": 32, + "pattern": "^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Followup" + }, + "date_of_relapse": { + "anyOf": [ + { + "maxLength": 32, + "pattern": "^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Date Of Relapse" + }, + "method_of_progression_status": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/ProgressionStatusMethodEnum" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Method Of Progression Status" + }, + "anatomic_site_progression_or_recurrence": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Anatomic Site Progression Or Recurrence" + }, + "recurrence_tumour_staging_system": { + "anyOf": [ + { + "$ref": "#/components/schemas/TumourStagingSystemEnum" + }, + { + "type": "null" + } + ] + }, + "recurrence_t_category": { + "anyOf": [ + { + "$ref": "#/components/schemas/TCategoryEnum" + }, + { + "type": "null" + } + ] + }, + "recurrence_n_category": { + "anyOf": [ + { + "$ref": "#/components/schemas/NCategoryEnum" + }, + { + "type": "null" + } + ] + }, + "recurrence_m_category": { + "anyOf": [ + { + "$ref": "#/components/schemas/MCategoryEnum" + }, + { + "type": "null" + } + ] + }, + "recurrence_stage_group": { + "anyOf": [ + { + "$ref": "#/components/schemas/StageGroupEnum" + }, + { + "type": "null" + } + ] + }, + "treatment_uuid": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Uuid" + }, + "primary_diagnosis_uuid": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Primary Diagnosis Uuid" + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_primary_diagnosis_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "submitter_treatment_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + } + }, + "required": [ + "submitter_follow_up_id", + "program_id", + "submitter_donor_id" + ], + "title": "FollowUpModelSchema", + "type": "object" + }, + "PagedFollowUpModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/FollowUpModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedFollowUpModelSchema", + "type": "object" + }, + "ProgressionStatusMethodEnum": { + "enum": [ + "Imaging (procedure)", + "Histopathology test (procedure)", + "Assessment of symptom control (procedure)", + "Physical examination procedure (procedure)", + "Tumor marker measurement (procedure)", + "Laboratory data interpretation (procedure)" + ], + "title": "ProgressionStatusMethodEnum", + "type": "string" + }, + "RelapseTypeEnum": { + "enum": [ + "Distant recurrence/metastasis", + "Local recurrence", + "Local recurrence and distant metastasis", + "Progression (liquid tumours)", + "Biochemical progression" + ], + "title": "RelapseTypeEnum", + "type": "string" + }, + "HormoneTherapyFilterSchema": { + "properties": { + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "submitter_treatment_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "drug_reference_database": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Database" + }, + "drug_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "drug_reference_identifier": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "hormone_drug_dose_units": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hormone Drug Dose Units" + }, + "prescribed_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "actual_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + } + }, + "title": "HormoneTherapyFilterSchema", + "type": "object" + }, + "HormoneTherapyModelSchema": { + "properties": { + "hormone_drug_dose_units": { + "anyOf": [ + { + "$ref": "#/components/schemas/DosageUnitsEnum" + }, + { + "type": "null" + } + ] + }, + "drug_reference_database": { + "anyOf": [ + { + "$ref": "#/components/schemas/DrugReferenceDbEnum" + }, + { + "type": "null" + } + ] + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_treatment_id": { + "maxLength": 64, + "title": "Submitter Treatment Id", + "type": "string" + }, + "drug_name": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "drug_reference_identifier": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "prescribed_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "actual_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + } + }, + "required": [ + "program_id", + "submitter_donor_id", + "submitter_treatment_id" + ], + "title": "HormoneTherapyModelSchema", + "type": "object" + }, + "PagedHormoneTherapyModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/HormoneTherapyModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedHormoneTherapyModelSchema", + "type": "object" + }, + "ImmunotherapyFilterSchema": { + "properties": { + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "submitter_treatment_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "drug_reference_database": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Database" + }, + "immunotherapy_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Immunotherapy Type" + }, + "drug_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "drug_reference_identifier": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "immunotherapy_drug_dose_units": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Immunotherapy Drug Dose Units" + }, + "prescribed_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "actual_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + } + }, + "title": "ImmunotherapyFilterSchema", + "type": "object" + }, + "ImmunotherapyModelSchema": { + "properties": { + "immunotherapy_type": { + "anyOf": [ + { + "$ref": "#/components/schemas/ImmunotherapyTypeEnum" + }, + { + "type": "null" + } + ] + }, + "drug_reference_database": { + "anyOf": [ + { + "$ref": "#/components/schemas/DrugReferenceDbEnum" + }, + { + "type": "null" + } + ] + }, + "immunotherapy_drug_dose_units": { + "anyOf": [ + { + "$ref": "#/components/schemas/DosageUnitsEnum" + }, + { + "type": "null" + } + ] + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_treatment_id": { + "maxLength": 64, + "title": "Submitter Treatment Id", + "type": "string" + }, + "drug_name": { + "anyOf": [ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Name" + }, + "drug_reference_identifier": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Drug Reference Identifier" + }, + "prescribed_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Prescribed Cumulative Drug Dose" + }, + "actual_cumulative_drug_dose": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Actual Cumulative Drug Dose" + } + }, + "required": [ + "program_id", + "submitter_donor_id", + "submitter_treatment_id" + ], + "title": "ImmunotherapyModelSchema", + "type": "object" + }, + "ImmunotherapyTypeEnum": { + "enum": [ + "Cell-based", + "Immune checkpoint inhibitors", + "Monoclonal antibodies other than immune checkpoint inhibitors", + "Other immunomodulatory substances" + ], + "title": "ImmunotherapyTypeEnum", + "type": "string" + }, + "PagedImmunotherapyModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/ImmunotherapyModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedImmunotherapyModelSchema", + "type": "object" + }, + "RadiationFilterSchema": { + "properties": { + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "submitter_treatment_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "radiation_therapy_modality": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Modality" + }, + "radiation_therapy_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Type" + }, + "radiation_therapy_fractions": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Fractions" + }, + "radiation_therapy_dosage": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Dosage" + }, + "anatomical_site_irradiated": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Anatomical Site Irradiated" + }, + "radiation_boost": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Radiation Boost" + }, + "reference_radiation_treatment_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reference Radiation Treatment Id" + } + }, + "title": "RadiationFilterSchema", + "type": "object" + }, + "PagedRadiationModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/RadiationModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedRadiationModelSchema", + "type": "object" + }, + "RadiationAnatomicalSiteEnum": { + "enum": [ + "Left Abdomen", + "Whole Abdomen", + "Right Abdomen", + "Lower Abdomen", + "Left Lower Abdomen", + "Right Lower Abdomen", + "Upper Abdomen", + "Left Upper Abdomen", + "Right Upper Abdomen", + "Left Adrenal", + "Right Adrenal", + "Bilateral Ankle", + "Left Ankle", + "Right Ankle", + "Bilateral Antrum (Bull's Eye)", + "Left Antrum", + "Right Antrum", + "Anus", + "Lower Left Arm", + "Lower Right Arm", + "Bilateral Arms", + "Left Arm", + "Right Arm", + "Upper Left Arm", + "Upper Right Arm", + "Left Axilla", + "Right Axilla", + "Skin or Soft Tissue of Back", + "Bile Duct", + "Bladder", + "Lower Body", + "Middle Body", + "Upper Body", + "Whole Body", + "Boost - Area Previously Treated", + "Brain", + "Left Breast Boost", + "Right Breast Boost", + "Bilateral Breast", + "Left Breast", + "Right Breast", + "Bilateral Breasts with Nodes", + "Left Breast with Nodes", + "Right Breast with Nodes", + "Bilateral Buttocks", + "Left Buttock", + "Right Buttock", + "Inner Canthus", + "Outer Canthus", + "Cervix", + "Bilateral Chest Lung & Area Involve", + "Left Chest", + "Right Chest", + "Chin", + "Left Cheek", + "Right Cheek", + "Bilateral Chest Wall (W/o Breast)", + "Left Chest Wall", + "Right Chest Wall", + "Bilateral Clavicle", + "Left Clavicle", + "Right Clavicle", + "Coccyx", + "Colon", + "Whole C.N.S. (Medulla Techinque)", + "Csf Spine (Medull Tech 2 Diff Machi", + "Left Chestwall Boost", + "Right Chestwall Boost", + "Bilateral Chestwall with Nodes", + "Left Chestwall with Nodes", + "Right Chestwall with Nodes", + "Left Ear", + "Right Ear", + "Epigastrium", + "Lower Esophagus", + "Middle Esophagus", + "Upper Esophagus", + "Entire Esophagus", + "Ethmoid Sinus", + "Bilateral Eyes", + "Left Eye", + "Right Eye", + "Bilateral Face", + "Left Face", + "Right Face", + "Left Fallopian Tubes", + "Right Fallopian Tubes", + "Bilateral Femur", + "Left Femur", + "Right Femur", + "Left Fibula", + "Right Fibula", + "Finger (Including Thumbs)", + "Floor of Mouth (Boosts)", + "Bilateral Feet", + "Left Foot", + "Right Foot", + "Forehead", + "Posterior Fossa", + "Gall Bladder", + "Gingiva", + "Bilateral Hand", + "Left Hand", + "Right Hand", + "Head", + "Bilateral Heel", + "Left Heel", + "Right Heel", + "Left Hemimantle", + "Right Hemimantle", + "Heart", + "Bilateral Hip", + "Left Hip", + "Right Hip", + "Left Humerus", + "Right Humerus", + "Hypopharynx", + "Bilateral Internal Mammary Chain", + "Bilateral Inguinal Nodes", + "Left Inguinal Nodes", + "Right Inguinal Nodes", + "Inverted 'Y' (Dog-Leg,Hockey-Stick)", + "Left Kidney", + "Right Kidney", + "Bilateral Knee", + "Left Knee", + "Right Knee", + "Bilateral Lacrimal Gland", + "Left Lacrimal Gland", + "Right Lacrimal Gland", + "Larygopharynx", + "Larynx", + "Bilateral Leg", + "Left Leg", + "Right Leg", + "Lower Bilateral Leg", + "Lower Left Leg", + "Lower Right Leg", + "Upper Bilateral Leg", + "Upper Left Leg", + "Upper Right Leg", + "Both Eyelid(s)", + "Left Eyelid", + "Right Eyelid", + "Both Lip(s)", + "Lower Lip", + "Upper Lip", + "Liver", + "Bilateral Lung", + "Left Lung", + "Right Lung", + "Bilateral Mandible", + "Left Mandible", + "Right Mandible", + "Mantle", + "Bilateral Maxilla", + "Left Maxilla", + "Right Maxilla", + "Mediastinum", + "Multiple Skin", + "Nasal Fossa", + "Nasopharynx", + "Bilateral Neck Includes Nodes", + "Left Neck Includes Nodes", + "Right Neck Includes Nodes", + "Neck - Skin", + "Nose", + "Oral Cavity / Buccal Mucosa", + "Bilateral Orbit", + "Left Orbit", + "Right Orbit", + "Oropharynx", + "Bilateral Ovary", + "Left Ovary", + "Right Ovary", + "Hard Palate", + "Soft Palate", + "Palate Unspecified", + "Pancreas", + "Para-Aortic Nodes", + "Left Parotid", + "Right Parotid", + "Bilateral Pelvis", + "Left Pelvis", + "Right Pelvis", + "Penis", + "Perineum", + "Pituitary", + "Left Pleura (As in Mesothelioma)", + "Right Pleura", + "Prostate", + "Pubis", + "Pyriform Fossa (Sinuses)", + "Left Radius", + "Right Radius", + "Rectum (Includes Sigmoid)", + "Left Ribs", + "Right Ribs", + "Sacrum", + "Left Salivary Gland", + "Right Salivary Gland", + "Bilateral Scapula", + "Left Scapula", + "Right Scapula", + "Bilateral Supraclavicular Nodes", + "Left Supraclavicular Nodes", + "Right Supraclavicular Nodes", + "Bilateral Scalp", + "Left Scalp", + "Right Scalp", + "Scrotum", + "Bilateral Shoulder", + "Left Shoulder", + "Right Shoulder", + "Whole Body - Skin", + "Skull", + "Cervical & Thoracic Spine", + "Sphenoid Sinus", + "Cervical Spine", + "Lumbar Spine", + "Thoracic Spine", + "Whole Spine", + "Spleen", + "Lumbo-Sacral Spine", + "Thoracic & Lumbar Spine", + "Sternum", + "Stomach", + "Submandibular Glands", + "Left Temple", + "Right Temple", + "Bilateral Testis", + "Left Testis", + "Right Testis", + "Thyroid", + "Left Tibia", + "Right Tibia", + "Left Toes", + "Right Toes", + "Tongue", + "Tonsil", + "Trachea", + "Left Ulna", + "Right Ulna", + "Left Ureter", + "Right Ureter", + "Urethra", + "Uterus", + "Uvula", + "Vagina", + "Vulva", + "Abdomen", + "Body", + "Chest", + "Lower Limb", + "Neck", + "Other", + "Pelvis", + "Skin", + "Spine", + "Upper Limb" + ], + "title": "RadiationAnatomicalSiteEnum", + "type": "string" + }, + "RadiationModelSchema": { + "properties": { + "radiation_therapy_modality": { + "anyOf": [ + { + "$ref": "#/components/schemas/RadiationTherapyModalityEnum" + }, + { + "type": "null" + } + ] + }, + "radiation_therapy_type": { + "anyOf": [ + { + "$ref": "#/components/schemas/TherapyTypeEnum" + }, + { + "type": "null" + } + ] + }, + "anatomical_site_irradiated": { + "anyOf": [ + { + "$ref": "#/components/schemas/RadiationAnatomicalSiteEnum" + }, + { + "type": "null" + } + ] + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_treatment_id": { + "maxLength": 64, + "title": "Submitter Treatment Id", + "type": "string" + }, + "radiation_therapy_fractions": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Fractions" + }, + "radiation_therapy_dosage": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Radiation Therapy Dosage" + }, + "radiation_boost": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Radiation Boost" + }, + "reference_radiation_treatment_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reference Radiation Treatment Id" + } + }, + "required": [ + "program_id", + "submitter_donor_id", + "submitter_treatment_id" + ], + "title": "RadiationModelSchema", + "type": "object" + }, + "RadiationTherapyModalityEnum": { + "enum": [ + "Megavoltage radiation therapy using photons (procedure)", + "Radiopharmaceutical", + "Teleradiotherapy using electrons (procedure)", + "Teleradiotherapy protons (procedure)", + "Teleradiotherapy neutrons (procedure)", + "Brachytherapy (procedure)", + "Other" + ], + "title": "RadiationTherapyModalityEnum", + "type": "string" + }, + "TherapyTypeEnum": { + "enum": [ + "External", + "Internal" + ], + "title": "TherapyTypeEnum", + "type": "string" + }, + "SampleRegistrationFilterSchema": { + "properties": { + "submitter_sample_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Sample Id" + }, + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "submitter_specimen_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "specimen_tissue_source": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Tissue Source" + }, + "tumour_normal_designation": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Normal Designation" + }, + "specimen_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Type" + }, + "sample_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Sample Type" + } + }, + "title": "SampleRegistrationFilterSchema", + "type": "object" + }, + "PagedSampleRegistrationModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/SampleRegistrationModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedSampleRegistrationModelSchema", + "type": "object" + }, + "SampleRegistrationModelSchema": { + "properties": { + "submitter_sample_id": { + "maxLength": 64, + "pattern": "^[A-Za-z0-9\\-\\._]{1,64}", + "title": "Submitter Sample Id", + "type": "string" + }, + "specimen_tissue_source": { + "anyOf": [ + { + "$ref": "#/components/schemas/SpecimenTissueSourceEnum" + }, + { + "type": "null" + } + ] + }, + "tumour_normal_designation": { + "anyOf": [ + { + "$ref": "#/components/schemas/TumourDesginationEnum" + }, + { + "type": "null" + } + ] + }, + "specimen_type": { + "anyOf": [ + { + "$ref": "#/components/schemas/SpecimenTypeEnum" + }, + { + "type": "null" + } + ] + }, + "sample_type": { + "anyOf": [ + { + "$ref": "#/components/schemas/SampleTypeEnum" + }, + { + "type": "null" + } + ] + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_specimen_id": { + "maxLength": 64, + "title": "Submitter Specimen Id", + "type": "string" + } + }, + "required": [ + "submitter_sample_id", + "program_id", + "submitter_donor_id", + "submitter_specimen_id" + ], + "title": "SampleRegistrationModelSchema", + "type": "object" + }, + "SampleTypeEnum": { + "enum": [ + "Amplified DNA", + "ctDNA", + "Other DNA enrichments", + "Other RNA fractions", + "polyA+ RNA", + "Protein", + "rRNA-depleted RNA", + "Total DNA", + "Total RNA" + ], + "title": "SampleTypeEnum", + "type": "string" + }, + "SpecimenTissueSourceEnum": { + "enum": [ + "Abdominal fluid", + "Amniotic fluid", + "Arterial blood", + "Bile", + "Blood derived - bone marrow", + "Blood derived - peripheral blood", + "Bone marrow fluid", + "Bone marrow derived mononuclear cells", + "Buccal cell", + "Buffy coat", + "Cerebrospinal fluid", + "Cervical mucus", + "Convalescent plasma", + "Cord blood", + "Duodenal fluid", + "Female genital fluid", + "Fetal blood", + "Hydrocele fluid", + "Male genital fluid", + "Pancreatic fluid", + "Pericardial effusion", + "Pleural fluid", + "Renal cyst fluid", + "Saliva", + "Seminal fluid", + "Serum", + "Solid tissue", + "Sputum", + "Synovial fluid", + "Urine", + "Venous blood", + "Vitreous fluid", + "Whole blood", + "Wound" + ], + "title": "SpecimenTissueSourceEnum", + "type": "string" + }, + "SpecimenTypeEnum": { + "enum": [ + "Cell line - derived from normal", + "Cell line - derived from primary tumour", + "Cell line - derived from metastatic tumour", + "Cell line - derived from xenograft tumour", + "Metastatic tumour - additional metastatic", + "Metastatic tumour - metastasis local to lymph node", + "Metastatic tumour - metastasis to distant location", + "Metastatic tumour", + "Normal - tissue adjacent to primary tumour", + "Normal", + "Primary tumour - additional new primary", + "Primary tumour - adjacent to normal", + "Primary tumour", + "Recurrent tumour", + "Tumour - unknown if derived from primary or metastatic tumour", + "Xenograft - derived from primary tumour", + "Xenograft - derived from metastatic tumour", + "Xenograft - derived from tumour cell line" + ], + "title": "SpecimenTypeEnum", + "type": "string" + }, + "TumourDesginationEnum": { + "enum": [ + "Normal", + "Tumour" + ], + "title": "TumourDesginationEnum", + "type": "string" + }, + "SpecimenFilterSchema": { + "properties": { + "submitter_specimen_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "submitter_primary_diagnosis_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "pathological_tumour_staging_system": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological Tumour Staging System" + }, + "pathological_t_category": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological T Category" + }, + "pathological_n_category": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological N Category" + }, + "pathological_m_category": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological M Category" + }, + "pathological_stage_group": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pathological Stage Group" + }, + "specimen_collection_date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Collection Date" + }, + "specimen_storage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Storage" + }, + "specimen_processing": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Processing" + }, + "tumour_histological_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Histological Type" + }, + "specimen_anatomic_location": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Anatomic Location" + }, + "specimen_laterality": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Laterality" + }, + "reference_pathology_confirmed_diagnosis": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reference Pathology Confirmed Diagnosis" + }, + "reference_pathology_confirmed_tumour_presence": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reference Pathology Confirmed Tumour Presence" + }, + "tumour_grading_system": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Grading System" + }, + "tumour_grade": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Grade" + }, + "percent_tumour_cells_range": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Percent Tumour Cells Range" + }, + "percent_tumour_cells_measurement_method": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Percent Tumour Cells Measurement Method" + } + }, + "title": "SpecimenFilterSchema", + "type": "object" + }, + "CellsMeasureMethodEnum": { + "enum": [ + "Genomics", + "Image analysis", + "Pathology estimate by percent nuclei", + "Unknown" + ], + "title": "CellsMeasureMethodEnum", + "type": "string" + }, + "ConfirmedDiagnosisTumourEnum": { + "enum": [ + "Yes", + "No", + "Not done", + "Unknown" + ], + "title": "ConfirmedDiagnosisTumourEnum", + "type": "string" + }, + "PagedSpecimenModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/SpecimenModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedSpecimenModelSchema", + "type": "object" + }, + "PercentCellsRangeEnum": { + "enum": [ + "0-19%", + "20-50%", + "51-100%" + ], + "title": "PercentCellsRangeEnum", + "type": "string" + }, + "SpecimenLateralityEnum": { + "enum": [ + "Left", + "Not applicable", + "Right", + "Unknown" + ], + "title": "SpecimenLateralityEnum", + "type": "string" + }, + "SpecimenModelSchema": { + "properties": { + "submitter_specimen_id": { + "maxLength": 64, + "pattern": "^[A-Za-z0-9\\-\\._]{1,64}", + "title": "Submitter Specimen Id", + "type": "string" + }, + "pathological_tumour_staging_system": { + "anyOf": [ + { + "$ref": "#/components/schemas/TumourStagingSystemEnum" + }, + { + "type": "null" + } + ] + }, + "pathological_t_category": { + "anyOf": [ + { + "$ref": "#/components/schemas/TCategoryEnum" + }, + { + "type": "null" + } + ] + }, + "pathological_n_category": { + "anyOf": [ + { + "$ref": "#/components/schemas/NCategoryEnum" + }, + { + "type": "null" + } + ] + }, + "pathological_m_category": { + "anyOf": [ + { + "$ref": "#/components/schemas/MCategoryEnum" + }, + { + "type": "null" + } + ] + }, + "pathological_stage_group": { + "anyOf": [ + { + "$ref": "#/components/schemas/StageGroupEnum" + }, + { + "type": "null" + } + ] + }, + "specimen_collection_date": { + "anyOf": [ + { + "maxLength": 32, + "pattern": "^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Collection Date" + }, + "specimen_storage": { + "anyOf": [ + { + "$ref": "#/components/schemas/StorageEnum" + }, + { + "type": "null" + } + ] + }, + "tumour_histological_type": { + "anyOf": [ + { + "maxLength": 128, + "pattern": "^[8,9]{1}[0-9]{3}/[0,1,2,3,6,9]{1}[1-9]{0,1}$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Histological Type" + }, + "specimen_anatomic_location": { + "anyOf": [ + { + "maxLength": 32, + "pattern": "^[C][0-9]{2}(.[0-9]{1})?$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Specimen Anatomic Location" + }, + "reference_pathology_confirmed_diagnosis": { + "anyOf": [ + { + "$ref": "#/components/schemas/ConfirmedDiagnosisTumourEnum" + }, + { + "type": "null" + } + ] + }, + "reference_pathology_confirmed_tumour_presence": { + "anyOf": [ + { + "$ref": "#/components/schemas/ConfirmedDiagnosisTumourEnum" + }, + { + "type": "null" + } + ] + }, + "tumour_grading_system": { + "anyOf": [ + { + "$ref": "#/components/schemas/TumourGradingSystemEnum" + }, + { + "type": "null" + } + ] + }, + "tumour_grade": { + "anyOf": [ + { + "$ref": "#/components/schemas/TumourGradeEnum" + }, + { + "type": "null" + } + ] + }, + "percent_tumour_cells_range": { + "anyOf": [ + { + "$ref": "#/components/schemas/PercentCellsRangeEnum" + }, + { + "type": "null" + } + ] + }, + "percent_tumour_cells_measurement_method": { + "anyOf": [ + { + "$ref": "#/components/schemas/CellsMeasureMethodEnum" + }, + { + "type": "null" + } + ] + }, + "specimen_processing": { + "anyOf": [ + { + "$ref": "#/components/schemas/SpecimenProcessingEnum" + }, + { + "type": "null" + } + ] + }, + "specimen_laterality": { + "anyOf": [ + { + "$ref": "#/components/schemas/SpecimenLateralityEnum" + }, + { + "type": "null" + } + ] + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_primary_diagnosis_id": { + "maxLength": 64, + "title": "Submitter Primary Diagnosis Id", + "type": "string" + } + }, + "required": [ + "submitter_specimen_id", + "program_id", + "submitter_donor_id", + "submitter_primary_diagnosis_id" + ], + "title": "SpecimenModelSchema", + "type": "object" + }, + "SpecimenProcessingEnum": { + "enum": [ + "Cryopreservation in liquid nitrogen (dead tissue)", + "Cryopreservation in dry ice (dead tissue)", + "Cryopreservation of live cells in liquid nitrogen", + "Cryopreservation - other", + "Formalin fixed & paraffin embedded", + "Formalin fixed - buffered", + "Formalin fixed - unbuffered", + "Fresh", + "Other", + "Unknown" + ], + "title": "SpecimenProcessingEnum", + "type": "string" + }, + "StorageEnum": { + "enum": [ + "Cut slide", + "Frozen in -70 freezer", + "Frozen in liquid nitrogen", + "Frozen in vapour phase", + "Not Applicable", + "Other", + "Paraffin block", + "RNA later frozen", + "Unknown" + ], + "title": "StorageEnum", + "type": "string" + }, + "TumourGradeEnum": { + "enum": [ + "Low grade", + "High grade", + "GX", + "G1", + "G2", + "G3", + "G4", + "Low", + "High", + "Grade 1", + "Grade 2", + "Grade 3", + "Grade 4", + "Grade I", + "Grade II", + "Grade III", + "Grade IV", + "Grade Group 1", + "Grade Group 2", + "Grade Group 3", + "Grade Group 4", + "Grade Group 5" + ], + "title": "TumourGradeEnum", + "type": "string" + }, + "TumourGradingSystemEnum": { + "enum": [ + "FNCLCC grading system", + "Four-tier grading system", + "Gleason grade group system", + "Grading system for GISTs", + "Grading system for GNETs", + "IASLC grading system", + "ISUP grading system", + "Nottingham grading system", + "Nuclear grading system for DCIS", + "Scarff-Bloom-Richardson grading system", + "Three-tier grading system", + "Two-tier grading system", + "WHO grading system for CNS tumours" + ], + "title": "TumourGradingSystemEnum", + "type": "string" + }, + "SurgeryFilterSchema": { + "properties": { + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "submitter_treatment_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "submitter_specimen_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "surgery_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Surgery Type" + }, + "surgery_site": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Surgery Site" + }, + "surgery_location": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Surgery Location" + }, + "tumour_length": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Tumour Length" + }, + "tumour_width": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Tumour Width" + }, + "greatest_dimension_tumour": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Greatest Dimension Tumour" + }, + "tumour_focality": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tumour Focality" + }, + "residual_tumour_classification": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Residual Tumour Classification" + }, + "margin_types_involved": { + "items": { + "type": "string" + }, + "q": "margin_types_involved__overlap", + "title": "Margin Types Involved", + "type": "array" + }, + "margin_types_not_involved": { + "items": { + "type": "string" + }, + "q": "margin_types_not_involved__overlap", + "title": "Margin Types Not Involved", + "type": "array" + }, + "margin_types_not_assessed": { + "items": { + "type": "string" + }, + "q": "margin_types_not_assessed__overlap", + "title": "Margin Types Not Assessed", + "type": "array" + }, + "lymphovascular_invasion": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lymphovascular Invasion" + }, + "perineural_invasion": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Perineural Invasion" + } + }, + "title": "SurgeryFilterSchema", + "type": "object" + }, + "LymphovascularInvasionEnum": { + "enum": [ + "Absent", + "Both lymphatic and small vessel and venous (large vessel) invasion", + "Lymphatic and small vessel invasion only", + "Not applicable", + "Present", + "Venous (large vessel) invasion only", + "Unknown" + ], + "title": "LymphovascularInvasionEnum", + "type": "string" + }, + "MarginTypesEnum": { + "enum": [ + "Circumferential resection margin", + "Common bile duct margin", + "Distal margin", + "Not applicable", + "Proximal margin", + "Unknown" + ], + "title": "MarginTypesEnum", + "type": "string" + }, + "PagedSurgeryModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/SurgeryModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedSurgeryModelSchema", + "type": "object" + }, + "PerineuralInvasionEnum": { + "enum": [ + "Absent", + "Cannot be assessed", + "Not applicable", + "Present", + "Unknown" + ], + "title": "PerineuralInvasionEnum", + "type": "string" + }, + "SurgeryLocationEnum": { + "enum": [ + "Local recurrence", + "Metastatic", + "Primary" + ], + "title": "SurgeryLocationEnum", + "type": "string" + }, + "SurgeryModelSchema": { + "properties": { + "surgery_type": { + "anyOf": [ + { + "$ref": "#/components/schemas/SurgeryTypeEnum" + }, + { + "type": "null" + } + ] + }, + "surgery_site": { + "anyOf": [ + { + "maxLength": 255, + "pattern": "^[C][0-9]{2}(.[0-9]{1})?$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Surgery Site" + }, + "surgery_location": { + "anyOf": [ + { + "$ref": "#/components/schemas/SurgeryLocationEnum" + }, + { + "type": "null" + } + ] + }, + "tumour_focality": { + "anyOf": [ + { + "$ref": "#/components/schemas/TumourFocalityEnum" + }, + { + "type": "null" + } + ] + }, + "residual_tumour_classification": { + "anyOf": [ + { + "$ref": "#/components/schemas/TumourClassificationEnum" + }, + { + "type": "null" + } + ] + }, + "margin_types_involved": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/MarginTypesEnum" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Margin Types Involved" + }, + "margin_types_not_involved": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/MarginTypesEnum" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Margin Types Not Involved" + }, + "margin_types_not_assessed": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/MarginTypesEnum" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Margin Types Not Assessed" + }, + "lymphovascular_invasion": { + "anyOf": [ + { + "$ref": "#/components/schemas/LymphovascularInvasionEnum" + }, + { + "type": "null" + } + ] + }, + "perineural_invasion": { + "anyOf": [ + { + "$ref": "#/components/schemas/PerineuralInvasionEnum" + }, + { + "type": "null" + } + ] + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_treatment_id": { + "maxLength": 64, + "title": "Submitter Treatment Id", + "type": "string" + }, + "submitter_specimen_id": { + "anyOf": [ + { + "maxLength": 64, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Specimen Id" + }, + "tumour_length": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Tumour Length" + }, + "tumour_width": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Tumour Width" + }, + "greatest_dimension_tumour": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Greatest Dimension Tumour" + } + }, + "required": [ + "program_id", + "submitter_donor_id", + "submitter_treatment_id" + ], + "title": "SurgeryModelSchema", + "type": "object" + }, + "SurgeryTypeEnum": { + "enum": [ + "Ablation", + "Axillary Clearance", + "Axillary lymph nodes sampling", + "Bilateral complete salpingo-oophorectomy", + "Biopsy", + "Bypass Gastrojejunostomy", + "Cholecystectomy", + "Cholecystojejunostomy", + "Completion Gastrectomy", + "Debridement of pancreatic and peripancreatic necrosis", + "Distal subtotal pancreatectomy", + "Drainage of abscess", + "Duodenal preserving pancreatic head resection", + "Endoscopic biopsy", + "Endoscopic brushings of gastrointestinal tract", + "Enucleation", + "Esophageal bypass surgery/jejunostomy only", + "Exploratory laparotomy", + "Fine needle aspiration biopsy", + "Gastric Antrectomy", + "Glossectomy", + "Hepatojejunostomy", + "Hysterectomy", + "Incision of thorax", + "Ivor Lewis subtotal esophagectomy", + "Laparotomy", + "Left thoracoabdominal incision", + "Lobectomy", + "Mammoplasty", + "Mastectomy", + "McKeown esophagectomy", + "Merendino procedure", + "Minimally invasive esophagectomy", + "Omentectomy", + "Ovariectomy", + "Pancreaticoduodenectomy (Whipple procedure)", + "Pancreaticojejunostomy, side-to-side anastomosis", + "Partial pancreatectomy", + "Pneumonectomy", + "Prostatectomy", + "Proximal subtotal gastrectomy", + "Pylorus-sparing Whipple operation", + "Radical pancreaticoduodenectomy", + "Radical prostatectomy", + "Reexcision", + "Segmentectomy", + "Sentinal Lymph Node Biopsy", + "Spleen preserving distal pancreatectomy", + "Splenectomy", + "Total gastrectomy", + "Total gastrectomy with extended lymphadenectomy", + "Total pancreatectomy", + "Transhiatal esophagectomy", + "Triple bypass of pancreas", + "Tumor Debulking", + "Wedge/localised gastric resection", + "Wide Local Excision" + ], + "title": "SurgeryTypeEnum", + "type": "string" + }, + "TumourClassificationEnum": { + "enum": [ + "Not applicable", + "RX", + "R0", + "R1", + "R2", + "Unknown" + ], + "title": "TumourClassificationEnum", + "type": "string" + }, + "TumourFocalityEnum": { + "enum": [ + "Cannot be assessed", + "Multifocal", + "Not applicable", + "Unifocal", + "Unknown" + ], + "title": "TumourFocalityEnum", + "type": "string" + }, + "TreatmentFilterSchema": { + "properties": { + "submitter_treatment_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Treatment Id" + }, + "program_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Program Id" + }, + "submitter_donor_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Donor Id" + }, + "submitter_primary_diagnosis_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Submitter Primary Diagnosis Id" + }, + "treatment_type": { + "items": { + "type": "string" + }, + "q": "treatment_type__overlap", + "title": "Treatment Type", + "type": "array" + }, + "is_primary_treatment": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Is Primary Treatment" + }, + "line_of_treatment": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Line Of Treatment" + }, + "treatment_start_date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Start Date" + }, + "treatment_end_date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment End Date" + }, + "treatment_setting": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Setting" + }, + "treatment_intent": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Intent" + }, + "days_per_cycle": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Days Per Cycle" + }, + "number_of_cycles": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Number Of Cycles" + }, + "response_to_treatment_criteria_method": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Response To Treatment Criteria Method" + }, + "response_to_treatment": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Response To Treatment" + }, + "status_of_treatment": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Status Of Treatment" + } + }, + "title": "TreatmentFilterSchema", + "type": "object" + }, + "PagedTreatmentModelSchema": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/TreatmentModelSchema" + }, + "title": "Items", + "type": "array" + }, + "count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + }, + "next_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Next Page" + }, + "previous_page": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Previous Page" + } + }, + "required": [ + "items", + "count", + "next_page", + "previous_page" + ], + "title": "PagedTreatmentModelSchema", + "type": "object" + }, + "TreatmentIntentEnum": { + "enum": [ + "Curative", + "Palliative", + "Supportive", + "Diagnostic", + "Preventive", + "Guidance", + "Screening", + "Forensic" + ], + "title": "TreatmentIntentEnum", + "type": "string" + }, + "TreatmentModelSchema": { + "properties": { + "submitter_treatment_id": { + "maxLength": 64, + "pattern": "^[A-Za-z0-9\\-\\._]{1,64}", + "title": "Submitter Treatment Id", + "type": "string" + }, + "treatment_type": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/TreatmentTypeEnum" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Treatment Type" + }, + "is_primary_treatment": { + "anyOf": [ + { + "$ref": "#/components/schemas/uBooleanEnum" + }, + { + "type": "null" + } + ] + }, + "treatment_start_date": { + "anyOf": [ + { + "maxLength": 32, + "pattern": "^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment Start Date" + }, + "treatment_end_date": { + "anyOf": [ + { + "maxLength": 32, + "pattern": "^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Treatment End Date" + }, + "treatment_setting": { + "anyOf": [ + { + "$ref": "#/components/schemas/TreatmentSettingEnum" + }, + { + "type": "null" + } + ] + }, + "treatment_intent": { + "anyOf": [ + { + "$ref": "#/components/schemas/TreatmentIntentEnum" + }, + { + "type": "null" + } + ] + }, + "response_to_treatment_criteria_method": { + "anyOf": [ + { + "$ref": "#/components/schemas/TreatmentResponseMethodEnum" + }, + { + "type": "null" + } + ] + }, + "response_to_treatment": { + "anyOf": [ + { + "$ref": "#/components/schemas/TreatmentResponseEnum" + }, + { + "type": "null" + } + ] + }, + "status_of_treatment": { + "anyOf": [ + { + "$ref": "#/components/schemas/TreatmentStatusEnum" + }, + { + "type": "null" + } + ] + }, + "program_id": { + "title": "Program Id", + "type": "string" + }, + "submitter_donor_id": { + "maxLength": 64, + "title": "Submitter Donor Id", + "type": "string" + }, + "submitter_primary_diagnosis_id": { + "maxLength": 64, + "title": "Submitter Primary Diagnosis Id", + "type": "string" + }, + "line_of_treatment": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Line Of Treatment" + }, + "days_per_cycle": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Days Per Cycle" + }, + "number_of_cycles": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Number Of Cycles" + } + }, + "required": [ + "submitter_treatment_id", + "program_id", + "submitter_donor_id", + "submitter_primary_diagnosis_id" + ], + "title": "TreatmentModelSchema", + "type": "object" + }, + "TreatmentResponseEnum": { + "enum": [ + "Complete response", + "Partial response", + "Progressive disease", + "Stable disease", + "Immune complete response (iCR)", + "Immune partial response (iPR)", + "Immune uncomfirmed progressive disease (iUPD)", + "Immune confirmed progressive disease (iCPD)", + "Immune stable disease (iSD)", + "Complete remission", + "Partial remission", + "Minor response", + "Complete remission without measurable residual disease (CR MRD-)", + "Complete remission with incomplete hematologic recovery (CRi)", + "Morphologic leukemia-free state", + "Primary refractory disease", + "Hematologic relapse (after CR MRD-, CR, CRi)", + "Molecular relapse (after CR MRD-)", + "Physician assessed complete response", + "Physician assessed partial response", + "Physician assessed stable disease", + "No evidence of disease (NED)", + "Major response" + ], + "title": "TreatmentResponseEnum", + "type": "string" + }, + "TreatmentResponseMethodEnum": { + "enum": [ + "RECIST 1.1", + "iRECIST", + "Cheson CLL 2012 Oncology Response Criteria", + "Response Assessment in Neuro-Oncology (RANO)", + "AML Response Criteria", + "Physician Assessed Response Criteria", + "Blazer score" + ], + "title": "TreatmentResponseMethodEnum", + "type": "string" + }, + "TreatmentSettingEnum": { + "enum": [ + "Adjuvant", + "Advanced/Metastatic", + "Neoadjuvant", + "Conditioning", + "Induction", + "Locally advanced", + "Maintenance", + "Mobilization", + "Preventative", + "Radiosensitization", + "Salvage" + ], + "title": "TreatmentSettingEnum", + "type": "string" + }, + "TreatmentStatusEnum": { + "enum": [ + "Treatment completed as prescribed", + "Treatment incomplete due to technical or organizational problems", + "Treatment incomplete because patient died", + "Patient choice (stopped or interrupted treatment)", + "Physician decision (stopped or interrupted treatment)", + "Treatment stopped due to lack of efficacy (disease progression)", + "Treatment stopped due to acute toxicity", + "Other", + "Not applicable", + "Unknown" + ], + "title": "TreatmentStatusEnum", + "type": "string" + }, + "TreatmentTypeEnum": { + "enum": [ + "Bone marrow transplant", + "Chemotherapy", + "Hormonal therapy", + "Immunotherapy", + "No treatment", + "Other targeting molecular therapy", + "Photodynamic therapy", + "Radiation therapy", + "Stem cell transplant", + "Surgery" + ], + "title": "TreatmentTypeEnum", + "type": "string" + }, + "ProgramDiscoverySchema": { + "properties": { + "cohort_list": { + "items": { + "type": "string" + }, + "title": "Cohort List", + "type": "array" + } + }, + "required": [ + "cohort_list" + ], + "title": "ProgramDiscoverySchema", + "type": "object" + }, + "DiscoverySchema": { + "properties": { + "donors_by_cohort": { + "additionalProperties": { + "type": "integer" + }, + "title": "Donors By Cohort", + "type": "object" + } + }, + "required": [ + "donors_by_cohort" + ], + "title": "DiscoverySchema", + "type": "object" + } + }, + "securitySchemes": { + "LocalAuth": { + "type": "http", + "scheme": "bearer" + } + } + }, + "servers": [] +} diff --git a/chord_metadata_service/mohpackets/docs/schema.md b/chord_metadata_service/mohpackets/docs/schema.md new file mode 100644 index 000000000..1690b97f0 --- /dev/null +++ b/chord_metadata_service/mohpackets/docs/schema.md @@ -0,0 +1,18510 @@ + +

MoH Service API v3.0.0

+ +This is the RESTful API for the MoH Service. Based on https://raw.githubusercontent.com/CanDIG/katsu/29caaa0842abd9b6b422f77ad9362c61fabb8e13/chord_metadata_service/mohpackets/docs/schema.json + +Base URLs: + +# Authentication + +- HTTP Authentication, scheme: bearer + +

Default

+ +## chord_metadata_service_mohpackets_apis_core_service_info + + + +`GET /v2/service-info` + +*Service Info* + +

ingest

+ +## chord_metadata_service_mohpackets_apis_ingestion_create_program + + + +`POST /v2/ingest/program/` + +*Create Program* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[ProgramModelSchema](#schemaprogrammodelschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_donor + + + +`POST /v2/ingest/donor/` + +*Create Donor* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[DonorIngestSchema](#schemadonoringestschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_biomarker + + + +`POST /v2/ingest/biomarker/` + +*Create Biomarker* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[BiomarkerIngestSchema](#schemabiomarkeringestschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_chemotherapy + + + +`POST /v2/ingest/chemotherapy/` + +*Create Chemotherapy* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[ChemotherapyIngestSchema](#schemachemotherapyingestschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_comorbidity + + + +`POST /v2/ingest/comorbidity/` + +*Create Comorbidity* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[ComorbidityIngestSchema](#schemacomorbidityingestschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_exposure + + + +`POST /v2/ingest/exposure/` + +*Create Exposure* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[ExposureIngestSchema](#schemaexposureingestschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_follow_up + + + +`POST /v2/ingest/follow_up/` + +*Create Follow Up* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[FollowUpIngestSchema](#schemafollowupingestschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_hormone_therapy + + + +`POST /v2/ingest/hormone_therapy/` + +*Create Hormone Therapy* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[HormoneTherapyIngestSchema](#schemahormonetherapyingestschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_immunotherapy + + + +`POST /v2/ingest/immunotherapy/` + +*Create Immunotherapy* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[ImmunotherapyIngestSchema](#schemaimmunotherapyingestschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_primary_diagnosis + + + +`POST /v2/ingest/primary_diagnosis/` + +*Create Primary Diagnosis* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[PrimaryDiagnosisIngestSchema](#schemaprimarydiagnosisingestschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_radiation + + + +`POST /v2/ingest/radiation/` + +*Create Radiation* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[RadiationIngestSchema](#schemaradiationingestschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_sample_registration + + + +`POST /v2/ingest/sample_registration/` + +*Create Sample Registration* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[SampleRegistrationIngestSchema](#schemasampleregistrationingestschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_specimen + + + +`POST /v2/ingest/specimen/` + +*Create Specimen* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[SpecimenIngestSchema](#schemaspecimeningestschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_surgery + + + +`POST /v2/ingest/surgery/` + +*Create Surgery* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[SurgeryIngestSchema](#schemasurgeryingestschema)|true|none| + +## chord_metadata_service_mohpackets_apis_ingestion_create_treatment + + + +`POST /v2/ingest/treatment/` + +*Create Treatment* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|[TreatmentIngestSchema](#schematreatmentingestschema)|true|none| + +

authorized

+ +## chord_metadata_service_mohpackets_apis_clinical_data_delete_program + + + +`DELETE /v2/authorized/program/{program_id}/` + +*Delete Program* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|program_id|path|string|true|none| + +> Example responses + +> 404 Response + +```json +{ + "property1": "string", + "property2": "string" +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_get_donor_with_clinical_data + + + +`GET /v2/authorized/donor_with_clinical_data/program/{program_id}/donor/{donor_id}` + +*Get Donor With Clinical Data* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|program_id|path|string|true|none| +|donor_id|path|string|true|none| + +> Example responses + +> 200 Response + +```json +{ + "primary_diagnoses": [ + { + "specimens": [ + { + "sample_registrations": [ + { + "submitter_sample_id": "string", + "specimen_tissue_source": "string", + "tumour_normal_designation": "string", + "specimen_type": "string", + "sample_type": "string" + } + ], + "submitter_specimen_id": "string", + "pathological_tumour_staging_system": "string", + "pathological_t_category": "string", + "pathological_n_category": "string", + "pathological_m_category": "string", + "pathological_stage_group": "string", + "specimen_collection_date": "string", + "specimen_storage": "string", + "specimen_processing": "string", + "tumour_histological_type": "string", + "specimen_anatomic_location": "string", + "specimen_laterality": "string", + "reference_pathology_confirmed_diagnosis": "string", + "reference_pathology_confirmed_tumour_presence": "string", + "tumour_grading_system": "string", + "tumour_grade": "string", + "percent_tumour_cells_range": "string", + "percent_tumour_cells_measurement_method": "string" + } + ], + "treatments": [ + { + "chemotherapies": [ + { + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "chemotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "immunotherapies": [ + { + "drug_reference_database": "string", + "immunotherapy_type": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "immunotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "hormone_therapies": [ + { + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "hormone_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "radiations": [ + { + "radiation_therapy_modality": "string", + "radiation_therapy_type": "string", + "radiation_therapy_fractions": 0, + "radiation_therapy_dosage": 0, + "anatomical_site_irradiated": "string", + "radiation_boost": true, + "reference_radiation_treatment_id": "string" + } + ], + "surgeries": [ + { + "submitter_specimen_id": "string", + "surgery_type": "string", + "surgery_site": "string", + "surgery_location": "string", + "tumour_length": 0, + "tumour_width": 0, + "greatest_dimension_tumour": 0, + "tumour_focality": "string", + "residual_tumour_classification": "string", + "margin_types_involved": [ + null + ], + "margin_types_not_involved": [ + null + ], + "margin_types_not_assessed": [ + null + ], + "lymphovascular_invasion": "string", + "perineural_invasion": "string" + } + ], + "followups": [ + { + "submitter_follow_up_id": "string", + "date_of_followup": "string", + "disease_status_at_followup": "string", + "relapse_type": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + null + ], + "anatomic_site_progression_or_recurrence": [ + null + ], + "recurrence_tumour_staging_system": "string", + "recurrence_t_category": "string", + "recurrence_n_category": "string", + "recurrence_m_category": "string", + "recurrence_stage_group": "string" + } + ], + "submitter_treatment_id": "string", + "treatment_type": [ + null + ], + "is_primary_treatment": "string", + "line_of_treatment": 0, + "treatment_start_date": "string", + "treatment_end_date": "string", + "treatment_setting": "string", + "treatment_intent": "string", + "days_per_cycle": 0, + "number_of_cycles": 0, + "response_to_treatment_criteria_method": "string", + "response_to_treatment": "string", + "status_of_treatment": "string" + } + ], + "followups": [ + { + "submitter_follow_up_id": "string", + "date_of_followup": "string", + "disease_status_at_followup": "string", + "relapse_type": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + null + ], + "anatomic_site_progression_or_recurrence": [ + null + ], + "recurrence_tumour_staging_system": "string", + "recurrence_t_category": "string", + "recurrence_n_category": "string", + "recurrence_m_category": "string", + "recurrence_stage_group": "string" + } + ], + "submitter_primary_diagnosis_id": "string", + "date_of_diagnosis": "string", + "cancer_type_code": "string", + "basis_of_diagnosis": "string", + "laterality": "string", + "lymph_nodes_examined_status": "string", + "lymph_nodes_examined_method": "string", + "number_lymph_nodes_positive": 0, + "clinical_tumour_staging_system": "string", + "clinical_t_category": "string", + "clinical_n_category": "string", + "clinical_m_category": "string", + "clinical_stage_group": "string" + } + ], + "followups": [ + { + "submitter_follow_up_id": "string", + "date_of_followup": "string", + "disease_status_at_followup": "string", + "relapse_type": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + null + ], + "anatomic_site_progression_or_recurrence": [ + null + ], + "recurrence_tumour_staging_system": "string", + "recurrence_t_category": "string", + "recurrence_n_category": "string", + "recurrence_m_category": "string", + "recurrence_stage_group": "string" + } + ], + "biomarkers": [ + { + "submitter_specimen_id": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_treatment_id": "string", + "submitter_follow_up_id": "string", + "test_date": "string", + "psa_level": 0, + "ca125": 0, + "cea": 0, + "er_status": "string", + "er_percent_positive": 0, + "pr_status": "string", + "pr_percent_positive": 0, + "her2_ihc_status": "string", + "her2_ish_status": "string", + "hpv_ihc_status": "string", + "hpv_pcr_status": "string", + "hpv_strain": [ + null + ] + } + ], + "exposures": [ + { + "tobacco_smoking_status": "string", + "tobacco_type": [ + null + ], + "pack_years_smoked": 0 + } + ], + "comorbidities": [ + { + "prior_malignancy": "string", + "laterality_of_prior_malignancy": "string", + "age_at_comorbidity_diagnosis": 0, + "comorbidity_type_code": "string", + "comorbidity_treatment_status": "string", + "comorbidity_treatment": "string" + } + ], + "submitter_donor_id": "string", + "program_id": "string", + "gender": "string", + "sex_at_birth": "string", + "is_deceased": true, + "lost_to_followup_after_clinical_event_identifier": "string", + "lost_to_followup_reason": "string", + "date_alive_after_lost_to_followup": "string", + "cause_of_death": "string", + "date_of_birth": "string", + "date_of_death": "string", + "primary_site": [ + null + ] +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_programs + + + +`GET /v2/authorized/programs/` + +*List Programs* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|program_id|query|any|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "program_id": "string", + "metadata": {}, + "created": "2019-08-24T14:15:22Z", + "updated": "2019-08-24T14:15:22Z" + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_donors + + + +`GET /v2/authorized/donors/` + +*List Donors* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|submitter_donor_id|query|any|false|none| +|program_id|query|any|false|none| +|gender|query|any|false|none| +|sex_at_birth|query|any|false|none| +|is_deceased|query|any|false|none| +|lost_to_followup_after_clinical_event_identifier|query|any|false|none| +|lost_to_followup_reason|query|any|false|none| +|date_alive_after_lost_to_followup|query|any|false|none| +|cause_of_death|query|any|false|none| +|date_of_birth|query|any|false|none| +|date_of_death|query|any|false|none| +|primary_site|query|array[string]|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "cause_of_death": "Died of cancer", + "submitter_donor_id": "string", + "date_of_birth": "string", + "date_of_death": "string", + "primary_site": [ + "Accessory sinuses" + ], + "gender": "Man", + "sex_at_birth": "Male", + "lost_to_followup_reason": "Completed study", + "date_alive_after_lost_to_followup": "string", + "program_id": "string", + "is_deceased": true, + "lost_to_followup_after_clinical_event_identifier": "string" + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_primary_diagnoses + + + +`GET /v2/authorized/primary_diagnoses/` + +*List Primary Diagnoses* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|submitter_primary_diagnosis_id|query|any|false|none| +|program_id|query|any|false|none| +|submitter_donor_id|query|any|false|none| +|date_of_diagnosis|query|any|false|none| +|cancer_type_code|query|any|false|none| +|basis_of_diagnosis|query|any|false|none| +|laterality|query|any|false|none| +|lymph_nodes_examined_status|query|any|false|none| +|lymph_nodes_examined_method|query|any|false|none| +|number_lymph_nodes_positive|query|any|false|none| +|clinical_tumour_staging_system|query|any|false|none| +|clinical_t_category|query|any|false|none| +|clinical_n_category|query|any|false|none| +|clinical_m_category|query|any|false|none| +|clinical_stage_group|query|any|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "submitter_primary_diagnosis_id": "string", + "date_of_diagnosis": "string", + "basis_of_diagnosis": "Clinical investigation", + "lymph_nodes_examined_status": "Cannot be determined", + "lymph_nodes_examined_method": "Imaging", + "clinical_tumour_staging_system": "AJCC 8th edition", + "clinical_t_category": "T0", + "clinical_n_category": "N0", + "clinical_m_category": "M0", + "clinical_stage_group": "Stage 0", + "laterality": "Bilateral", + "program_id": "string", + "submitter_donor_id": "string", + "cancer_type_code": "string", + "number_lymph_nodes_positive": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_biomarkers + + + +`GET /v2/authorized/biomarkers/` + +*List Biomarkers* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|program_id|query|any|false|none| +|submitter_donor_id|query|any|false|none| +|submitter_specimen_id|query|any|false|none| +|submitter_primary_diagnosis_id|query|any|false|none| +|submitter_treatment_id|query|any|false|none| +|submitter_follow_up_id|query|any|false|none| +|test_date|query|any|false|none| +|psa_level|query|any|false|none| +|ca125|query|any|false|none| +|cea|query|any|false|none| +|er_status|query|any|false|none| +|er_percent_positive|query|any|false|none| +|pr_status|query|any|false|none| +|pr_percent_positive|query|any|false|none| +|her2_ihc_status|query|any|false|none| +|her2_ish_status|query|any|false|none| +|hpv_ihc_status|query|any|false|none| +|hpv_pcr_status|query|any|false|none| +|hpv_strain|query|array[string]|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "er_status": "Cannot be determined", + "pr_status": "Cannot be determined", + "her2_ihc_status": "Cannot be determined", + "her2_ish_status": "Cannot be determined", + "hpv_ihc_status": "Cannot be determined", + "hpv_pcr_status": "Cannot be determined", + "hpv_strain": [ + "HPV16" + ], + "program_id": "string", + "submitter_donor_id": "string", + "submitter_specimen_id": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_treatment_id": "string", + "submitter_follow_up_id": "string", + "test_date": "string", + "psa_level": 0, + "ca125": 0, + "cea": 0, + "er_percent_positive": 0, + "pr_percent_positive": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_chemotherapies + + + +`GET /v2/authorized/chemotherapies/` + +*List Chemotherapies* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|program_id|query|any|false|none| +|submitter_donor_id|query|any|false|none| +|submitter_treatment_id|query|any|false|none| +|drug_reference_database|query|any|false|none| +|drug_name|query|any|false|none| +|drug_reference_identifier|query|any|false|none| +|chemotherapy_drug_dose_units|query|any|false|none| +|prescribed_cumulative_drug_dose|query|any|false|none| +|actual_cumulative_drug_dose|query|any|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "chemotherapy_drug_dose_units": "mg/m2", + "drug_reference_database": "RxNorm", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_comorbidities + + + +`GET /v2/authorized/comorbidities/` + +*List Comorbidities* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|program_id|query|any|false|none| +|submitter_donor_id|query|any|false|none| +|prior_malignancy|query|any|false|none| +|laterality_of_prior_malignancy|query|any|false|none| +|age_at_comorbidity_diagnosis|query|any|false|none| +|comorbidity_type_code|query|any|false|none| +|comorbidity_treatment_status|query|any|false|none| +|comorbidity_treatment|query|any|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "prior_malignancy": "Yes", + "laterality_of_prior_malignancy": "Bilateral", + "comorbidity_type_code": "string", + "comorbidity_treatment_status": "Yes", + "comorbidity_treatment": "string", + "program_id": "string", + "submitter_donor_id": "string", + "age_at_comorbidity_diagnosis": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_exposures + + + +`GET /v2/authorized/exposures/` + +*List Exposures* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|program_id|query|any|false|none| +|submitter_donor_id|query|any|false|none| +|tobacco_smoking_status|query|any|false|none| +|tobacco_type|query|array[string]|false|none| +|pack_years_smoked|query|any|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "tobacco_smoking_status": "Current reformed smoker for <= 15 years", + "tobacco_type": [ + "Chewing Tobacco" + ], + "program_id": "string", + "submitter_donor_id": "string", + "pack_years_smoked": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_follow_ups + + + +`GET /v2/authorized/follow_ups/` + +*List Follow Ups* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|submitter_follow_up_id|query|any|false|none| +|program_id|query|any|false|none| +|submitter_donor_id|query|any|false|none| +|submitter_primary_diagnosis_id|query|any|false|none| +|submitter_treatment_id|query|any|false|none| +|date_of_followup|query|any|false|none| +|disease_status_at_followup|query|any|false|none| +|relapse_type|query|any|false|none| +|date_of_relapse|query|any|false|none| +|method_of_progression_status|query|array[string]|false|none| +|anatomic_site_progression_or_recurrence|query|array[string]|false|none| +|recurrence_tumour_staging_system|query|any|false|none| +|recurrence_t_category|query|any|false|none| +|recurrence_n_category|query|any|false|none| +|recurrence_m_category|query|any|false|none| +|recurrence_stage_group|query|any|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "submitter_follow_up_id": "string", + "disease_status_at_followup": "Complete remission", + "relapse_type": "Distant recurrence/metastasis", + "date_of_followup": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + "Imaging (procedure)" + ], + "anatomic_site_progression_or_recurrence": [ + "string" + ], + "recurrence_tumour_staging_system": "AJCC 8th edition", + "recurrence_t_category": "T0", + "recurrence_n_category": "N0", + "recurrence_m_category": "M0", + "recurrence_stage_group": "Stage 0", + "treatment_uuid": "6ec39d1c-44a6-43bb-80b2-ee9580e3c70b", + "primary_diagnosis_uuid": "3459cde2-44be-4900-9ef0-b6de408c756d", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_treatment_id": "string" + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_hormone_therapies + + + +`GET /v2/authorized/hormone_therapies/` + +*List Hormone Therapies* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|program_id|query|any|false|none| +|submitter_donor_id|query|any|false|none| +|submitter_treatment_id|query|any|false|none| +|drug_reference_database|query|any|false|none| +|drug_name|query|any|false|none| +|drug_reference_identifier|query|any|false|none| +|hormone_drug_dose_units|query|any|false|none| +|prescribed_cumulative_drug_dose|query|any|false|none| +|actual_cumulative_drug_dose|query|any|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "hormone_drug_dose_units": "mg/m2", + "drug_reference_database": "RxNorm", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_immunotherapies + + + +`GET /v2/authorized/immunotherapies/` + +*List Immunotherapies* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|program_id|query|any|false|none| +|submitter_donor_id|query|any|false|none| +|submitter_treatment_id|query|any|false|none| +|drug_reference_database|query|any|false|none| +|immunotherapy_type|query|any|false|none| +|drug_name|query|any|false|none| +|drug_reference_identifier|query|any|false|none| +|immunotherapy_drug_dose_units|query|any|false|none| +|prescribed_cumulative_drug_dose|query|any|false|none| +|actual_cumulative_drug_dose|query|any|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "immunotherapy_type": "Cell-based", + "drug_reference_database": "RxNorm", + "immunotherapy_drug_dose_units": "mg/m2", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_radiations + + + +`GET /v2/authorized/radiations/` + +*List Radiations* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|program_id|query|any|false|none| +|submitter_donor_id|query|any|false|none| +|submitter_treatment_id|query|any|false|none| +|radiation_therapy_modality|query|any|false|none| +|radiation_therapy_type|query|any|false|none| +|radiation_therapy_fractions|query|any|false|none| +|radiation_therapy_dosage|query|any|false|none| +|anatomical_site_irradiated|query|any|false|none| +|radiation_boost|query|any|false|none| +|reference_radiation_treatment_id|query|any|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "radiation_therapy_modality": "Megavoltage radiation therapy using photons (procedure)", + "radiation_therapy_type": "External", + "anatomical_site_irradiated": "Left Abdomen", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "radiation_therapy_fractions": 0, + "radiation_therapy_dosage": 0, + "radiation_boost": true, + "reference_radiation_treatment_id": "string" + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_sample_registrations + + + +`GET /v2/authorized/sample_registrations/` + +*List Sample Registrations* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|submitter_sample_id|query|any|false|none| +|program_id|query|any|false|none| +|submitter_donor_id|query|any|false|none| +|submitter_specimen_id|query|any|false|none| +|specimen_tissue_source|query|any|false|none| +|tumour_normal_designation|query|any|false|none| +|specimen_type|query|any|false|none| +|sample_type|query|any|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "submitter_sample_id": "string", + "specimen_tissue_source": "Abdominal fluid", + "tumour_normal_designation": "Normal", + "specimen_type": "Cell line - derived from normal", + "sample_type": "Amplified DNA", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_specimen_id": "string" + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_specimens + + + +`GET /v2/authorized/specimens/` + +*List Specimens* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|submitter_specimen_id|query|any|false|none| +|program_id|query|any|false|none| +|submitter_donor_id|query|any|false|none| +|submitter_primary_diagnosis_id|query|any|false|none| +|pathological_tumour_staging_system|query|any|false|none| +|pathological_t_category|query|any|false|none| +|pathological_n_category|query|any|false|none| +|pathological_m_category|query|any|false|none| +|pathological_stage_group|query|any|false|none| +|specimen_collection_date|query|any|false|none| +|specimen_storage|query|any|false|none| +|specimen_processing|query|any|false|none| +|tumour_histological_type|query|any|false|none| +|specimen_anatomic_location|query|any|false|none| +|specimen_laterality|query|any|false|none| +|reference_pathology_confirmed_diagnosis|query|any|false|none| +|reference_pathology_confirmed_tumour_presence|query|any|false|none| +|tumour_grading_system|query|any|false|none| +|tumour_grade|query|any|false|none| +|percent_tumour_cells_range|query|any|false|none| +|percent_tumour_cells_measurement_method|query|any|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "submitter_specimen_id": "string", + "pathological_tumour_staging_system": "AJCC 8th edition", + "pathological_t_category": "T0", + "pathological_n_category": "N0", + "pathological_m_category": "M0", + "pathological_stage_group": "Stage 0", + "specimen_collection_date": "string", + "specimen_storage": "Cut slide", + "tumour_histological_type": "string", + "specimen_anatomic_location": "string", + "reference_pathology_confirmed_diagnosis": "Yes", + "reference_pathology_confirmed_tumour_presence": "Yes", + "tumour_grading_system": "FNCLCC grading system", + "tumour_grade": "Low grade", + "percent_tumour_cells_range": "0-19%", + "percent_tumour_cells_measurement_method": "Genomics", + "specimen_processing": "Cryopreservation in liquid nitrogen (dead tissue)", + "specimen_laterality": "Left", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string" + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_surgeries + + + +`GET /v2/authorized/surgeries/` + +*List Surgeries* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|program_id|query|any|false|none| +|submitter_donor_id|query|any|false|none| +|submitter_treatment_id|query|any|false|none| +|submitter_specimen_id|query|any|false|none| +|surgery_type|query|any|false|none| +|surgery_site|query|any|false|none| +|surgery_location|query|any|false|none| +|tumour_length|query|any|false|none| +|tumour_width|query|any|false|none| +|greatest_dimension_tumour|query|any|false|none| +|tumour_focality|query|any|false|none| +|residual_tumour_classification|query|any|false|none| +|margin_types_involved|query|array[string]|false|none| +|margin_types_not_involved|query|array[string]|false|none| +|margin_types_not_assessed|query|array[string]|false|none| +|lymphovascular_invasion|query|any|false|none| +|perineural_invasion|query|any|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "surgery_type": "Ablation", + "surgery_site": "string", + "surgery_location": "Local recurrence", + "tumour_focality": "Cannot be assessed", + "residual_tumour_classification": "Not applicable", + "margin_types_involved": [ + "Circumferential resection margin" + ], + "margin_types_not_involved": [ + "Circumferential resection margin" + ], + "margin_types_not_assessed": [ + "Circumferential resection margin" + ], + "lymphovascular_invasion": "Absent", + "perineural_invasion": "Absent", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "submitter_specimen_id": "string", + "tumour_length": 0, + "tumour_width": 0, + "greatest_dimension_tumour": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_clinical_data_list_treatments + + + +`GET /v2/authorized/treatments/` + +*List Treatments* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|submitter_treatment_id|query|any|false|none| +|program_id|query|any|false|none| +|submitter_donor_id|query|any|false|none| +|submitter_primary_diagnosis_id|query|any|false|none| +|treatment_type|query|array[string]|false|none| +|is_primary_treatment|query|any|false|none| +|line_of_treatment|query|any|false|none| +|treatment_start_date|query|any|false|none| +|treatment_end_date|query|any|false|none| +|treatment_setting|query|any|false|none| +|treatment_intent|query|any|false|none| +|days_per_cycle|query|any|false|none| +|number_of_cycles|query|any|false|none| +|response_to_treatment_criteria_method|query|any|false|none| +|response_to_treatment|query|any|false|none| +|status_of_treatment|query|any|false|none| +|page|query|integer|false|none| +|page_size|query|integer|false|none| + +> Example responses + +> 200 Response + +```json +{ + "items": [ + { + "submitter_treatment_id": "string", + "treatment_type": [ + "Bone marrow transplant" + ], + "is_primary_treatment": "Yes", + "treatment_start_date": "string", + "treatment_end_date": "string", + "treatment_setting": "Adjuvant", + "treatment_intent": "Curative", + "response_to_treatment_criteria_method": "RECIST 1.1", + "response_to_treatment": "Complete response", + "status_of_treatment": "Treatment completed as prescribed", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string", + "line_of_treatment": 0, + "days_per_cycle": 0, + "number_of_cycles": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} +``` + +

discovery

+ +## chord_metadata_service_mohpackets_apis_discovery_discover_programs + + + +`GET /v2/discovery/programs/` + +*Discover Programs* + +> Example responses + +> 200 Response + +```json +{ + "cohort_list": [ + "string" + ] +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_donors + + + +`GET /v2/discovery/donors/` + +*Discover Donors* + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|submitter_donor_id|query|any|false|none| +|program_id|query|any|false|none| +|gender|query|any|false|none| +|sex_at_birth|query|any|false|none| +|is_deceased|query|any|false|none| +|lost_to_followup_after_clinical_event_identifier|query|any|false|none| +|lost_to_followup_reason|query|any|false|none| +|date_alive_after_lost_to_followup|query|any|false|none| +|cause_of_death|query|any|false|none| +|date_of_birth|query|any|false|none| +|date_of_death|query|any|false|none| +|primary_site|query|array[string]|false|none| + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_specimens + + + +`GET /v2/discovery/specimen/` + +*Discover Specimens* + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_sample_registrations + + + +`GET /v2/discovery/sample_registrations/` + +*Discover Sample Registrations* + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_primary_diagnoses + + + +`GET /v2/discovery/primary_diagnoses/` + +*Discover Primary Diagnoses* + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_treatments + + + +`GET /v2/discovery/treatments/` + +*Discover Treatments* + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_chemotherapies + + + +`GET /v2/discovery/chemotherapies/` + +*Discover Chemotherapies* + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_hormone_therapies + + + +`GET /v2/discovery/hormone_therapies/` + +*Discover Hormone Therapies* + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_radiations + + + +`GET /v2/discovery/radiations/` + +*Discover Radiations* + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_immunotherapies + + + +`GET /v2/discovery/immunotherapies/` + +*Discover Immunotherapies* + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_surgeries + + + +`GET /v2/discovery/surgeries/` + +*Discover Surgeries* + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_follow_ups + + + +`GET /v2/discovery/follow_ups/` + +*Discover Follow Ups* + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_biomarkers + + + +`GET /v2/discovery/biomarkers/` + +*Discover Biomarkers* + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_comorbidities + + + +`GET /v2/discovery/comorbidities/` + +*Discover Comorbidities* + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_exposures + + + +`GET /v2/discovery/exposures/` + +*Discover Exposures* + +> Example responses + +> 200 Response + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_sidebar_list + + + +`GET /v2/discovery/sidebar_list/` + +*Discover Sidebar List* + +Retrieve the list of available values for all fields (including for +datasets that the user is not authorized to view) + +> Example responses + +> 200 Response + +```json +{} +``` + +

overview

+ +## chord_metadata_service_mohpackets_apis_discovery_discover_cohort_count + + + +`GET /v2/discovery/overview/cohort_count/` + +*Discover Cohort Count* + +Return the number of cohorts in the database. + +> Example responses + +> 200 Response + +```json +{ + "property1": 0, + "property2": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_patients_per_cohort + + + +`GET /v2/discovery/overview/patients_per_cohort/` + +*Discover Patients Per Cohort* + +Return the number of patients per cohort in the database. + +> Example responses + +> 200 Response + +```json +{ + "property1": 0, + "property2": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_individual_count + + + +`GET /v2/discovery/overview/individual_count/` + +*Discover Individual Count* + +Return the number of individuals in the database. + +> Example responses + +> 200 Response + +```json +{ + "property1": 0, + "property2": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_gender_count + + + +`GET /v2/discovery/overview/gender_count/` + +*Discover Gender Count* + +Return the count for every gender in the database. + +> Example responses + +> 200 Response + +```json +{ + "property1": 0, + "property2": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_cancer_type_count + + + +`GET /v2/discovery/overview/cancer_type_count/` + +*Discover Cancer Type Count* + +Return the count for every cancer type in the database. + +> Example responses + +> 200 Response + +```json +{ + "property1": 0, + "property2": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_treatment_type_count + + + +`GET /v2/discovery/overview/treatment_type_count/` + +*Discover Treatment Type Count* + +Return the count for every treatment type in the database. + +> Example responses + +> 200 Response + +```json +{ + "property1": 0, + "property2": 0 +} +``` + +## chord_metadata_service_mohpackets_apis_discovery_discover_diagnosis_age_count + + + +`GET /v2/discovery/overview/diagnosis_age_count/` + +*Discover Diagnosis Age Count* + +Return the count for age of diagnosis in the database. +If there are multiple date_of_diagnosis, get the earliest + +> Example responses + +> 200 Response + +```json +{ + "property1": 0, + "property2": 0 +} +``` + +# Schemas + +

ProgramModelSchema

+ + + + + + +```json +{ + "program_id": "string", + "metadata": {}, + "created": "2019-08-24T14:15:22Z", + "updated": "2019-08-24T14:15:22Z" +} + +``` + +ProgramModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|metadata|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|object|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|created|string(date-time)|false|none|none| +|updated|string(date-time)|false|none|none| + +

DonorIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "submitter_donor_id": "string", + "gender": "string", + "sex_at_birth": "string", + "is_deceased": true, + "lost_to_followup_after_clinical_event_identifier": "string", + "lost_to_followup_reason": "string", + "date_alive_after_lost_to_followup": "string", + "cause_of_death": "string", + "date_of_birth": "string", + "date_of_death": "string", + "primary_site": [ + null + ] +} + +``` + +DonorIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|string|true|none|none| +|gender|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|sex_at_birth|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|is_deceased|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|boolean|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lost_to_followup_after_clinical_event_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lost_to_followup_reason|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_alive_after_lost_to_followup|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|cause_of_death|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_birth|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_death|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|primary_site|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

BiomarkerIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "submitter_donor_id": "string", + "submitter_specimen_id": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_treatment_id": "string", + "submitter_follow_up_id": "string", + "test_date": "string", + "psa_level": 0, + "ca125": 0, + "cea": 0, + "er_status": "string", + "er_percent_positive": 0, + "pr_status": "string", + "pr_percent_positive": 0, + "her2_ihc_status": "string", + "her2_ish_status": "string", + "hpv_ihc_status": "string", + "hpv_pcr_status": "string", + "hpv_strain": [ + null + ] +} + +``` + +BiomarkerIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|string|true|none|none| +|submitter_specimen_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_primary_diagnosis_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_follow_up_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|test_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|psa_level|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|ca125|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|cea|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|er_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|er_percent_positive|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|number|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pr_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pr_percent_positive|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|number|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|her2_ihc_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|her2_ish_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hpv_ihc_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hpv_pcr_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hpv_strain|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ChemotherapyIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "chemotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 +} + +``` + +ChemotherapyIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|string|true|none|none| +|submitter_treatment_id|string|true|none|none| +|drug_reference_database|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_name|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|chemotherapy_drug_dose_units|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prescribed_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|actual_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ComorbidityIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "submitter_donor_id": "string", + "prior_malignancy": "string", + "laterality_of_prior_malignancy": "string", + "age_at_comorbidity_diagnosis": 0, + "comorbidity_type_code": "string", + "comorbidity_treatment_status": "string", + "comorbidity_treatment": "string" +} + +``` + +ComorbidityIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|string|true|none|none| +|prior_malignancy|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|laterality_of_prior_malignancy|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|age_at_comorbidity_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|comorbidity_type_code|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|comorbidity_treatment_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|comorbidity_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ExposureIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "submitter_donor_id": "string", + "tobacco_smoking_status": "string", + "tobacco_type": [ + null + ], + "pack_years_smoked": 0 +} + +``` + +ExposureIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|string|true|none|none| +|tobacco_smoking_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tobacco_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pack_years_smoked|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|number|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

FollowUpIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "treatment_uuid_id": "4bc59108-57b8-4a2c-8af7-388e0b2e5e0b", + "primary_diagnosis_uuid_id": "ba89c3f7-52e0-44a8-83f8-a180c68404f8", + "submitter_follow_up_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_treatment_id": "string", + "date_of_followup": "string", + "disease_status_at_followup": "string", + "relapse_type": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + null + ], + "anatomic_site_progression_or_recurrence": [ + null + ], + "recurrence_tumour_staging_system": "string", + "recurrence_t_category": "string", + "recurrence_n_category": "string", + "recurrence_m_category": "string", + "recurrence_stage_group": "string" +} + +``` + +FollowUpIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_uuid_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string(uuid)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|primary_diagnosis_uuid_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string(uuid)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_follow_up_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_primary_diagnosis_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_followup|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|disease_status_at_followup|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|relapse_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_relapse|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|method_of_progression_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|anatomic_site_progression_or_recurrence|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_tumour_staging_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_t_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_n_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_m_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_stage_group|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

HormoneTherapyIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "hormone_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 +} + +``` + +HormoneTherapyIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|string|true|none|none| +|submitter_treatment_id|string|true|none|none| +|drug_reference_database|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_name|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hormone_drug_dose_units|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prescribed_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|actual_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ImmunotherapyIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_reference_database": "string", + "immunotherapy_type": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "immunotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 +} + +``` + +ImmunotherapyIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|string|true|none|none| +|submitter_treatment_id|string|true|none|none| +|drug_reference_database|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|immunotherapy_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_name|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|immunotherapy_drug_dose_units|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prescribed_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|actual_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

PrimaryDiagnosisIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_donor_id": "string", + "date_of_diagnosis": "string", + "cancer_type_code": "string", + "basis_of_diagnosis": "string", + "laterality": "string", + "lymph_nodes_examined_status": "string", + "lymph_nodes_examined_method": "string", + "number_lymph_nodes_positive": 0, + "clinical_tumour_staging_system": "string", + "clinical_t_category": "string", + "clinical_n_category": "string", + "clinical_m_category": "string", + "clinical_stage_group": "string" +} + +``` + +PrimaryDiagnosisIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_primary_diagnosis_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|cancer_type_code|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|basis_of_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|laterality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lymph_nodes_examined_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lymph_nodes_examined_method|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|number_lymph_nodes_positive|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_tumour_staging_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_t_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_n_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_m_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_stage_group|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

RadiationIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "radiation_therapy_modality": "string", + "radiation_therapy_type": "string", + "radiation_therapy_fractions": 0, + "radiation_therapy_dosage": 0, + "anatomical_site_irradiated": "string", + "radiation_boost": true, + "reference_radiation_treatment_id": "string" +} + +``` + +RadiationIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|string|true|none|none| +|submitter_treatment_id|string|true|none|none| +|radiation_therapy_modality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_fractions|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_dosage|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|anatomical_site_irradiated|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_boost|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|boolean|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|reference_radiation_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

SampleRegistrationIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "submitter_sample_id": "string", + "submitter_donor_id": "string", + "submitter_specimen_id": "string", + "specimen_tissue_source": "string", + "tumour_normal_designation": "string", + "specimen_type": "string", + "sample_type": "string" +} + +``` + +SampleRegistrationIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_sample_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_specimen_id|string|true|none|none| +|specimen_tissue_source|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_normal_designation|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|sample_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

SpecimenIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "submitter_specimen_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string", + "pathological_tumour_staging_system": "string", + "pathological_t_category": "string", + "pathological_n_category": "string", + "pathological_m_category": "string", + "pathological_stage_group": "string", + "specimen_collection_date": "string", + "specimen_storage": "string", + "specimen_processing": "string", + "tumour_histological_type": "string", + "specimen_anatomic_location": "string", + "specimen_laterality": "string", + "reference_pathology_confirmed_diagnosis": "string", + "reference_pathology_confirmed_tumour_presence": "string", + "tumour_grading_system": "string", + "tumour_grade": "string", + "percent_tumour_cells_range": "string", + "percent_tumour_cells_measurement_method": "string" +} + +``` + +SpecimenIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_specimen_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_primary_diagnosis_id|string|true|none|none| +|pathological_tumour_staging_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_t_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_n_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_m_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_stage_group|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_collection_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_storage|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_processing|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_histological_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_anatomic_location|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_laterality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|reference_pathology_confirmed_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|reference_pathology_confirmed_tumour_presence|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_grading_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_grade|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|percent_tumour_cells_range|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|percent_tumour_cells_measurement_method|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

SurgeryIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "submitter_specimen_id": "string", + "surgery_type": "string", + "surgery_site": "string", + "surgery_location": "string", + "tumour_length": 0, + "tumour_width": 0, + "greatest_dimension_tumour": 0, + "tumour_focality": "string", + "residual_tumour_classification": "string", + "margin_types_involved": [ + null + ], + "margin_types_not_involved": [ + null + ], + "margin_types_not_assessed": [ + null + ], + "lymphovascular_invasion": "string", + "perineural_invasion": "string" +} + +``` + +SurgeryIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|string|true|none|none| +|submitter_treatment_id|string|true|none|none| +|submitter_specimen_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|surgery_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|surgery_site|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|surgery_location|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_length|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_width|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|greatest_dimension_tumour|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_focality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|residual_tumour_classification|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|margin_types_involved|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|margin_types_not_involved|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|margin_types_not_assessed|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lymphovascular_invasion|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|perineural_invasion|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

TreatmentIngestSchema

+ + + + + + +```json +{ + "program_id": "string", + "uuid": "string", + "submitter_treatment_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string", + "treatment_type": [ + null + ], + "is_primary_treatment": "string", + "line_of_treatment": 0, + "treatment_start_date": "string", + "treatment_end_date": "string", + "treatment_setting": "string", + "treatment_intent": "string", + "days_per_cycle": 0, + "number_of_cycles": 0, + "response_to_treatment_criteria_method": "string", + "response_to_treatment": "string", + "status_of_treatment": "string" +} + +``` + +TreatmentIngestSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_primary_diagnosis_id|string|true|none|none| +|treatment_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|is_primary_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|line_of_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_start_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_end_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_setting|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_intent|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|days_per_cycle|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|number_of_cycles|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|response_to_treatment_criteria_method|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|response_to_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|status_of_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

DonorWithClinicalDataSchema

+ + + + + + +```json +{ + "primary_diagnoses": [ + { + "specimens": [ + { + "sample_registrations": [ + { + "submitter_sample_id": "string", + "specimen_tissue_source": "string", + "tumour_normal_designation": "string", + "specimen_type": "string", + "sample_type": "string" + } + ], + "submitter_specimen_id": "string", + "pathological_tumour_staging_system": "string", + "pathological_t_category": "string", + "pathological_n_category": "string", + "pathological_m_category": "string", + "pathological_stage_group": "string", + "specimen_collection_date": "string", + "specimen_storage": "string", + "specimen_processing": "string", + "tumour_histological_type": "string", + "specimen_anatomic_location": "string", + "specimen_laterality": "string", + "reference_pathology_confirmed_diagnosis": "string", + "reference_pathology_confirmed_tumour_presence": "string", + "tumour_grading_system": "string", + "tumour_grade": "string", + "percent_tumour_cells_range": "string", + "percent_tumour_cells_measurement_method": "string" + } + ], + "treatments": [ + { + "chemotherapies": [ + { + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "chemotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "immunotherapies": [ + { + "drug_reference_database": "string", + "immunotherapy_type": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "immunotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "hormone_therapies": [ + { + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "hormone_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "radiations": [ + { + "radiation_therapy_modality": "string", + "radiation_therapy_type": "string", + "radiation_therapy_fractions": 0, + "radiation_therapy_dosage": 0, + "anatomical_site_irradiated": "string", + "radiation_boost": true, + "reference_radiation_treatment_id": "string" + } + ], + "surgeries": [ + { + "submitter_specimen_id": "string", + "surgery_type": "string", + "surgery_site": "string", + "surgery_location": "string", + "tumour_length": 0, + "tumour_width": 0, + "greatest_dimension_tumour": 0, + "tumour_focality": "string", + "residual_tumour_classification": "string", + "margin_types_involved": [ + null + ], + "margin_types_not_involved": [ + null + ], + "margin_types_not_assessed": [ + null + ], + "lymphovascular_invasion": "string", + "perineural_invasion": "string" + } + ], + "followups": [ + { + "submitter_follow_up_id": "string", + "date_of_followup": "string", + "disease_status_at_followup": "string", + "relapse_type": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + null + ], + "anatomic_site_progression_or_recurrence": [ + null + ], + "recurrence_tumour_staging_system": "string", + "recurrence_t_category": "string", + "recurrence_n_category": "string", + "recurrence_m_category": "string", + "recurrence_stage_group": "string" + } + ], + "submitter_treatment_id": "string", + "treatment_type": [ + null + ], + "is_primary_treatment": "string", + "line_of_treatment": 0, + "treatment_start_date": "string", + "treatment_end_date": "string", + "treatment_setting": "string", + "treatment_intent": "string", + "days_per_cycle": 0, + "number_of_cycles": 0, + "response_to_treatment_criteria_method": "string", + "response_to_treatment": "string", + "status_of_treatment": "string" + } + ], + "followups": [ + { + "submitter_follow_up_id": "string", + "date_of_followup": "string", + "disease_status_at_followup": "string", + "relapse_type": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + null + ], + "anatomic_site_progression_or_recurrence": [ + null + ], + "recurrence_tumour_staging_system": "string", + "recurrence_t_category": "string", + "recurrence_n_category": "string", + "recurrence_m_category": "string", + "recurrence_stage_group": "string" + } + ], + "submitter_primary_diagnosis_id": "string", + "date_of_diagnosis": "string", + "cancer_type_code": "string", + "basis_of_diagnosis": "string", + "laterality": "string", + "lymph_nodes_examined_status": "string", + "lymph_nodes_examined_method": "string", + "number_lymph_nodes_positive": 0, + "clinical_tumour_staging_system": "string", + "clinical_t_category": "string", + "clinical_n_category": "string", + "clinical_m_category": "string", + "clinical_stage_group": "string" + } + ], + "followups": [ + { + "submitter_follow_up_id": "string", + "date_of_followup": "string", + "disease_status_at_followup": "string", + "relapse_type": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + null + ], + "anatomic_site_progression_or_recurrence": [ + null + ], + "recurrence_tumour_staging_system": "string", + "recurrence_t_category": "string", + "recurrence_n_category": "string", + "recurrence_m_category": "string", + "recurrence_stage_group": "string" + } + ], + "biomarkers": [ + { + "submitter_specimen_id": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_treatment_id": "string", + "submitter_follow_up_id": "string", + "test_date": "string", + "psa_level": 0, + "ca125": 0, + "cea": 0, + "er_status": "string", + "er_percent_positive": 0, + "pr_status": "string", + "pr_percent_positive": 0, + "her2_ihc_status": "string", + "her2_ish_status": "string", + "hpv_ihc_status": "string", + "hpv_pcr_status": "string", + "hpv_strain": [ + null + ] + } + ], + "exposures": [ + { + "tobacco_smoking_status": "string", + "tobacco_type": [ + null + ], + "pack_years_smoked": 0 + } + ], + "comorbidities": [ + { + "prior_malignancy": "string", + "laterality_of_prior_malignancy": "string", + "age_at_comorbidity_diagnosis": 0, + "comorbidity_type_code": "string", + "comorbidity_treatment_status": "string", + "comorbidity_treatment": "string" + } + ], + "submitter_donor_id": "string", + "program_id": "string", + "gender": "string", + "sex_at_birth": "string", + "is_deceased": true, + "lost_to_followup_after_clinical_event_identifier": "string", + "lost_to_followup_reason": "string", + "date_alive_after_lost_to_followup": "string", + "cause_of_death": "string", + "date_of_birth": "string", + "date_of_death": "string", + "primary_site": [ + null + ] +} + +``` + +DonorWithClinicalDataSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|primary_diagnoses|[[NestedPrimaryDiagnosisSchema](#schemanestedprimarydiagnosisschema)]|false|none|none| +|followups|[[NestedFollowUpSchema](#schemanestedfollowupschema)]|false|none|none| +|biomarkers|[[NestedBiomarkerSchema](#schemanestedbiomarkerschema)]|false|none|none| +|exposures|[[NestedExposureSchema](#schemanestedexposureschema)]|false|none|none| +|comorbidities|[[NestedComorbiditySchema](#schemanestedcomorbidityschema)]|false|none|none| +|submitter_donor_id|string|true|none|none| +|program_id|string|true|none|none| +|gender|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|sex_at_birth|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|is_deceased|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|boolean|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lost_to_followup_after_clinical_event_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lost_to_followup_reason|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_alive_after_lost_to_followup|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|cause_of_death|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_birth|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_death|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|primary_site|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

NestedBiomarkerSchema

+ + + + + + +```json +{ + "submitter_specimen_id": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_treatment_id": "string", + "submitter_follow_up_id": "string", + "test_date": "string", + "psa_level": 0, + "ca125": 0, + "cea": 0, + "er_status": "string", + "er_percent_positive": 0, + "pr_status": "string", + "pr_percent_positive": 0, + "her2_ihc_status": "string", + "her2_ish_status": "string", + "hpv_ihc_status": "string", + "hpv_pcr_status": "string", + "hpv_strain": [ + null + ] +} + +``` + +NestedBiomarkerSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_specimen_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_primary_diagnosis_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_follow_up_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|test_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|psa_level|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|ca125|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|cea|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|er_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|er_percent_positive|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|number|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pr_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pr_percent_positive|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|number|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|her2_ihc_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|her2_ish_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hpv_ihc_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hpv_pcr_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hpv_strain|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

NestedChemotherapySchema

+ + + + + + +```json +{ + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "chemotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 +} + +``` + +NestedChemotherapySchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_database|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_name|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|chemotherapy_drug_dose_units|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prescribed_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|actual_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

NestedComorbiditySchema

+ + + + + + +```json +{ + "prior_malignancy": "string", + "laterality_of_prior_malignancy": "string", + "age_at_comorbidity_diagnosis": 0, + "comorbidity_type_code": "string", + "comorbidity_treatment_status": "string", + "comorbidity_treatment": "string" +} + +``` + +NestedComorbiditySchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prior_malignancy|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|laterality_of_prior_malignancy|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|age_at_comorbidity_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|comorbidity_type_code|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|comorbidity_treatment_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|comorbidity_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

NestedExposureSchema

+ + + + + + +```json +{ + "tobacco_smoking_status": "string", + "tobacco_type": [ + null + ], + "pack_years_smoked": 0 +} + +``` + +NestedExposureSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tobacco_smoking_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tobacco_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pack_years_smoked|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|number|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

NestedFollowUpSchema

+ + + + + + +```json +{ + "submitter_follow_up_id": "string", + "date_of_followup": "string", + "disease_status_at_followup": "string", + "relapse_type": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + null + ], + "anatomic_site_progression_or_recurrence": [ + null + ], + "recurrence_tumour_staging_system": "string", + "recurrence_t_category": "string", + "recurrence_n_category": "string", + "recurrence_m_category": "string", + "recurrence_stage_group": "string" +} + +``` + +NestedFollowUpSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_follow_up_id|string|true|none|none| +|date_of_followup|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|disease_status_at_followup|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|relapse_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_relapse|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|method_of_progression_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|anatomic_site_progression_or_recurrence|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_tumour_staging_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_t_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_n_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_m_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_stage_group|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

NestedHormoneTherapySchema

+ + + + + + +```json +{ + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "hormone_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 +} + +``` + +NestedHormoneTherapySchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_database|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_name|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hormone_drug_dose_units|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prescribed_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|actual_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

NestedImmunotherapySchema

+ + + + + + +```json +{ + "drug_reference_database": "string", + "immunotherapy_type": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "immunotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 +} + +``` + +NestedImmunotherapySchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_database|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|immunotherapy_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_name|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|immunotherapy_drug_dose_units|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prescribed_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|actual_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

NestedPrimaryDiagnosisSchema

+ + + + + + +```json +{ + "specimens": [ + { + "sample_registrations": [ + { + "submitter_sample_id": "string", + "specimen_tissue_source": "string", + "tumour_normal_designation": "string", + "specimen_type": "string", + "sample_type": "string" + } + ], + "submitter_specimen_id": "string", + "pathological_tumour_staging_system": "string", + "pathological_t_category": "string", + "pathological_n_category": "string", + "pathological_m_category": "string", + "pathological_stage_group": "string", + "specimen_collection_date": "string", + "specimen_storage": "string", + "specimen_processing": "string", + "tumour_histological_type": "string", + "specimen_anatomic_location": "string", + "specimen_laterality": "string", + "reference_pathology_confirmed_diagnosis": "string", + "reference_pathology_confirmed_tumour_presence": "string", + "tumour_grading_system": "string", + "tumour_grade": "string", + "percent_tumour_cells_range": "string", + "percent_tumour_cells_measurement_method": "string" + } + ], + "treatments": [ + { + "chemotherapies": [ + { + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "chemotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "immunotherapies": [ + { + "drug_reference_database": "string", + "immunotherapy_type": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "immunotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "hormone_therapies": [ + { + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "hormone_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "radiations": [ + { + "radiation_therapy_modality": "string", + "radiation_therapy_type": "string", + "radiation_therapy_fractions": 0, + "radiation_therapy_dosage": 0, + "anatomical_site_irradiated": "string", + "radiation_boost": true, + "reference_radiation_treatment_id": "string" + } + ], + "surgeries": [ + { + "submitter_specimen_id": "string", + "surgery_type": "string", + "surgery_site": "string", + "surgery_location": "string", + "tumour_length": 0, + "tumour_width": 0, + "greatest_dimension_tumour": 0, + "tumour_focality": "string", + "residual_tumour_classification": "string", + "margin_types_involved": [ + null + ], + "margin_types_not_involved": [ + null + ], + "margin_types_not_assessed": [ + null + ], + "lymphovascular_invasion": "string", + "perineural_invasion": "string" + } + ], + "followups": [ + { + "submitter_follow_up_id": "string", + "date_of_followup": "string", + "disease_status_at_followup": "string", + "relapse_type": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + null + ], + "anatomic_site_progression_or_recurrence": [ + null + ], + "recurrence_tumour_staging_system": "string", + "recurrence_t_category": "string", + "recurrence_n_category": "string", + "recurrence_m_category": "string", + "recurrence_stage_group": "string" + } + ], + "submitter_treatment_id": "string", + "treatment_type": [ + null + ], + "is_primary_treatment": "string", + "line_of_treatment": 0, + "treatment_start_date": "string", + "treatment_end_date": "string", + "treatment_setting": "string", + "treatment_intent": "string", + "days_per_cycle": 0, + "number_of_cycles": 0, + "response_to_treatment_criteria_method": "string", + "response_to_treatment": "string", + "status_of_treatment": "string" + } + ], + "followups": [ + { + "submitter_follow_up_id": "string", + "date_of_followup": "string", + "disease_status_at_followup": "string", + "relapse_type": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + null + ], + "anatomic_site_progression_or_recurrence": [ + null + ], + "recurrence_tumour_staging_system": "string", + "recurrence_t_category": "string", + "recurrence_n_category": "string", + "recurrence_m_category": "string", + "recurrence_stage_group": "string" + } + ], + "submitter_primary_diagnosis_id": "string", + "date_of_diagnosis": "string", + "cancer_type_code": "string", + "basis_of_diagnosis": "string", + "laterality": "string", + "lymph_nodes_examined_status": "string", + "lymph_nodes_examined_method": "string", + "number_lymph_nodes_positive": 0, + "clinical_tumour_staging_system": "string", + "clinical_t_category": "string", + "clinical_n_category": "string", + "clinical_m_category": "string", + "clinical_stage_group": "string" +} + +``` + +NestedPrimaryDiagnosisSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimens|[[NestedSpecimenSchema](#schemanestedspecimenschema)]|false|none|none| +|treatments|[[NestedTreatmentSchema](#schemanestedtreatmentschema)]|false|none|none| +|followups|[[NestedFollowUpSchema](#schemanestedfollowupschema)]|false|none|none| +|submitter_primary_diagnosis_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|cancer_type_code|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|basis_of_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|laterality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lymph_nodes_examined_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lymph_nodes_examined_method|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|number_lymph_nodes_positive|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_tumour_staging_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_t_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_n_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_m_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_stage_group|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

NestedRadiationSchema

+ + + + + + +```json +{ + "radiation_therapy_modality": "string", + "radiation_therapy_type": "string", + "radiation_therapy_fractions": 0, + "radiation_therapy_dosage": 0, + "anatomical_site_irradiated": "string", + "radiation_boost": true, + "reference_radiation_treatment_id": "string" +} + +``` + +NestedRadiationSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_modality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_fractions|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_dosage|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|anatomical_site_irradiated|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_boost|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|boolean|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|reference_radiation_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

NestedSampleRegistrationSchema

+ + + + + + +```json +{ + "submitter_sample_id": "string", + "specimen_tissue_source": "string", + "tumour_normal_designation": "string", + "specimen_type": "string", + "sample_type": "string" +} + +``` + +NestedSampleRegistrationSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_sample_id|string|true|none|none| +|specimen_tissue_source|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_normal_designation|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|sample_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

NestedSpecimenSchema

+ + + + + + +```json +{ + "sample_registrations": [ + { + "submitter_sample_id": "string", + "specimen_tissue_source": "string", + "tumour_normal_designation": "string", + "specimen_type": "string", + "sample_type": "string" + } + ], + "submitter_specimen_id": "string", + "pathological_tumour_staging_system": "string", + "pathological_t_category": "string", + "pathological_n_category": "string", + "pathological_m_category": "string", + "pathological_stage_group": "string", + "specimen_collection_date": "string", + "specimen_storage": "string", + "specimen_processing": "string", + "tumour_histological_type": "string", + "specimen_anatomic_location": "string", + "specimen_laterality": "string", + "reference_pathology_confirmed_diagnosis": "string", + "reference_pathology_confirmed_tumour_presence": "string", + "tumour_grading_system": "string", + "tumour_grade": "string", + "percent_tumour_cells_range": "string", + "percent_tumour_cells_measurement_method": "string" +} + +``` + +NestedSpecimenSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|sample_registrations|[[NestedSampleRegistrationSchema](#schemanestedsampleregistrationschema)]|false|none|none| +|submitter_specimen_id|string|true|none|none| +|pathological_tumour_staging_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_t_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_n_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_m_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_stage_group|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_collection_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_storage|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_processing|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_histological_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_anatomic_location|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_laterality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|reference_pathology_confirmed_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|reference_pathology_confirmed_tumour_presence|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_grading_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_grade|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|percent_tumour_cells_range|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|percent_tumour_cells_measurement_method|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

NestedSurgerySchema

+ + + + + + +```json +{ + "submitter_specimen_id": "string", + "surgery_type": "string", + "surgery_site": "string", + "surgery_location": "string", + "tumour_length": 0, + "tumour_width": 0, + "greatest_dimension_tumour": 0, + "tumour_focality": "string", + "residual_tumour_classification": "string", + "margin_types_involved": [ + null + ], + "margin_types_not_involved": [ + null + ], + "margin_types_not_assessed": [ + null + ], + "lymphovascular_invasion": "string", + "perineural_invasion": "string" +} + +``` + +NestedSurgerySchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_specimen_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|surgery_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|surgery_site|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|surgery_location|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_length|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_width|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|greatest_dimension_tumour|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_focality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|residual_tumour_classification|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|margin_types_involved|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|margin_types_not_involved|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|margin_types_not_assessed|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lymphovascular_invasion|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|perineural_invasion|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

NestedTreatmentSchema

+ + + + + + +```json +{ + "chemotherapies": [ + { + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "chemotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "immunotherapies": [ + { + "drug_reference_database": "string", + "immunotherapy_type": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "immunotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "hormone_therapies": [ + { + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "hormone_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "radiations": [ + { + "radiation_therapy_modality": "string", + "radiation_therapy_type": "string", + "radiation_therapy_fractions": 0, + "radiation_therapy_dosage": 0, + "anatomical_site_irradiated": "string", + "radiation_boost": true, + "reference_radiation_treatment_id": "string" + } + ], + "surgeries": [ + { + "submitter_specimen_id": "string", + "surgery_type": "string", + "surgery_site": "string", + "surgery_location": "string", + "tumour_length": 0, + "tumour_width": 0, + "greatest_dimension_tumour": 0, + "tumour_focality": "string", + "residual_tumour_classification": "string", + "margin_types_involved": [ + null + ], + "margin_types_not_involved": [ + null + ], + "margin_types_not_assessed": [ + null + ], + "lymphovascular_invasion": "string", + "perineural_invasion": "string" + } + ], + "followups": [ + { + "submitter_follow_up_id": "string", + "date_of_followup": "string", + "disease_status_at_followup": "string", + "relapse_type": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + null + ], + "anatomic_site_progression_or_recurrence": [ + null + ], + "recurrence_tumour_staging_system": "string", + "recurrence_t_category": "string", + "recurrence_n_category": "string", + "recurrence_m_category": "string", + "recurrence_stage_group": "string" + } + ], + "submitter_treatment_id": "string", + "treatment_type": [ + null + ], + "is_primary_treatment": "string", + "line_of_treatment": 0, + "treatment_start_date": "string", + "treatment_end_date": "string", + "treatment_setting": "string", + "treatment_intent": "string", + "days_per_cycle": 0, + "number_of_cycles": 0, + "response_to_treatment_criteria_method": "string", + "response_to_treatment": "string", + "status_of_treatment": "string" +} + +``` + +NestedTreatmentSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|chemotherapies|[[NestedChemotherapySchema](#schemanestedchemotherapyschema)]|false|none|none| +|immunotherapies|[[NestedImmunotherapySchema](#schemanestedimmunotherapyschema)]|false|none|none| +|hormone_therapies|[[NestedHormoneTherapySchema](#schemanestedhormonetherapyschema)]|false|none|none| +|radiations|[[NestedRadiationSchema](#schemanestedradiationschema)]|false|none|none| +|surgeries|[[NestedSurgerySchema](#schemanestedsurgeryschema)]|false|none|none| +|followups|[[NestedFollowUpSchema](#schemanestedfollowupschema)]|false|none|none| +|submitter_treatment_id|string|true|none|none| +|treatment_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[any]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|is_primary_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|line_of_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_start_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_end_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_setting|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_intent|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|days_per_cycle|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|number_of_cycles|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|response_to_treatment_criteria_method|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|response_to_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|status_of_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

Input

+ + + + + + +```json +{ + "page": 1, + "page_size": 1 +} + +``` + +Input + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|page|integer|false|none|none| +|page_size|integer|false|none|none| + +

ProgramFilterSchema

+ + + + + + +```json +{ + "program_id": "string" +} + +``` + +ProgramFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

PagedProgramModelSchema

+ + + + + + +```json +{ + "items": [ + { + "program_id": "string", + "metadata": {}, + "created": "2019-08-24T14:15:22Z", + "updated": "2019-08-24T14:15:22Z" + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedProgramModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[ProgramModelSchema](#schemaprogrammodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

DonorFilterSchema

+ + + + + + +```json +{ + "submitter_donor_id": "string", + "program_id": "string", + "gender": "string", + "sex_at_birth": "string", + "is_deceased": true, + "lost_to_followup_after_clinical_event_identifier": "string", + "lost_to_followup_reason": "string", + "date_alive_after_lost_to_followup": "string", + "cause_of_death": "string", + "date_of_birth": "string", + "date_of_death": "string", + "primary_site": [ + "string" + ] +} + +``` + +DonorFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|gender|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|sex_at_birth|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|is_deceased|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|boolean|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lost_to_followup_after_clinical_event_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lost_to_followup_reason|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_alive_after_lost_to_followup|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|cause_of_death|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_birth|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_death|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|primary_site|[string]|false|none|none| + +

CauseOfDeathEnum

+ + + + + + +```json +"Died of cancer" + +``` + +CauseOfDeathEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|CauseOfDeathEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|CauseOfDeathEnum|Died of cancer| +|CauseOfDeathEnum|Died of other reasons| +|CauseOfDeathEnum|Unknown| + +

DonorModelSchema

+ + + + + + +```json +{ + "cause_of_death": "Died of cancer", + "submitter_donor_id": "string", + "date_of_birth": "string", + "date_of_death": "string", + "primary_site": [ + "Accessory sinuses" + ], + "gender": "Man", + "sex_at_birth": "Male", + "lost_to_followup_reason": "Completed study", + "date_alive_after_lost_to_followup": "string", + "program_id": "string", + "is_deceased": true, + "lost_to_followup_after_clinical_event_identifier": "string" +} + +``` + +DonorModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|cause_of_death|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[CauseOfDeathEnum](#schemacauseofdeathenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|string|true|none|none| +|date_of_birth|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_death|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|primary_site|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[[PrimarySiteEnum](#schemaprimarysiteenum)]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|gender|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[GenderEnum](#schemagenderenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|sex_at_birth|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[SexAtBirthEnum](#schemasexatbirthenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lost_to_followup_reason|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[LostToFollowupReasonEnum](#schemalosttofollowupreasonenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_alive_after_lost_to_followup|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|is_deceased|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|boolean|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lost_to_followup_after_clinical_event_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

GenderEnum

+ + + + + + +```json +"Man" + +``` + +GenderEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|GenderEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|GenderEnum|Man| +|GenderEnum|Woman| +|GenderEnum|Non-binary| + +

LostToFollowupReasonEnum

+ + + + + + +```json +"Completed study" + +``` + +LostToFollowupReasonEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|LostToFollowupReasonEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|LostToFollowupReasonEnum|Completed study| +|LostToFollowupReasonEnum|Discharged to palliative care| +|LostToFollowupReasonEnum|Lost contact| +|LostToFollowupReasonEnum|Not applicable| +|LostToFollowupReasonEnum|Unknown| +|LostToFollowupReasonEnum|Withdrew from study| + +

PagedDonorModelSchema

+ + + + + + +```json +{ + "items": [ + { + "cause_of_death": "Died of cancer", + "submitter_donor_id": "string", + "date_of_birth": "string", + "date_of_death": "string", + "primary_site": [ + "Accessory sinuses" + ], + "gender": "Man", + "sex_at_birth": "Male", + "lost_to_followup_reason": "Completed study", + "date_alive_after_lost_to_followup": "string", + "program_id": "string", + "is_deceased": true, + "lost_to_followup_after_clinical_event_identifier": "string" + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedDonorModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[DonorModelSchema](#schemadonormodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

PrimarySiteEnum

+ + + + + + +```json +"Accessory sinuses" + +``` + +PrimarySiteEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|PrimarySiteEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|PrimarySiteEnum|Accessory sinuses| +|PrimarySiteEnum|Adrenal gland| +|PrimarySiteEnum|Anus and anal canal| +|PrimarySiteEnum|Base of tongue| +|PrimarySiteEnum|Bladder| +|PrimarySiteEnum|Bones, joints and articular cartilage of limbs| +|PrimarySiteEnum|Bones, joints and articular cartilage of other and unspecified sites| +|PrimarySiteEnum|Brain| +|PrimarySiteEnum|Breast| +|PrimarySiteEnum|Bronchus and lung| +|PrimarySiteEnum|Cervix uteri| +|PrimarySiteEnum|Colon| +|PrimarySiteEnum|Connective, subcutaneous and other soft tissues| +|PrimarySiteEnum|Corpus uteri| +|PrimarySiteEnum|Esophagus| +|PrimarySiteEnum|Eye and adnexa| +|PrimarySiteEnum|Floor of mouth| +|PrimarySiteEnum|Gallbladder| +|PrimarySiteEnum|Gum| +|PrimarySiteEnum|Heart, mediastinum, and pleura| +|PrimarySiteEnum|Hematopoietic and reticuloendothelial systems| +|PrimarySiteEnum|Hypopharynx| +|PrimarySiteEnum|Kidney| +|PrimarySiteEnum|Larynx| +|PrimarySiteEnum|Lip| +|PrimarySiteEnum|Liver and intrahepatic bile ducts| +|PrimarySiteEnum|Lymph nodes| +|PrimarySiteEnum|Meninges| +|PrimarySiteEnum|Nasal cavity and middle ear| +|PrimarySiteEnum|Nasopharynx| +|PrimarySiteEnum|Oropharynx| +|PrimarySiteEnum|Other and ill-defined digestive organs| +|PrimarySiteEnum|Other and ill-defined sites| +|PrimarySiteEnum|Other and ill-defined sites in lip, oral cavity and pharynx| +|PrimarySiteEnum|Other and ill-defined sites within respiratory system and intrathoracic organs| +|PrimarySiteEnum|Other and unspecified female genital organs| +|PrimarySiteEnum|Other and unspecified major salivary glands| +|PrimarySiteEnum|Other and unspecified male genital organs| +|PrimarySiteEnum|Other and unspecified parts of biliary tract| +|PrimarySiteEnum|Other and unspecified parts of mouth| +|PrimarySiteEnum|Other and unspecified parts of tongue| +|PrimarySiteEnum|Other and unspecified urinary organs| +|PrimarySiteEnum|Other endocrine glands and related structures| +|PrimarySiteEnum|Ovary| +|PrimarySiteEnum|Palate| +|PrimarySiteEnum|Pancreas| +|PrimarySiteEnum|Parotid gland| +|PrimarySiteEnum|Penis| +|PrimarySiteEnum|Peripheral nerves and autonomic nervous system| +|PrimarySiteEnum|Placenta| +|PrimarySiteEnum|Prostate gland| +|PrimarySiteEnum|Pyriform sinus| +|PrimarySiteEnum|Rectosigmoid junction| +|PrimarySiteEnum|Rectum| +|PrimarySiteEnum|Renal pelvis| +|PrimarySiteEnum|Retroperitoneum and peritoneum| +|PrimarySiteEnum|Skin| +|PrimarySiteEnum|Small intestine| +|PrimarySiteEnum|Spinal cord, cranial nerves, and other parts of central nervous system| +|PrimarySiteEnum|Stomach| +|PrimarySiteEnum|Testis| +|PrimarySiteEnum|Thymus| +|PrimarySiteEnum|Thyroid gland| +|PrimarySiteEnum|Tonsil| +|PrimarySiteEnum|Trachea| +|PrimarySiteEnum|Ureter| +|PrimarySiteEnum|Uterus, NOS| +|PrimarySiteEnum|Vagina| +|PrimarySiteEnum|Vulva| +|PrimarySiteEnum|Unknown primary site| + +

SexAtBirthEnum

+ + + + + + +```json +"Male" + +``` + +SexAtBirthEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|SexAtBirthEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|SexAtBirthEnum|Male| +|SexAtBirthEnum|Female| +|SexAtBirthEnum|Other| +|SexAtBirthEnum|Unknown| + +

PrimaryDiagnosisFilterSchema

+ + + + + + +```json +{ + "submitter_primary_diagnosis_id": "string", + "program_id": "string", + "submitter_donor_id": "string", + "date_of_diagnosis": "string", + "cancer_type_code": "string", + "basis_of_diagnosis": "string", + "laterality": "string", + "lymph_nodes_examined_status": "string", + "lymph_nodes_examined_method": "string", + "number_lymph_nodes_positive": 0, + "clinical_tumour_staging_system": "string", + "clinical_t_category": "string", + "clinical_n_category": "string", + "clinical_m_category": "string", + "clinical_stage_group": "string" +} + +``` + +PrimaryDiagnosisFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_primary_diagnosis_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|cancer_type_code|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|basis_of_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|laterality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lymph_nodes_examined_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lymph_nodes_examined_method|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|number_lymph_nodes_positive|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_tumour_staging_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_t_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_n_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_m_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_stage_group|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

BasisOfDiagnosisEnum

+ + + + + + +```json +"Clinical investigation" + +``` + +BasisOfDiagnosisEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|BasisOfDiagnosisEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|BasisOfDiagnosisEnum|Clinical investigation| +|BasisOfDiagnosisEnum|Clinical| +|BasisOfDiagnosisEnum|Cytology| +|BasisOfDiagnosisEnum|Death certificate only| +|BasisOfDiagnosisEnum|Histology of a metastasis| +|BasisOfDiagnosisEnum|Histology of a primary tumour| +|BasisOfDiagnosisEnum|Specific tumour markers| +|BasisOfDiagnosisEnum|Unknown| + +

LymphNodeMethodEnum

+ + + + + + +```json +"Imaging" + +``` + +LymphNodeMethodEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|LymphNodeMethodEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|LymphNodeMethodEnum|Imaging| +|LymphNodeMethodEnum|Lymph node dissection/pathological exam| +|LymphNodeMethodEnum|Physical palpation of patient| + +

LymphNodeStatusEnum

+ + + + + + +```json +"Cannot be determined" + +``` + +LymphNodeStatusEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|LymphNodeStatusEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|LymphNodeStatusEnum|Cannot be determined| +|LymphNodeStatusEnum|No| +|LymphNodeStatusEnum|No lymph nodes found in resected specimen| +|LymphNodeStatusEnum|Not applicable| +|LymphNodeStatusEnum|Yes| + +

MCategoryEnum

+ + + + + + +```json +"M0" + +``` + +MCategoryEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|MCategoryEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|MCategoryEnum|M0| +|MCategoryEnum|M0(i+)| +|MCategoryEnum|M1| +|MCategoryEnum|M1a| +|MCategoryEnum|M1a(0)| +|MCategoryEnum|M1a(1)| +|MCategoryEnum|M1b| +|MCategoryEnum|M1b(0)| +|MCategoryEnum|M1b(1)| +|MCategoryEnum|M1c| +|MCategoryEnum|M1c(0)| +|MCategoryEnum|M1c(1)| +|MCategoryEnum|M1d| +|MCategoryEnum|M1d(0)| +|MCategoryEnum|M1d(1)| +|MCategoryEnum|M1e| +|MCategoryEnum|MX| + +

NCategoryEnum

+ + + + + + +```json +"N0" + +``` + +NCategoryEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|NCategoryEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|NCategoryEnum|N0| +|NCategoryEnum|N0a| +|NCategoryEnum|N0a (biopsy)| +|NCategoryEnum|N0b| +|NCategoryEnum|N0b (no biopsy)| +|NCategoryEnum|N0(i+)| +|NCategoryEnum|N0(i-)| +|NCategoryEnum|N0(mol+)| +|NCategoryEnum|N0(mol-)| +|NCategoryEnum|N1| +|NCategoryEnum|N1a| +|NCategoryEnum|N1a(sn)| +|NCategoryEnum|N1b| +|NCategoryEnum|N1c| +|NCategoryEnum|N1mi| +|NCategoryEnum|N2| +|NCategoryEnum|N2a| +|NCategoryEnum|N2b| +|NCategoryEnum|N2c| +|NCategoryEnum|N2mi| +|NCategoryEnum|N3| +|NCategoryEnum|N3a| +|NCategoryEnum|N3b| +|NCategoryEnum|N3c| +|NCategoryEnum|N4| +|NCategoryEnum|NX| + +

PagedPrimaryDiagnosisModelSchema

+ + + + + + +```json +{ + "items": [ + { + "submitter_primary_diagnosis_id": "string", + "date_of_diagnosis": "string", + "basis_of_diagnosis": "Clinical investigation", + "lymph_nodes_examined_status": "Cannot be determined", + "lymph_nodes_examined_method": "Imaging", + "clinical_tumour_staging_system": "AJCC 8th edition", + "clinical_t_category": "T0", + "clinical_n_category": "N0", + "clinical_m_category": "M0", + "clinical_stage_group": "Stage 0", + "laterality": "Bilateral", + "program_id": "string", + "submitter_donor_id": "string", + "cancer_type_code": "string", + "number_lymph_nodes_positive": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedPrimaryDiagnosisModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[PrimaryDiagnosisModelSchema](#schemaprimarydiagnosismodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

PrimaryDiagnosisLateralityEnum

+ + + + + + +```json +"Bilateral" + +``` + +PrimaryDiagnosisLateralityEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|PrimaryDiagnosisLateralityEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|PrimaryDiagnosisLateralityEnum|Bilateral| +|PrimaryDiagnosisLateralityEnum|Left| +|PrimaryDiagnosisLateralityEnum|Midline| +|PrimaryDiagnosisLateralityEnum|Not a paired site| +|PrimaryDiagnosisLateralityEnum|Right| +|PrimaryDiagnosisLateralityEnum|Unilateral, side not specified| +|PrimaryDiagnosisLateralityEnum|Unknown| + +

PrimaryDiagnosisModelSchema

+ + + + + + +```json +{ + "submitter_primary_diagnosis_id": "string", + "date_of_diagnosis": "string", + "basis_of_diagnosis": "Clinical investigation", + "lymph_nodes_examined_status": "Cannot be determined", + "lymph_nodes_examined_method": "Imaging", + "clinical_tumour_staging_system": "AJCC 8th edition", + "clinical_t_category": "T0", + "clinical_n_category": "N0", + "clinical_m_category": "M0", + "clinical_stage_group": "Stage 0", + "laterality": "Bilateral", + "program_id": "string", + "submitter_donor_id": "string", + "cancer_type_code": "string", + "number_lymph_nodes_positive": 0 +} + +``` + +PrimaryDiagnosisModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_primary_diagnosis_id|string|true|none|none| +|date_of_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|basis_of_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[BasisOfDiagnosisEnum](#schemabasisofdiagnosisenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lymph_nodes_examined_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[LymphNodeStatusEnum](#schemalymphnodestatusenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lymph_nodes_examined_method|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[LymphNodeMethodEnum](#schemalymphnodemethodenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_tumour_staging_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TumourStagingSystemEnum](#schematumourstagingsystemenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_t_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TCategoryEnum](#schematcategoryenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_n_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[NCategoryEnum](#schemancategoryenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_m_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[MCategoryEnum](#schemamcategoryenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|clinical_stage_group|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[StageGroupEnum](#schemastagegroupenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|laterality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[PrimaryDiagnosisLateralityEnum](#schemaprimarydiagnosislateralityenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|cancer_type_code|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|number_lymph_nodes_positive|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

StageGroupEnum

+ + + + + + +```json +"Stage 0" + +``` + +StageGroupEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|StageGroupEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|StageGroupEnum|Stage 0| +|StageGroupEnum|Stage 0a| +|StageGroupEnum|Stage 0is| +|StageGroupEnum|Stage 1| +|StageGroupEnum|Stage 1A| +|StageGroupEnum|Stage 1B| +|StageGroupEnum|Stage A| +|StageGroupEnum|Stage B| +|StageGroupEnum|Stage C| +|StageGroupEnum|Stage I| +|StageGroupEnum|Stage IA| +|StageGroupEnum|Stage IA1| +|StageGroupEnum|Stage IA2| +|StageGroupEnum|Stage IA3| +|StageGroupEnum|Stage IAB| +|StageGroupEnum|Stage IAE| +|StageGroupEnum|Stage IAES| +|StageGroupEnum|Stage IAS| +|StageGroupEnum|Stage IB| +|StageGroupEnum|Stage IB1| +|StageGroupEnum|Stage IB2| +|StageGroupEnum|Stage IBE| +|StageGroupEnum|Stage IBES| +|StageGroupEnum|Stage IBS| +|StageGroupEnum|Stage IC| +|StageGroupEnum|Stage IE| +|StageGroupEnum|Stage IEA| +|StageGroupEnum|Stage IEB| +|StageGroupEnum|Stage IES| +|StageGroupEnum|Stage II| +|StageGroupEnum|Stage II bulky| +|StageGroupEnum|Stage IIA| +|StageGroupEnum|Stage IIA1| +|StageGroupEnum|Stage IIA2| +|StageGroupEnum|Stage IIAE| +|StageGroupEnum|Stage IIAES| +|StageGroupEnum|Stage IIAS| +|StageGroupEnum|Stage IIB| +|StageGroupEnum|Stage IIBE| +|StageGroupEnum|Stage IIBES| +|StageGroupEnum|Stage IIBS| +|StageGroupEnum|Stage IIC| +|StageGroupEnum|Stage IIE| +|StageGroupEnum|Stage IIEA| +|StageGroupEnum|Stage IIEB| +|StageGroupEnum|Stage IIES| +|StageGroupEnum|Stage III| +|StageGroupEnum|Stage IIIA| +|StageGroupEnum|Stage IIIA1| +|StageGroupEnum|Stage IIIA2| +|StageGroupEnum|Stage IIIAE| +|StageGroupEnum|Stage IIIAES| +|StageGroupEnum|Stage IIIAS| +|StageGroupEnum|Stage IIIB| +|StageGroupEnum|Stage IIIBE| +|StageGroupEnum|Stage IIIBES| +|StageGroupEnum|Stage IIIBS| +|StageGroupEnum|Stage IIIC| +|StageGroupEnum|Stage IIIC1| +|StageGroupEnum|Stage IIIC2| +|StageGroupEnum|Stage IIID| +|StageGroupEnum|Stage IIIE| +|StageGroupEnum|Stage IIIES| +|StageGroupEnum|Stage IIIS| +|StageGroupEnum|Stage IIS| +|StageGroupEnum|Stage IS| +|StageGroupEnum|Stage IV| +|StageGroupEnum|Stage IVA| +|StageGroupEnum|Stage IVA1| +|StageGroupEnum|Stage IVA2| +|StageGroupEnum|Stage IVAE| +|StageGroupEnum|Stage IVAES| +|StageGroupEnum|Stage IVAS| +|StageGroupEnum|Stage IVB| +|StageGroupEnum|Stage IVBE| +|StageGroupEnum|Stage IVBES| +|StageGroupEnum|Stage IVBS| +|StageGroupEnum|Stage IVC| +|StageGroupEnum|Stage IVE| +|StageGroupEnum|Stage IVES| +|StageGroupEnum|Stage IVS| +|StageGroupEnum|In situ| +|StageGroupEnum|Localized| +|StageGroupEnum|Regionalized| +|StageGroupEnum|Distant| +|StageGroupEnum|Stage L1| +|StageGroupEnum|Stage L2| +|StageGroupEnum|Stage M| +|StageGroupEnum|Stage Ms| +|StageGroupEnum|Stage 2A| +|StageGroupEnum|Stage 2B| +|StageGroupEnum|Stage 3| +|StageGroupEnum|Stage 4| +|StageGroupEnum|Stage 4S| +|StageGroupEnum|Occult Carcinoma| + +

TCategoryEnum

+ + + + + + +```json +"T0" + +``` + +TCategoryEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TCategoryEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TCategoryEnum|T0| +|TCategoryEnum|T1| +|TCategoryEnum|T1a| +|TCategoryEnum|T1a1| +|TCategoryEnum|T1a2| +|TCategoryEnum|T1a(s)| +|TCategoryEnum|T1a(m)| +|TCategoryEnum|T1b| +|TCategoryEnum|T1b1| +|TCategoryEnum|T1b2| +|TCategoryEnum|T1b(s)| +|TCategoryEnum|T1b(m)| +|TCategoryEnum|T1c| +|TCategoryEnum|T1d| +|TCategoryEnum|T1mi| +|TCategoryEnum|T2| +|TCategoryEnum|T2(s)| +|TCategoryEnum|T2(m)| +|TCategoryEnum|T2a| +|TCategoryEnum|T2a1| +|TCategoryEnum|T2a2| +|TCategoryEnum|T2b| +|TCategoryEnum|T2c| +|TCategoryEnum|T2d| +|TCategoryEnum|T3| +|TCategoryEnum|T3(s)| +|TCategoryEnum|T3(m)| +|TCategoryEnum|T3a| +|TCategoryEnum|T3b| +|TCategoryEnum|T3c| +|TCategoryEnum|T3d| +|TCategoryEnum|T3e| +|TCategoryEnum|T4| +|TCategoryEnum|T4a| +|TCategoryEnum|T4a(s)| +|TCategoryEnum|T4a(m)| +|TCategoryEnum|T4b| +|TCategoryEnum|T4b(s)| +|TCategoryEnum|T4b(m)| +|TCategoryEnum|T4c| +|TCategoryEnum|T4d| +|TCategoryEnum|T4e| +|TCategoryEnum|Ta| +|TCategoryEnum|Tis| +|TCategoryEnum|Tis(DCIS)| +|TCategoryEnum|Tis(LAMN)| +|TCategoryEnum|Tis(LCIS)| +|TCategoryEnum|Tis(Paget)| +|TCategoryEnum|Tis(Paget's)| +|TCategoryEnum|Tis pu| +|TCategoryEnum|Tis pd| +|TCategoryEnum|TX| + +

TumourStagingSystemEnum

+ + + + + + +```json +"AJCC 8th edition" + +``` + +TumourStagingSystemEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TumourStagingSystemEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TumourStagingSystemEnum|AJCC 8th edition| +|TumourStagingSystemEnum|AJCC 7th edition| +|TumourStagingSystemEnum|AJCC 6th edition| +|TumourStagingSystemEnum|Ann Arbor staging system| +|TumourStagingSystemEnum|Binet staging system| +|TumourStagingSystemEnum|Durie-Salmon staging system| +|TumourStagingSystemEnum|FIGO staging system| +|TumourStagingSystemEnum|International Neuroblastoma Risk Group Staging System| +|TumourStagingSystemEnum|International Neuroblastoma Staging System| +|TumourStagingSystemEnum|Lugano staging system| +|TumourStagingSystemEnum|Rai staging system| +|TumourStagingSystemEnum|Revised International staging system (RISS)| +|TumourStagingSystemEnum|SEER staging system| +|TumourStagingSystemEnum|St Jude staging system| + +

BiomarkerFilterSchema

+ + + + + + +```json +{ + "program_id": "string", + "submitter_donor_id": "string", + "submitter_specimen_id": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_treatment_id": "string", + "submitter_follow_up_id": "string", + "test_date": "string", + "psa_level": 0, + "ca125": 0, + "cea": 0, + "er_status": "string", + "er_percent_positive": 0, + "pr_status": "string", + "pr_percent_positive": 0, + "her2_ihc_status": "string", + "her2_ish_status": "string", + "hpv_ihc_status": "string", + "hpv_pcr_status": "string", + "hpv_strain": [ + "string" + ] +} + +``` + +BiomarkerFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_specimen_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_primary_diagnosis_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_follow_up_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|test_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|psa_level|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|ca125|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|cea|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|er_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|er_percent_positive|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|number|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pr_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pr_percent_positive|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|number|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|her2_ihc_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|her2_ish_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hpv_ihc_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hpv_pcr_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hpv_strain|[string]|false|none|none| + +

BiomarkerModelSchema

+ + + + + + +```json +{ + "er_status": "Cannot be determined", + "pr_status": "Cannot be determined", + "her2_ihc_status": "Cannot be determined", + "her2_ish_status": "Cannot be determined", + "hpv_ihc_status": "Cannot be determined", + "hpv_pcr_status": "Cannot be determined", + "hpv_strain": [ + "HPV16" + ], + "program_id": "string", + "submitter_donor_id": "string", + "submitter_specimen_id": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_treatment_id": "string", + "submitter_follow_up_id": "string", + "test_date": "string", + "psa_level": 0, + "ca125": 0, + "cea": 0, + "er_percent_positive": 0, + "pr_percent_positive": 0 +} + +``` + +BiomarkerModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|er_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[ErPrHpvStatusEnum](#schemaerprhpvstatusenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pr_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[ErPrHpvStatusEnum](#schemaerprhpvstatusenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|her2_ihc_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[Her2StatusEnum](#schemaher2statusenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|her2_ish_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[Her2StatusEnum](#schemaher2statusenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hpv_ihc_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[ErPrHpvStatusEnum](#schemaerprhpvstatusenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hpv_pcr_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[ErPrHpvStatusEnum](#schemaerprhpvstatusenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hpv_strain|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[[HpvStrainEnum](#schemahpvstrainenum)]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_specimen_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_primary_diagnosis_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_follow_up_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|test_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|psa_level|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|ca125|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|cea|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|er_percent_positive|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|number|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pr_percent_positive|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|number|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ErPrHpvStatusEnum

+ + + + + + +```json +"Cannot be determined" + +``` + +ErPrHpvStatusEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|ErPrHpvStatusEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|ErPrHpvStatusEnum|Cannot be determined| +|ErPrHpvStatusEnum|Negative| +|ErPrHpvStatusEnum|Not applicable| +|ErPrHpvStatusEnum|Positive| +|ErPrHpvStatusEnum|Unknown| + +

Her2StatusEnum

+ + + + + + +```json +"Cannot be determined" + +``` + +Her2StatusEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|Her2StatusEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|Her2StatusEnum|Cannot be determined| +|Her2StatusEnum|Equivocal| +|Her2StatusEnum|Positive| +|Her2StatusEnum|Negative| +|Her2StatusEnum|Not applicable| +|Her2StatusEnum|Unknown| + +

HpvStrainEnum

+ + + + + + +```json +"HPV16" + +``` + +HpvStrainEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|HpvStrainEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|HpvStrainEnum|HPV16| +|HpvStrainEnum|HPV18| +|HpvStrainEnum|HPV31| +|HpvStrainEnum|HPV33| +|HpvStrainEnum|HPV35| +|HpvStrainEnum|HPV39| +|HpvStrainEnum|HPV45| +|HpvStrainEnum|HPV51| +|HpvStrainEnum|HPV52| +|HpvStrainEnum|HPV56| +|HpvStrainEnum|HPV58| +|HpvStrainEnum|HPV59| +|HpvStrainEnum|HPV66| +|HpvStrainEnum|HPV68| +|HpvStrainEnum|HPV73| + +

PagedBiomarkerModelSchema

+ + + + + + +```json +{ + "items": [ + { + "er_status": "Cannot be determined", + "pr_status": "Cannot be determined", + "her2_ihc_status": "Cannot be determined", + "her2_ish_status": "Cannot be determined", + "hpv_ihc_status": "Cannot be determined", + "hpv_pcr_status": "Cannot be determined", + "hpv_strain": [ + "HPV16" + ], + "program_id": "string", + "submitter_donor_id": "string", + "submitter_specimen_id": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_treatment_id": "string", + "submitter_follow_up_id": "string", + "test_date": "string", + "psa_level": 0, + "ca125": 0, + "cea": 0, + "er_percent_positive": 0, + "pr_percent_positive": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedBiomarkerModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[BiomarkerModelSchema](#schemabiomarkermodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ChemotherapyFilterSchema

+ + + + + + +```json +{ + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "chemotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 +} + +``` + +ChemotherapyFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_database|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_name|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|chemotherapy_drug_dose_units|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prescribed_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|actual_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ChemotherapyModelSchema

+ + + + + + +```json +{ + "chemotherapy_drug_dose_units": "mg/m2", + "drug_reference_database": "RxNorm", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 +} + +``` + +ChemotherapyModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|chemotherapy_drug_dose_units|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[DosageUnitsEnum](#schemadosageunitsenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_database|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[DrugReferenceDbEnum](#schemadrugreferencedbenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_treatment_id|string|true|none|none| +|drug_name|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prescribed_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|actual_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

DosageUnitsEnum

+ + + + + + +```json +"mg/m2" + +``` + +DosageUnitsEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|DosageUnitsEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|DosageUnitsEnum|mg/m2| +|DosageUnitsEnum|IU/m2| +|DosageUnitsEnum|IU/kg| +|DosageUnitsEnum|ug/m2| +|DosageUnitsEnum|g/m2| +|DosageUnitsEnum|mg/kg| +|DosageUnitsEnum|cells/kg| + +

DrugReferenceDbEnum

+ + + + + + +```json +"RxNorm" + +``` + +DrugReferenceDbEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|DrugReferenceDbEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|DrugReferenceDbEnum|RxNorm| +|DrugReferenceDbEnum|PubChem| +|DrugReferenceDbEnum|NCI Thesaurus| + +

PagedChemotherapyModelSchema

+ + + + + + +```json +{ + "items": [ + { + "chemotherapy_drug_dose_units": "mg/m2", + "drug_reference_database": "RxNorm", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedChemotherapyModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[ChemotherapyModelSchema](#schemachemotherapymodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ComorbidityFilterSchema

+ + + + + + +```json +{ + "program_id": "string", + "submitter_donor_id": "string", + "prior_malignancy": "string", + "laterality_of_prior_malignancy": "string", + "age_at_comorbidity_diagnosis": 0, + "comorbidity_type_code": "string", + "comorbidity_treatment_status": "string", + "comorbidity_treatment": "string" +} + +``` + +ComorbidityFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prior_malignancy|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|laterality_of_prior_malignancy|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|age_at_comorbidity_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|comorbidity_type_code|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|comorbidity_treatment_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|comorbidity_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ComorbidityModelSchema

+ + + + + + +```json +{ + "prior_malignancy": "Yes", + "laterality_of_prior_malignancy": "Bilateral", + "comorbidity_type_code": "string", + "comorbidity_treatment_status": "Yes", + "comorbidity_treatment": "string", + "program_id": "string", + "submitter_donor_id": "string", + "age_at_comorbidity_diagnosis": 0 +} + +``` + +ComorbidityModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prior_malignancy|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[uBooleanEnum](#schemaubooleanenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|laterality_of_prior_malignancy|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[MalignancyLateralityEnum](#schemamalignancylateralityenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|comorbidity_type_code|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|comorbidity_treatment_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[uBooleanEnum](#schemaubooleanenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|comorbidity_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|age_at_comorbidity_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

MalignancyLateralityEnum

+ + + + + + +```json +"Bilateral" + +``` + +MalignancyLateralityEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|MalignancyLateralityEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|MalignancyLateralityEnum|Bilateral| +|MalignancyLateralityEnum|Left| +|MalignancyLateralityEnum|Midline| +|MalignancyLateralityEnum|Not applicable| +|MalignancyLateralityEnum|Right| +|MalignancyLateralityEnum|Unilateral, Side not specified| +|MalignancyLateralityEnum|Unknown| + +

PagedComorbidityModelSchema

+ + + + + + +```json +{ + "items": [ + { + "prior_malignancy": "Yes", + "laterality_of_prior_malignancy": "Bilateral", + "comorbidity_type_code": "string", + "comorbidity_treatment_status": "Yes", + "comorbidity_treatment": "string", + "program_id": "string", + "submitter_donor_id": "string", + "age_at_comorbidity_diagnosis": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedComorbidityModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[ComorbidityModelSchema](#schemacomorbiditymodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

uBooleanEnum

+ + + + + + +```json +"Yes" + +``` + +uBooleanEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|uBooleanEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|uBooleanEnum|Yes| +|uBooleanEnum|No| +|uBooleanEnum|Unknown| + +

ExposureFilterSchema

+ + + + + + +```json +{ + "program_id": "string", + "submitter_donor_id": "string", + "tobacco_smoking_status": "string", + "tobacco_type": [ + "string" + ], + "pack_years_smoked": 0 +} + +``` + +ExposureFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tobacco_smoking_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tobacco_type|[string]|false|none|none| +|pack_years_smoked|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|number|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ExposureModelSchema

+ + + + + + +```json +{ + "tobacco_smoking_status": "Current reformed smoker for <= 15 years", + "tobacco_type": [ + "Chewing Tobacco" + ], + "program_id": "string", + "submitter_donor_id": "string", + "pack_years_smoked": 0 +} + +``` + +ExposureModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tobacco_smoking_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[SmokingStatusEnum](#schemasmokingstatusenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tobacco_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[[TobaccoTypeEnum](#schematobaccotypeenum)]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|pack_years_smoked|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|number|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

PagedExposureModelSchema

+ + + + + + +```json +{ + "items": [ + { + "tobacco_smoking_status": "Current reformed smoker for <= 15 years", + "tobacco_type": [ + "Chewing Tobacco" + ], + "program_id": "string", + "submitter_donor_id": "string", + "pack_years_smoked": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedExposureModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[ExposureModelSchema](#schemaexposuremodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

SmokingStatusEnum

+ + + + + + +```json +"Current reformed smoker for <= 15 years" + +``` + +SmokingStatusEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|SmokingStatusEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|SmokingStatusEnum|Current reformed smoker for <= 15 years| +|SmokingStatusEnum|Current reformed smoker for > 15 years| +|SmokingStatusEnum|Current reformed smoker, duration not specified| +|SmokingStatusEnum|Current smoker| +|SmokingStatusEnum|Lifelong non-smoker (<100 cigarettes smoked in lifetime)| +|SmokingStatusEnum|Not applicable| +|SmokingStatusEnum|Smoking history not documented| + +

TobaccoTypeEnum

+ + + + + + +```json +"Chewing Tobacco" + +``` + +TobaccoTypeEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TobaccoTypeEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TobaccoTypeEnum|Chewing Tobacco| +|TobaccoTypeEnum|Cigar| +|TobaccoTypeEnum|Cigarettes| +|TobaccoTypeEnum|Electronic cigarettes| +|TobaccoTypeEnum|Not applicable| +|TobaccoTypeEnum|Pipe| +|TobaccoTypeEnum|Roll-ups| +|TobaccoTypeEnum|Snuff| +|TobaccoTypeEnum|Unknown| +|TobaccoTypeEnum|Waterpipe| + +

FollowUpFilterSchema

+ + + + + + +```json +{ + "submitter_follow_up_id": "string", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_treatment_id": "string", + "date_of_followup": "string", + "disease_status_at_followup": "string", + "relapse_type": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + "string" + ], + "anatomic_site_progression_or_recurrence": [ + "string" + ], + "recurrence_tumour_staging_system": "string", + "recurrence_t_category": "string", + "recurrence_n_category": "string", + "recurrence_m_category": "string", + "recurrence_stage_group": "string" +} + +``` + +FollowUpFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_follow_up_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_primary_diagnosis_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_followup|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|disease_status_at_followup|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|relapse_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_relapse|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|method_of_progression_status|[string]|false|none|none| +|anatomic_site_progression_or_recurrence|[string]|false|none|none| +|recurrence_tumour_staging_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_t_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_n_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_m_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_stage_group|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

DiseaseStatusFollowupEnum

+ + + + + + +```json +"Complete remission" + +``` + +DiseaseStatusFollowupEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|DiseaseStatusFollowupEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|DiseaseStatusFollowupEnum|Complete remission| +|DiseaseStatusFollowupEnum|Distant progression| +|DiseaseStatusFollowupEnum|Loco-regional progression| +|DiseaseStatusFollowupEnum|No evidence of disease| +|DiseaseStatusFollowupEnum|Partial remission| +|DiseaseStatusFollowupEnum|Progression not otherwise specified| +|DiseaseStatusFollowupEnum|Relapse or recurrence| +|DiseaseStatusFollowupEnum|Stable| + +

FollowUpModelSchema

+ + + + + + +```json +{ + "submitter_follow_up_id": "string", + "disease_status_at_followup": "Complete remission", + "relapse_type": "Distant recurrence/metastasis", + "date_of_followup": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + "Imaging (procedure)" + ], + "anatomic_site_progression_or_recurrence": [ + "string" + ], + "recurrence_tumour_staging_system": "AJCC 8th edition", + "recurrence_t_category": "T0", + "recurrence_n_category": "N0", + "recurrence_m_category": "M0", + "recurrence_stage_group": "Stage 0", + "treatment_uuid": "6ec39d1c-44a6-43bb-80b2-ee9580e3c70b", + "primary_diagnosis_uuid": "3459cde2-44be-4900-9ef0-b6de408c756d", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_treatment_id": "string" +} + +``` + +FollowUpModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_follow_up_id|string|true|none|none| +|disease_status_at_followup|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[DiseaseStatusFollowupEnum](#schemadiseasestatusfollowupenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|relapse_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[RelapseTypeEnum](#schemarelapsetypeenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_followup|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|date_of_relapse|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|method_of_progression_status|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[[ProgressionStatusMethodEnum](#schemaprogressionstatusmethodenum)]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|anatomic_site_progression_or_recurrence|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[string]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_tumour_staging_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TumourStagingSystemEnum](#schematumourstagingsystemenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_t_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TCategoryEnum](#schematcategoryenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_n_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[NCategoryEnum](#schemancategoryenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_m_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[MCategoryEnum](#schemamcategoryenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|recurrence_stage_group|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[StageGroupEnum](#schemastagegroupenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string(uuid)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|primary_diagnosis_uuid|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string(uuid)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_primary_diagnosis_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

PagedFollowUpModelSchema

+ + + + + + +```json +{ + "items": [ + { + "submitter_follow_up_id": "string", + "disease_status_at_followup": "Complete remission", + "relapse_type": "Distant recurrence/metastasis", + "date_of_followup": "string", + "date_of_relapse": "string", + "method_of_progression_status": [ + "Imaging (procedure)" + ], + "anatomic_site_progression_or_recurrence": [ + "string" + ], + "recurrence_tumour_staging_system": "AJCC 8th edition", + "recurrence_t_category": "T0", + "recurrence_n_category": "N0", + "recurrence_m_category": "M0", + "recurrence_stage_group": "Stage 0", + "treatment_uuid": "6ec39d1c-44a6-43bb-80b2-ee9580e3c70b", + "primary_diagnosis_uuid": "3459cde2-44be-4900-9ef0-b6de408c756d", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string", + "submitter_treatment_id": "string" + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedFollowUpModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[FollowUpModelSchema](#schemafollowupmodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ProgressionStatusMethodEnum

+ + + + + + +```json +"Imaging (procedure)" + +``` + +ProgressionStatusMethodEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|ProgressionStatusMethodEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|ProgressionStatusMethodEnum|Imaging (procedure)| +|ProgressionStatusMethodEnum|Histopathology test (procedure)| +|ProgressionStatusMethodEnum|Assessment of symptom control (procedure)| +|ProgressionStatusMethodEnum|Physical examination procedure (procedure)| +|ProgressionStatusMethodEnum|Tumor marker measurement (procedure)| +|ProgressionStatusMethodEnum|Laboratory data interpretation (procedure)| + +

RelapseTypeEnum

+ + + + + + +```json +"Distant recurrence/metastasis" + +``` + +RelapseTypeEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|RelapseTypeEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|RelapseTypeEnum|Distant recurrence/metastasis| +|RelapseTypeEnum|Local recurrence| +|RelapseTypeEnum|Local recurrence and distant metastasis| +|RelapseTypeEnum|Progression (liquid tumours)| +|RelapseTypeEnum|Biochemical progression| + +

HormoneTherapyFilterSchema

+ + + + + + +```json +{ + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_reference_database": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "hormone_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 +} + +``` + +HormoneTherapyFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_database|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_name|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hormone_drug_dose_units|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prescribed_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|actual_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

HormoneTherapyModelSchema

+ + + + + + +```json +{ + "hormone_drug_dose_units": "mg/m2", + "drug_reference_database": "RxNorm", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 +} + +``` + +HormoneTherapyModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|hormone_drug_dose_units|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[DosageUnitsEnum](#schemadosageunitsenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_database|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[DrugReferenceDbEnum](#schemadrugreferencedbenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_treatment_id|string|true|none|none| +|drug_name|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prescribed_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|actual_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

PagedHormoneTherapyModelSchema

+ + + + + + +```json +{ + "items": [ + { + "hormone_drug_dose_units": "mg/m2", + "drug_reference_database": "RxNorm", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedHormoneTherapyModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[HormoneTherapyModelSchema](#schemahormonetherapymodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ImmunotherapyFilterSchema

+ + + + + + +```json +{ + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_reference_database": "string", + "immunotherapy_type": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "immunotherapy_drug_dose_units": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 +} + +``` + +ImmunotherapyFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_database|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|immunotherapy_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_name|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|immunotherapy_drug_dose_units|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prescribed_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|actual_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ImmunotherapyModelSchema

+ + + + + + +```json +{ + "immunotherapy_type": "Cell-based", + "drug_reference_database": "RxNorm", + "immunotherapy_drug_dose_units": "mg/m2", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 +} + +``` + +ImmunotherapyModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|immunotherapy_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[ImmunotherapyTypeEnum](#schemaimmunotherapytypeenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_database|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[DrugReferenceDbEnum](#schemadrugreferencedbenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|immunotherapy_drug_dose_units|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[DosageUnitsEnum](#schemadosageunitsenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_treatment_id|string|true|none|none| +|drug_name|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|drug_reference_identifier|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|prescribed_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|actual_cumulative_drug_dose|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

ImmunotherapyTypeEnum

+ + + + + + +```json +"Cell-based" + +``` + +ImmunotherapyTypeEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|ImmunotherapyTypeEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|ImmunotherapyTypeEnum|Cell-based| +|ImmunotherapyTypeEnum|Immune checkpoint inhibitors| +|ImmunotherapyTypeEnum|Monoclonal antibodies other than immune checkpoint inhibitors| +|ImmunotherapyTypeEnum|Other immunomodulatory substances| + +

PagedImmunotherapyModelSchema

+ + + + + + +```json +{ + "items": [ + { + "immunotherapy_type": "Cell-based", + "drug_reference_database": "RxNorm", + "immunotherapy_drug_dose_units": "mg/m2", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "drug_name": "string", + "drug_reference_identifier": "string", + "prescribed_cumulative_drug_dose": 0, + "actual_cumulative_drug_dose": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedImmunotherapyModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[ImmunotherapyModelSchema](#schemaimmunotherapymodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

RadiationFilterSchema

+ + + + + + +```json +{ + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "radiation_therapy_modality": "string", + "radiation_therapy_type": "string", + "radiation_therapy_fractions": 0, + "radiation_therapy_dosage": 0, + "anatomical_site_irradiated": "string", + "radiation_boost": true, + "reference_radiation_treatment_id": "string" +} + +``` + +RadiationFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_modality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_fractions|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_dosage|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|anatomical_site_irradiated|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_boost|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|boolean|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|reference_radiation_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

PagedRadiationModelSchema

+ + + + + + +```json +{ + "items": [ + { + "radiation_therapy_modality": "Megavoltage radiation therapy using photons (procedure)", + "radiation_therapy_type": "External", + "anatomical_site_irradiated": "Left Abdomen", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "radiation_therapy_fractions": 0, + "radiation_therapy_dosage": 0, + "radiation_boost": true, + "reference_radiation_treatment_id": "string" + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedRadiationModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[RadiationModelSchema](#schemaradiationmodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

RadiationAnatomicalSiteEnum

+ + + + + + +```json +"Left Abdomen" + +``` + +RadiationAnatomicalSiteEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|RadiationAnatomicalSiteEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|RadiationAnatomicalSiteEnum|Left Abdomen| +|RadiationAnatomicalSiteEnum|Whole Abdomen| +|RadiationAnatomicalSiteEnum|Right Abdomen| +|RadiationAnatomicalSiteEnum|Lower Abdomen| +|RadiationAnatomicalSiteEnum|Left Lower Abdomen| +|RadiationAnatomicalSiteEnum|Right Lower Abdomen| +|RadiationAnatomicalSiteEnum|Upper Abdomen| +|RadiationAnatomicalSiteEnum|Left Upper Abdomen| +|RadiationAnatomicalSiteEnum|Right Upper Abdomen| +|RadiationAnatomicalSiteEnum|Left Adrenal| +|RadiationAnatomicalSiteEnum|Right Adrenal| +|RadiationAnatomicalSiteEnum|Bilateral Ankle| +|RadiationAnatomicalSiteEnum|Left Ankle| +|RadiationAnatomicalSiteEnum|Right Ankle| +|RadiationAnatomicalSiteEnum|Bilateral Antrum (Bull's Eye)| +|RadiationAnatomicalSiteEnum|Left Antrum| +|RadiationAnatomicalSiteEnum|Right Antrum| +|RadiationAnatomicalSiteEnum|Anus| +|RadiationAnatomicalSiteEnum|Lower Left Arm| +|RadiationAnatomicalSiteEnum|Lower Right Arm| +|RadiationAnatomicalSiteEnum|Bilateral Arms| +|RadiationAnatomicalSiteEnum|Left Arm| +|RadiationAnatomicalSiteEnum|Right Arm| +|RadiationAnatomicalSiteEnum|Upper Left Arm| +|RadiationAnatomicalSiteEnum|Upper Right Arm| +|RadiationAnatomicalSiteEnum|Left Axilla| +|RadiationAnatomicalSiteEnum|Right Axilla| +|RadiationAnatomicalSiteEnum|Skin or Soft Tissue of Back| +|RadiationAnatomicalSiteEnum|Bile Duct| +|RadiationAnatomicalSiteEnum|Bladder| +|RadiationAnatomicalSiteEnum|Lower Body| +|RadiationAnatomicalSiteEnum|Middle Body| +|RadiationAnatomicalSiteEnum|Upper Body| +|RadiationAnatomicalSiteEnum|Whole Body| +|RadiationAnatomicalSiteEnum|Boost - Area Previously Treated| +|RadiationAnatomicalSiteEnum|Brain| +|RadiationAnatomicalSiteEnum|Left Breast Boost| +|RadiationAnatomicalSiteEnum|Right Breast Boost| +|RadiationAnatomicalSiteEnum|Bilateral Breast| +|RadiationAnatomicalSiteEnum|Left Breast| +|RadiationAnatomicalSiteEnum|Right Breast| +|RadiationAnatomicalSiteEnum|Bilateral Breasts with Nodes| +|RadiationAnatomicalSiteEnum|Left Breast with Nodes| +|RadiationAnatomicalSiteEnum|Right Breast with Nodes| +|RadiationAnatomicalSiteEnum|Bilateral Buttocks| +|RadiationAnatomicalSiteEnum|Left Buttock| +|RadiationAnatomicalSiteEnum|Right Buttock| +|RadiationAnatomicalSiteEnum|Inner Canthus| +|RadiationAnatomicalSiteEnum|Outer Canthus| +|RadiationAnatomicalSiteEnum|Cervix| +|RadiationAnatomicalSiteEnum|Bilateral Chest Lung & Area Involve| +|RadiationAnatomicalSiteEnum|Left Chest| +|RadiationAnatomicalSiteEnum|Right Chest| +|RadiationAnatomicalSiteEnum|Chin| +|RadiationAnatomicalSiteEnum|Left Cheek| +|RadiationAnatomicalSiteEnum|Right Cheek| +|RadiationAnatomicalSiteEnum|Bilateral Chest Wall (W/o Breast)| +|RadiationAnatomicalSiteEnum|Left Chest Wall| +|RadiationAnatomicalSiteEnum|Right Chest Wall| +|RadiationAnatomicalSiteEnum|Bilateral Clavicle| +|RadiationAnatomicalSiteEnum|Left Clavicle| +|RadiationAnatomicalSiteEnum|Right Clavicle| +|RadiationAnatomicalSiteEnum|Coccyx| +|RadiationAnatomicalSiteEnum|Colon| +|RadiationAnatomicalSiteEnum|Whole C.N.S. (Medulla Techinque)| +|RadiationAnatomicalSiteEnum|Csf Spine (Medull Tech 2 Diff Machi| +|RadiationAnatomicalSiteEnum|Left Chestwall Boost| +|RadiationAnatomicalSiteEnum|Right Chestwall Boost| +|RadiationAnatomicalSiteEnum|Bilateral Chestwall with Nodes| +|RadiationAnatomicalSiteEnum|Left Chestwall with Nodes| +|RadiationAnatomicalSiteEnum|Right Chestwall with Nodes| +|RadiationAnatomicalSiteEnum|Left Ear| +|RadiationAnatomicalSiteEnum|Right Ear| +|RadiationAnatomicalSiteEnum|Epigastrium| +|RadiationAnatomicalSiteEnum|Lower Esophagus| +|RadiationAnatomicalSiteEnum|Middle Esophagus| +|RadiationAnatomicalSiteEnum|Upper Esophagus| +|RadiationAnatomicalSiteEnum|Entire Esophagus| +|RadiationAnatomicalSiteEnum|Ethmoid Sinus| +|RadiationAnatomicalSiteEnum|Bilateral Eyes| +|RadiationAnatomicalSiteEnum|Left Eye| +|RadiationAnatomicalSiteEnum|Right Eye| +|RadiationAnatomicalSiteEnum|Bilateral Face| +|RadiationAnatomicalSiteEnum|Left Face| +|RadiationAnatomicalSiteEnum|Right Face| +|RadiationAnatomicalSiteEnum|Left Fallopian Tubes| +|RadiationAnatomicalSiteEnum|Right Fallopian Tubes| +|RadiationAnatomicalSiteEnum|Bilateral Femur| +|RadiationAnatomicalSiteEnum|Left Femur| +|RadiationAnatomicalSiteEnum|Right Femur| +|RadiationAnatomicalSiteEnum|Left Fibula| +|RadiationAnatomicalSiteEnum|Right Fibula| +|RadiationAnatomicalSiteEnum|Finger (Including Thumbs)| +|RadiationAnatomicalSiteEnum|Floor of Mouth (Boosts)| +|RadiationAnatomicalSiteEnum|Bilateral Feet| +|RadiationAnatomicalSiteEnum|Left Foot| +|RadiationAnatomicalSiteEnum|Right Foot| +|RadiationAnatomicalSiteEnum|Forehead| +|RadiationAnatomicalSiteEnum|Posterior Fossa| +|RadiationAnatomicalSiteEnum|Gall Bladder| +|RadiationAnatomicalSiteEnum|Gingiva| +|RadiationAnatomicalSiteEnum|Bilateral Hand| +|RadiationAnatomicalSiteEnum|Left Hand| +|RadiationAnatomicalSiteEnum|Right Hand| +|RadiationAnatomicalSiteEnum|Head| +|RadiationAnatomicalSiteEnum|Bilateral Heel| +|RadiationAnatomicalSiteEnum|Left Heel| +|RadiationAnatomicalSiteEnum|Right Heel| +|RadiationAnatomicalSiteEnum|Left Hemimantle| +|RadiationAnatomicalSiteEnum|Right Hemimantle| +|RadiationAnatomicalSiteEnum|Heart| +|RadiationAnatomicalSiteEnum|Bilateral Hip| +|RadiationAnatomicalSiteEnum|Left Hip| +|RadiationAnatomicalSiteEnum|Right Hip| +|RadiationAnatomicalSiteEnum|Left Humerus| +|RadiationAnatomicalSiteEnum|Right Humerus| +|RadiationAnatomicalSiteEnum|Hypopharynx| +|RadiationAnatomicalSiteEnum|Bilateral Internal Mammary Chain| +|RadiationAnatomicalSiteEnum|Bilateral Inguinal Nodes| +|RadiationAnatomicalSiteEnum|Left Inguinal Nodes| +|RadiationAnatomicalSiteEnum|Right Inguinal Nodes| +|RadiationAnatomicalSiteEnum|Inverted 'Y' (Dog-Leg,Hockey-Stick)| +|RadiationAnatomicalSiteEnum|Left Kidney| +|RadiationAnatomicalSiteEnum|Right Kidney| +|RadiationAnatomicalSiteEnum|Bilateral Knee| +|RadiationAnatomicalSiteEnum|Left Knee| +|RadiationAnatomicalSiteEnum|Right Knee| +|RadiationAnatomicalSiteEnum|Bilateral Lacrimal Gland| +|RadiationAnatomicalSiteEnum|Left Lacrimal Gland| +|RadiationAnatomicalSiteEnum|Right Lacrimal Gland| +|RadiationAnatomicalSiteEnum|Larygopharynx| +|RadiationAnatomicalSiteEnum|Larynx| +|RadiationAnatomicalSiteEnum|Bilateral Leg| +|RadiationAnatomicalSiteEnum|Left Leg| +|RadiationAnatomicalSiteEnum|Right Leg| +|RadiationAnatomicalSiteEnum|Lower Bilateral Leg| +|RadiationAnatomicalSiteEnum|Lower Left Leg| +|RadiationAnatomicalSiteEnum|Lower Right Leg| +|RadiationAnatomicalSiteEnum|Upper Bilateral Leg| +|RadiationAnatomicalSiteEnum|Upper Left Leg| +|RadiationAnatomicalSiteEnum|Upper Right Leg| +|RadiationAnatomicalSiteEnum|Both Eyelid(s)| +|RadiationAnatomicalSiteEnum|Left Eyelid| +|RadiationAnatomicalSiteEnum|Right Eyelid| +|RadiationAnatomicalSiteEnum|Both Lip(s)| +|RadiationAnatomicalSiteEnum|Lower Lip| +|RadiationAnatomicalSiteEnum|Upper Lip| +|RadiationAnatomicalSiteEnum|Liver| +|RadiationAnatomicalSiteEnum|Bilateral Lung| +|RadiationAnatomicalSiteEnum|Left Lung| +|RadiationAnatomicalSiteEnum|Right Lung| +|RadiationAnatomicalSiteEnum|Bilateral Mandible| +|RadiationAnatomicalSiteEnum|Left Mandible| +|RadiationAnatomicalSiteEnum|Right Mandible| +|RadiationAnatomicalSiteEnum|Mantle| +|RadiationAnatomicalSiteEnum|Bilateral Maxilla| +|RadiationAnatomicalSiteEnum|Left Maxilla| +|RadiationAnatomicalSiteEnum|Right Maxilla| +|RadiationAnatomicalSiteEnum|Mediastinum| +|RadiationAnatomicalSiteEnum|Multiple Skin| +|RadiationAnatomicalSiteEnum|Nasal Fossa| +|RadiationAnatomicalSiteEnum|Nasopharynx| +|RadiationAnatomicalSiteEnum|Bilateral Neck Includes Nodes| +|RadiationAnatomicalSiteEnum|Left Neck Includes Nodes| +|RadiationAnatomicalSiteEnum|Right Neck Includes Nodes| +|RadiationAnatomicalSiteEnum|Neck - Skin| +|RadiationAnatomicalSiteEnum|Nose| +|RadiationAnatomicalSiteEnum|Oral Cavity / Buccal Mucosa| +|RadiationAnatomicalSiteEnum|Bilateral Orbit| +|RadiationAnatomicalSiteEnum|Left Orbit| +|RadiationAnatomicalSiteEnum|Right Orbit| +|RadiationAnatomicalSiteEnum|Oropharynx| +|RadiationAnatomicalSiteEnum|Bilateral Ovary| +|RadiationAnatomicalSiteEnum|Left Ovary| +|RadiationAnatomicalSiteEnum|Right Ovary| +|RadiationAnatomicalSiteEnum|Hard Palate| +|RadiationAnatomicalSiteEnum|Soft Palate| +|RadiationAnatomicalSiteEnum|Palate Unspecified| +|RadiationAnatomicalSiteEnum|Pancreas| +|RadiationAnatomicalSiteEnum|Para-Aortic Nodes| +|RadiationAnatomicalSiteEnum|Left Parotid| +|RadiationAnatomicalSiteEnum|Right Parotid| +|RadiationAnatomicalSiteEnum|Bilateral Pelvis| +|RadiationAnatomicalSiteEnum|Left Pelvis| +|RadiationAnatomicalSiteEnum|Right Pelvis| +|RadiationAnatomicalSiteEnum|Penis| +|RadiationAnatomicalSiteEnum|Perineum| +|RadiationAnatomicalSiteEnum|Pituitary| +|RadiationAnatomicalSiteEnum|Left Pleura (As in Mesothelioma)| +|RadiationAnatomicalSiteEnum|Right Pleura| +|RadiationAnatomicalSiteEnum|Prostate| +|RadiationAnatomicalSiteEnum|Pubis| +|RadiationAnatomicalSiteEnum|Pyriform Fossa (Sinuses)| +|RadiationAnatomicalSiteEnum|Left Radius| +|RadiationAnatomicalSiteEnum|Right Radius| +|RadiationAnatomicalSiteEnum|Rectum (Includes Sigmoid)| +|RadiationAnatomicalSiteEnum|Left Ribs| +|RadiationAnatomicalSiteEnum|Right Ribs| +|RadiationAnatomicalSiteEnum|Sacrum| +|RadiationAnatomicalSiteEnum|Left Salivary Gland| +|RadiationAnatomicalSiteEnum|Right Salivary Gland| +|RadiationAnatomicalSiteEnum|Bilateral Scapula| +|RadiationAnatomicalSiteEnum|Left Scapula| +|RadiationAnatomicalSiteEnum|Right Scapula| +|RadiationAnatomicalSiteEnum|Bilateral Supraclavicular Nodes| +|RadiationAnatomicalSiteEnum|Left Supraclavicular Nodes| +|RadiationAnatomicalSiteEnum|Right Supraclavicular Nodes| +|RadiationAnatomicalSiteEnum|Bilateral Scalp| +|RadiationAnatomicalSiteEnum|Left Scalp| +|RadiationAnatomicalSiteEnum|Right Scalp| +|RadiationAnatomicalSiteEnum|Scrotum| +|RadiationAnatomicalSiteEnum|Bilateral Shoulder| +|RadiationAnatomicalSiteEnum|Left Shoulder| +|RadiationAnatomicalSiteEnum|Right Shoulder| +|RadiationAnatomicalSiteEnum|Whole Body - Skin| +|RadiationAnatomicalSiteEnum|Skull| +|RadiationAnatomicalSiteEnum|Cervical & Thoracic Spine| +|RadiationAnatomicalSiteEnum|Sphenoid Sinus| +|RadiationAnatomicalSiteEnum|Cervical Spine| +|RadiationAnatomicalSiteEnum|Lumbar Spine| +|RadiationAnatomicalSiteEnum|Thoracic Spine| +|RadiationAnatomicalSiteEnum|Whole Spine| +|RadiationAnatomicalSiteEnum|Spleen| +|RadiationAnatomicalSiteEnum|Lumbo-Sacral Spine| +|RadiationAnatomicalSiteEnum|Thoracic & Lumbar Spine| +|RadiationAnatomicalSiteEnum|Sternum| +|RadiationAnatomicalSiteEnum|Stomach| +|RadiationAnatomicalSiteEnum|Submandibular Glands| +|RadiationAnatomicalSiteEnum|Left Temple| +|RadiationAnatomicalSiteEnum|Right Temple| +|RadiationAnatomicalSiteEnum|Bilateral Testis| +|RadiationAnatomicalSiteEnum|Left Testis| +|RadiationAnatomicalSiteEnum|Right Testis| +|RadiationAnatomicalSiteEnum|Thyroid| +|RadiationAnatomicalSiteEnum|Left Tibia| +|RadiationAnatomicalSiteEnum|Right Tibia| +|RadiationAnatomicalSiteEnum|Left Toes| +|RadiationAnatomicalSiteEnum|Right Toes| +|RadiationAnatomicalSiteEnum|Tongue| +|RadiationAnatomicalSiteEnum|Tonsil| +|RadiationAnatomicalSiteEnum|Trachea| +|RadiationAnatomicalSiteEnum|Left Ulna| +|RadiationAnatomicalSiteEnum|Right Ulna| +|RadiationAnatomicalSiteEnum|Left Ureter| +|RadiationAnatomicalSiteEnum|Right Ureter| +|RadiationAnatomicalSiteEnum|Urethra| +|RadiationAnatomicalSiteEnum|Uterus| +|RadiationAnatomicalSiteEnum|Uvula| +|RadiationAnatomicalSiteEnum|Vagina| +|RadiationAnatomicalSiteEnum|Vulva| +|RadiationAnatomicalSiteEnum|Abdomen| +|RadiationAnatomicalSiteEnum|Body| +|RadiationAnatomicalSiteEnum|Chest| +|RadiationAnatomicalSiteEnum|Lower Limb| +|RadiationAnatomicalSiteEnum|Neck| +|RadiationAnatomicalSiteEnum|Other| +|RadiationAnatomicalSiteEnum|Pelvis| +|RadiationAnatomicalSiteEnum|Skin| +|RadiationAnatomicalSiteEnum|Spine| +|RadiationAnatomicalSiteEnum|Upper Limb| + +

RadiationModelSchema

+ + + + + + +```json +{ + "radiation_therapy_modality": "Megavoltage radiation therapy using photons (procedure)", + "radiation_therapy_type": "External", + "anatomical_site_irradiated": "Left Abdomen", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "radiation_therapy_fractions": 0, + "radiation_therapy_dosage": 0, + "radiation_boost": true, + "reference_radiation_treatment_id": "string" +} + +``` + +RadiationModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_modality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[RadiationTherapyModalityEnum](#schemaradiationtherapymodalityenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TherapyTypeEnum](#schematherapytypeenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|anatomical_site_irradiated|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[RadiationAnatomicalSiteEnum](#schemaradiationanatomicalsiteenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_treatment_id|string|true|none|none| +|radiation_therapy_fractions|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_therapy_dosage|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|radiation_boost|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|boolean|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|reference_radiation_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

RadiationTherapyModalityEnum

+ + + + + + +```json +"Megavoltage radiation therapy using photons (procedure)" + +``` + +RadiationTherapyModalityEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|RadiationTherapyModalityEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|RadiationTherapyModalityEnum|Megavoltage radiation therapy using photons (procedure)| +|RadiationTherapyModalityEnum|Radiopharmaceutical| +|RadiationTherapyModalityEnum|Teleradiotherapy using electrons (procedure)| +|RadiationTherapyModalityEnum|Teleradiotherapy protons (procedure)| +|RadiationTherapyModalityEnum|Teleradiotherapy neutrons (procedure)| +|RadiationTherapyModalityEnum|Brachytherapy (procedure)| +|RadiationTherapyModalityEnum|Other| + +

TherapyTypeEnum

+ + + + + + +```json +"External" + +``` + +TherapyTypeEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TherapyTypeEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TherapyTypeEnum|External| +|TherapyTypeEnum|Internal| + +

SampleRegistrationFilterSchema

+ + + + + + +```json +{ + "submitter_sample_id": "string", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_specimen_id": "string", + "specimen_tissue_source": "string", + "tumour_normal_designation": "string", + "specimen_type": "string", + "sample_type": "string" +} + +``` + +SampleRegistrationFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_sample_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_specimen_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_tissue_source|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_normal_designation|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|sample_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

PagedSampleRegistrationModelSchema

+ + + + + + +```json +{ + "items": [ + { + "submitter_sample_id": "string", + "specimen_tissue_source": "Abdominal fluid", + "tumour_normal_designation": "Normal", + "specimen_type": "Cell line - derived from normal", + "sample_type": "Amplified DNA", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_specimen_id": "string" + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedSampleRegistrationModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[SampleRegistrationModelSchema](#schemasampleregistrationmodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

SampleRegistrationModelSchema

+ + + + + + +```json +{ + "submitter_sample_id": "string", + "specimen_tissue_source": "Abdominal fluid", + "tumour_normal_designation": "Normal", + "specimen_type": "Cell line - derived from normal", + "sample_type": "Amplified DNA", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_specimen_id": "string" +} + +``` + +SampleRegistrationModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_sample_id|string|true|none|none| +|specimen_tissue_source|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[SpecimenTissueSourceEnum](#schemaspecimentissuesourceenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_normal_designation|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TumourDesginationEnum](#schematumourdesginationenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[SpecimenTypeEnum](#schemaspecimentypeenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|sample_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[SampleTypeEnum](#schemasampletypeenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_specimen_id|string|true|none|none| + +

SampleTypeEnum

+ + + + + + +```json +"Amplified DNA" + +``` + +SampleTypeEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|SampleTypeEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|SampleTypeEnum|Amplified DNA| +|SampleTypeEnum|ctDNA| +|SampleTypeEnum|Other DNA enrichments| +|SampleTypeEnum|Other RNA fractions| +|SampleTypeEnum|polyA+ RNA| +|SampleTypeEnum|Protein| +|SampleTypeEnum|rRNA-depleted RNA| +|SampleTypeEnum|Total DNA| +|SampleTypeEnum|Total RNA| + +

SpecimenTissueSourceEnum

+ + + + + + +```json +"Abdominal fluid" + +``` + +SpecimenTissueSourceEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|SpecimenTissueSourceEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|SpecimenTissueSourceEnum|Abdominal fluid| +|SpecimenTissueSourceEnum|Amniotic fluid| +|SpecimenTissueSourceEnum|Arterial blood| +|SpecimenTissueSourceEnum|Bile| +|SpecimenTissueSourceEnum|Blood derived - bone marrow| +|SpecimenTissueSourceEnum|Blood derived - peripheral blood| +|SpecimenTissueSourceEnum|Bone marrow fluid| +|SpecimenTissueSourceEnum|Bone marrow derived mononuclear cells| +|SpecimenTissueSourceEnum|Buccal cell| +|SpecimenTissueSourceEnum|Buffy coat| +|SpecimenTissueSourceEnum|Cerebrospinal fluid| +|SpecimenTissueSourceEnum|Cervical mucus| +|SpecimenTissueSourceEnum|Convalescent plasma| +|SpecimenTissueSourceEnum|Cord blood| +|SpecimenTissueSourceEnum|Duodenal fluid| +|SpecimenTissueSourceEnum|Female genital fluid| +|SpecimenTissueSourceEnum|Fetal blood| +|SpecimenTissueSourceEnum|Hydrocele fluid| +|SpecimenTissueSourceEnum|Male genital fluid| +|SpecimenTissueSourceEnum|Pancreatic fluid| +|SpecimenTissueSourceEnum|Pericardial effusion| +|SpecimenTissueSourceEnum|Pleural fluid| +|SpecimenTissueSourceEnum|Renal cyst fluid| +|SpecimenTissueSourceEnum|Saliva| +|SpecimenTissueSourceEnum|Seminal fluid| +|SpecimenTissueSourceEnum|Serum| +|SpecimenTissueSourceEnum|Solid tissue| +|SpecimenTissueSourceEnum|Sputum| +|SpecimenTissueSourceEnum|Synovial fluid| +|SpecimenTissueSourceEnum|Urine| +|SpecimenTissueSourceEnum|Venous blood| +|SpecimenTissueSourceEnum|Vitreous fluid| +|SpecimenTissueSourceEnum|Whole blood| +|SpecimenTissueSourceEnum|Wound| + +

SpecimenTypeEnum

+ + + + + + +```json +"Cell line - derived from normal" + +``` + +SpecimenTypeEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|SpecimenTypeEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|SpecimenTypeEnum|Cell line - derived from normal| +|SpecimenTypeEnum|Cell line - derived from primary tumour| +|SpecimenTypeEnum|Cell line - derived from metastatic tumour| +|SpecimenTypeEnum|Cell line - derived from xenograft tumour| +|SpecimenTypeEnum|Metastatic tumour - additional metastatic| +|SpecimenTypeEnum|Metastatic tumour - metastasis local to lymph node| +|SpecimenTypeEnum|Metastatic tumour - metastasis to distant location| +|SpecimenTypeEnum|Metastatic tumour| +|SpecimenTypeEnum|Normal - tissue adjacent to primary tumour| +|SpecimenTypeEnum|Normal| +|SpecimenTypeEnum|Primary tumour - additional new primary| +|SpecimenTypeEnum|Primary tumour - adjacent to normal| +|SpecimenTypeEnum|Primary tumour| +|SpecimenTypeEnum|Recurrent tumour| +|SpecimenTypeEnum|Tumour - unknown if derived from primary or metastatic tumour| +|SpecimenTypeEnum|Xenograft - derived from primary tumour| +|SpecimenTypeEnum|Xenograft - derived from metastatic tumour| +|SpecimenTypeEnum|Xenograft - derived from tumour cell line| + +

TumourDesginationEnum

+ + + + + + +```json +"Normal" + +``` + +TumourDesginationEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TumourDesginationEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TumourDesginationEnum|Normal| +|TumourDesginationEnum|Tumour| + +

SpecimenFilterSchema

+ + + + + + +```json +{ + "submitter_specimen_id": "string", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string", + "pathological_tumour_staging_system": "string", + "pathological_t_category": "string", + "pathological_n_category": "string", + "pathological_m_category": "string", + "pathological_stage_group": "string", + "specimen_collection_date": "string", + "specimen_storage": "string", + "specimen_processing": "string", + "tumour_histological_type": "string", + "specimen_anatomic_location": "string", + "specimen_laterality": "string", + "reference_pathology_confirmed_diagnosis": "string", + "reference_pathology_confirmed_tumour_presence": "string", + "tumour_grading_system": "string", + "tumour_grade": "string", + "percent_tumour_cells_range": "string", + "percent_tumour_cells_measurement_method": "string" +} + +``` + +SpecimenFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_specimen_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_primary_diagnosis_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_tumour_staging_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_t_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_n_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_m_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_stage_group|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_collection_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_storage|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_processing|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_histological_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_anatomic_location|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_laterality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|reference_pathology_confirmed_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|reference_pathology_confirmed_tumour_presence|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_grading_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_grade|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|percent_tumour_cells_range|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|percent_tumour_cells_measurement_method|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

CellsMeasureMethodEnum

+ + + + + + +```json +"Genomics" + +``` + +CellsMeasureMethodEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|CellsMeasureMethodEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|CellsMeasureMethodEnum|Genomics| +|CellsMeasureMethodEnum|Image analysis| +|CellsMeasureMethodEnum|Pathology estimate by percent nuclei| +|CellsMeasureMethodEnum|Unknown| + +

ConfirmedDiagnosisTumourEnum

+ + + + + + +```json +"Yes" + +``` + +ConfirmedDiagnosisTumourEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|ConfirmedDiagnosisTumourEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|ConfirmedDiagnosisTumourEnum|Yes| +|ConfirmedDiagnosisTumourEnum|No| +|ConfirmedDiagnosisTumourEnum|Not done| +|ConfirmedDiagnosisTumourEnum|Unknown| + +

PagedSpecimenModelSchema

+ + + + + + +```json +{ + "items": [ + { + "submitter_specimen_id": "string", + "pathological_tumour_staging_system": "AJCC 8th edition", + "pathological_t_category": "T0", + "pathological_n_category": "N0", + "pathological_m_category": "M0", + "pathological_stage_group": "Stage 0", + "specimen_collection_date": "string", + "specimen_storage": "Cut slide", + "tumour_histological_type": "string", + "specimen_anatomic_location": "string", + "reference_pathology_confirmed_diagnosis": "Yes", + "reference_pathology_confirmed_tumour_presence": "Yes", + "tumour_grading_system": "FNCLCC grading system", + "tumour_grade": "Low grade", + "percent_tumour_cells_range": "0-19%", + "percent_tumour_cells_measurement_method": "Genomics", + "specimen_processing": "Cryopreservation in liquid nitrogen (dead tissue)", + "specimen_laterality": "Left", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string" + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedSpecimenModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[SpecimenModelSchema](#schemaspecimenmodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

PercentCellsRangeEnum

+ + + + + + +```json +"0-19%" + +``` + +PercentCellsRangeEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|PercentCellsRangeEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|PercentCellsRangeEnum|0-19%| +|PercentCellsRangeEnum|20-50%| +|PercentCellsRangeEnum|51-100%| + +

SpecimenLateralityEnum

+ + + + + + +```json +"Left" + +``` + +SpecimenLateralityEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|SpecimenLateralityEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|SpecimenLateralityEnum|Left| +|SpecimenLateralityEnum|Not applicable| +|SpecimenLateralityEnum|Right| +|SpecimenLateralityEnum|Unknown| + +

SpecimenModelSchema

+ + + + + + +```json +{ + "submitter_specimen_id": "string", + "pathological_tumour_staging_system": "AJCC 8th edition", + "pathological_t_category": "T0", + "pathological_n_category": "N0", + "pathological_m_category": "M0", + "pathological_stage_group": "Stage 0", + "specimen_collection_date": "string", + "specimen_storage": "Cut slide", + "tumour_histological_type": "string", + "specimen_anatomic_location": "string", + "reference_pathology_confirmed_diagnosis": "Yes", + "reference_pathology_confirmed_tumour_presence": "Yes", + "tumour_grading_system": "FNCLCC grading system", + "tumour_grade": "Low grade", + "percent_tumour_cells_range": "0-19%", + "percent_tumour_cells_measurement_method": "Genomics", + "specimen_processing": "Cryopreservation in liquid nitrogen (dead tissue)", + "specimen_laterality": "Left", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string" +} + +``` + +SpecimenModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_specimen_id|string|true|none|none| +|pathological_tumour_staging_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TumourStagingSystemEnum](#schematumourstagingsystemenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_t_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TCategoryEnum](#schematcategoryenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_n_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[NCategoryEnum](#schemancategoryenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_m_category|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[MCategoryEnum](#schemamcategoryenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|pathological_stage_group|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[StageGroupEnum](#schemastagegroupenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_collection_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_storage|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[StorageEnum](#schemastorageenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_histological_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_anatomic_location|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|reference_pathology_confirmed_diagnosis|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[ConfirmedDiagnosisTumourEnum](#schemaconfirmeddiagnosistumourenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|reference_pathology_confirmed_tumour_presence|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[ConfirmedDiagnosisTumourEnum](#schemaconfirmeddiagnosistumourenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_grading_system|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TumourGradingSystemEnum](#schematumourgradingsystemenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_grade|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TumourGradeEnum](#schematumourgradeenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|percent_tumour_cells_range|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[PercentCellsRangeEnum](#schemapercentcellsrangeenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|percent_tumour_cells_measurement_method|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[CellsMeasureMethodEnum](#schemacellsmeasuremethodenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_processing|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[SpecimenProcessingEnum](#schemaspecimenprocessingenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|specimen_laterality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[SpecimenLateralityEnum](#schemaspecimenlateralityenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_primary_diagnosis_id|string|true|none|none| + +

SpecimenProcessingEnum

+ + + + + + +```json +"Cryopreservation in liquid nitrogen (dead tissue)" + +``` + +SpecimenProcessingEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|SpecimenProcessingEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|SpecimenProcessingEnum|Cryopreservation in liquid nitrogen (dead tissue)| +|SpecimenProcessingEnum|Cryopreservation in dry ice (dead tissue)| +|SpecimenProcessingEnum|Cryopreservation of live cells in liquid nitrogen| +|SpecimenProcessingEnum|Cryopreservation - other| +|SpecimenProcessingEnum|Formalin fixed & paraffin embedded| +|SpecimenProcessingEnum|Formalin fixed - buffered| +|SpecimenProcessingEnum|Formalin fixed - unbuffered| +|SpecimenProcessingEnum|Fresh| +|SpecimenProcessingEnum|Other| +|SpecimenProcessingEnum|Unknown| + +

StorageEnum

+ + + + + + +```json +"Cut slide" + +``` + +StorageEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|StorageEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|StorageEnum|Cut slide| +|StorageEnum|Frozen in -70 freezer| +|StorageEnum|Frozen in liquid nitrogen| +|StorageEnum|Frozen in vapour phase| +|StorageEnum|Not Applicable| +|StorageEnum|Other| +|StorageEnum|Paraffin block| +|StorageEnum|RNA later frozen| +|StorageEnum|Unknown| + +

TumourGradeEnum

+ + + + + + +```json +"Low grade" + +``` + +TumourGradeEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TumourGradeEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TumourGradeEnum|Low grade| +|TumourGradeEnum|High grade| +|TumourGradeEnum|GX| +|TumourGradeEnum|G1| +|TumourGradeEnum|G2| +|TumourGradeEnum|G3| +|TumourGradeEnum|G4| +|TumourGradeEnum|Low| +|TumourGradeEnum|High| +|TumourGradeEnum|Grade 1| +|TumourGradeEnum|Grade 2| +|TumourGradeEnum|Grade 3| +|TumourGradeEnum|Grade 4| +|TumourGradeEnum|Grade I| +|TumourGradeEnum|Grade II| +|TumourGradeEnum|Grade III| +|TumourGradeEnum|Grade IV| +|TumourGradeEnum|Grade Group 1| +|TumourGradeEnum|Grade Group 2| +|TumourGradeEnum|Grade Group 3| +|TumourGradeEnum|Grade Group 4| +|TumourGradeEnum|Grade Group 5| + +

TumourGradingSystemEnum

+ + + + + + +```json +"FNCLCC grading system" + +``` + +TumourGradingSystemEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TumourGradingSystemEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TumourGradingSystemEnum|FNCLCC grading system| +|TumourGradingSystemEnum|Four-tier grading system| +|TumourGradingSystemEnum|Gleason grade group system| +|TumourGradingSystemEnum|Grading system for GISTs| +|TumourGradingSystemEnum|Grading system for GNETs| +|TumourGradingSystemEnum|IASLC grading system| +|TumourGradingSystemEnum|ISUP grading system| +|TumourGradingSystemEnum|Nottingham grading system| +|TumourGradingSystemEnum|Nuclear grading system for DCIS| +|TumourGradingSystemEnum|Scarff-Bloom-Richardson grading system| +|TumourGradingSystemEnum|Three-tier grading system| +|TumourGradingSystemEnum|Two-tier grading system| +|TumourGradingSystemEnum|WHO grading system for CNS tumours| + +

SurgeryFilterSchema

+ + + + + + +```json +{ + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "submitter_specimen_id": "string", + "surgery_type": "string", + "surgery_site": "string", + "surgery_location": "string", + "tumour_length": 0, + "tumour_width": 0, + "greatest_dimension_tumour": 0, + "tumour_focality": "string", + "residual_tumour_classification": "string", + "margin_types_involved": [ + "string" + ], + "margin_types_not_involved": [ + "string" + ], + "margin_types_not_assessed": [ + "string" + ], + "lymphovascular_invasion": "string", + "perineural_invasion": "string" +} + +``` + +SurgeryFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_specimen_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|surgery_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|surgery_site|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|surgery_location|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_length|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_width|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|greatest_dimension_tumour|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_focality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|residual_tumour_classification|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|margin_types_involved|[string]|false|none|none| +|margin_types_not_involved|[string]|false|none|none| +|margin_types_not_assessed|[string]|false|none|none| +|lymphovascular_invasion|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|perineural_invasion|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

LymphovascularInvasionEnum

+ + + + + + +```json +"Absent" + +``` + +LymphovascularInvasionEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|LymphovascularInvasionEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|LymphovascularInvasionEnum|Absent| +|LymphovascularInvasionEnum|Both lymphatic and small vessel and venous (large vessel) invasion| +|LymphovascularInvasionEnum|Lymphatic and small vessel invasion only| +|LymphovascularInvasionEnum|Not applicable| +|LymphovascularInvasionEnum|Present| +|LymphovascularInvasionEnum|Venous (large vessel) invasion only| +|LymphovascularInvasionEnum|Unknown| + +

MarginTypesEnum

+ + + + + + +```json +"Circumferential resection margin" + +``` + +MarginTypesEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|MarginTypesEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|MarginTypesEnum|Circumferential resection margin| +|MarginTypesEnum|Common bile duct margin| +|MarginTypesEnum|Distal margin| +|MarginTypesEnum|Not applicable| +|MarginTypesEnum|Proximal margin| +|MarginTypesEnum|Unknown| + +

PagedSurgeryModelSchema

+ + + + + + +```json +{ + "items": [ + { + "surgery_type": "Ablation", + "surgery_site": "string", + "surgery_location": "Local recurrence", + "tumour_focality": "Cannot be assessed", + "residual_tumour_classification": "Not applicable", + "margin_types_involved": [ + "Circumferential resection margin" + ], + "margin_types_not_involved": [ + "Circumferential resection margin" + ], + "margin_types_not_assessed": [ + "Circumferential resection margin" + ], + "lymphovascular_invasion": "Absent", + "perineural_invasion": "Absent", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "submitter_specimen_id": "string", + "tumour_length": 0, + "tumour_width": 0, + "greatest_dimension_tumour": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedSurgeryModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[SurgeryModelSchema](#schemasurgerymodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

PerineuralInvasionEnum

+ + + + + + +```json +"Absent" + +``` + +PerineuralInvasionEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|PerineuralInvasionEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|PerineuralInvasionEnum|Absent| +|PerineuralInvasionEnum|Cannot be assessed| +|PerineuralInvasionEnum|Not applicable| +|PerineuralInvasionEnum|Present| +|PerineuralInvasionEnum|Unknown| + +

SurgeryLocationEnum

+ + + + + + +```json +"Local recurrence" + +``` + +SurgeryLocationEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|SurgeryLocationEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|SurgeryLocationEnum|Local recurrence| +|SurgeryLocationEnum|Metastatic| +|SurgeryLocationEnum|Primary| + +

SurgeryModelSchema

+ + + + + + +```json +{ + "surgery_type": "Ablation", + "surgery_site": "string", + "surgery_location": "Local recurrence", + "tumour_focality": "Cannot be assessed", + "residual_tumour_classification": "Not applicable", + "margin_types_involved": [ + "Circumferential resection margin" + ], + "margin_types_not_involved": [ + "Circumferential resection margin" + ], + "margin_types_not_assessed": [ + "Circumferential resection margin" + ], + "lymphovascular_invasion": "Absent", + "perineural_invasion": "Absent", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_treatment_id": "string", + "submitter_specimen_id": "string", + "tumour_length": 0, + "tumour_width": 0, + "greatest_dimension_tumour": 0 +} + +``` + +SurgeryModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|surgery_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[SurgeryTypeEnum](#schemasurgerytypeenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|surgery_site|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|surgery_location|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[SurgeryLocationEnum](#schemasurgerylocationenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_focality|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TumourFocalityEnum](#schematumourfocalityenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|residual_tumour_classification|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TumourClassificationEnum](#schematumourclassificationenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|margin_types_involved|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[[MarginTypesEnum](#schemamargintypesenum)]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|margin_types_not_involved|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[[MarginTypesEnum](#schemamargintypesenum)]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|margin_types_not_assessed|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[[MarginTypesEnum](#schemamargintypesenum)]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|lymphovascular_invasion|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[LymphovascularInvasionEnum](#schemalymphovascularinvasionenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|perineural_invasion|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[PerineuralInvasionEnum](#schemaperineuralinvasionenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_treatment_id|string|true|none|none| +|submitter_specimen_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_length|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|tumour_width|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|greatest_dimension_tumour|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

SurgeryTypeEnum

+ + + + + + +```json +"Ablation" + +``` + +SurgeryTypeEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|SurgeryTypeEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|SurgeryTypeEnum|Ablation| +|SurgeryTypeEnum|Axillary Clearance| +|SurgeryTypeEnum|Axillary lymph nodes sampling| +|SurgeryTypeEnum|Bilateral complete salpingo-oophorectomy| +|SurgeryTypeEnum|Biopsy| +|SurgeryTypeEnum|Bypass Gastrojejunostomy| +|SurgeryTypeEnum|Cholecystectomy| +|SurgeryTypeEnum|Cholecystojejunostomy| +|SurgeryTypeEnum|Completion Gastrectomy| +|SurgeryTypeEnum|Debridement of pancreatic and peripancreatic necrosis| +|SurgeryTypeEnum|Distal subtotal pancreatectomy| +|SurgeryTypeEnum|Drainage of abscess| +|SurgeryTypeEnum|Duodenal preserving pancreatic head resection| +|SurgeryTypeEnum|Endoscopic biopsy| +|SurgeryTypeEnum|Endoscopic brushings of gastrointestinal tract| +|SurgeryTypeEnum|Enucleation| +|SurgeryTypeEnum|Esophageal bypass surgery/jejunostomy only| +|SurgeryTypeEnum|Exploratory laparotomy| +|SurgeryTypeEnum|Fine needle aspiration biopsy| +|SurgeryTypeEnum|Gastric Antrectomy| +|SurgeryTypeEnum|Glossectomy| +|SurgeryTypeEnum|Hepatojejunostomy| +|SurgeryTypeEnum|Hysterectomy| +|SurgeryTypeEnum|Incision of thorax| +|SurgeryTypeEnum|Ivor Lewis subtotal esophagectomy| +|SurgeryTypeEnum|Laparotomy| +|SurgeryTypeEnum|Left thoracoabdominal incision| +|SurgeryTypeEnum|Lobectomy| +|SurgeryTypeEnum|Mammoplasty| +|SurgeryTypeEnum|Mastectomy| +|SurgeryTypeEnum|McKeown esophagectomy| +|SurgeryTypeEnum|Merendino procedure| +|SurgeryTypeEnum|Minimally invasive esophagectomy| +|SurgeryTypeEnum|Omentectomy| +|SurgeryTypeEnum|Ovariectomy| +|SurgeryTypeEnum|Pancreaticoduodenectomy (Whipple procedure)| +|SurgeryTypeEnum|Pancreaticojejunostomy, side-to-side anastomosis| +|SurgeryTypeEnum|Partial pancreatectomy| +|SurgeryTypeEnum|Pneumonectomy| +|SurgeryTypeEnum|Prostatectomy| +|SurgeryTypeEnum|Proximal subtotal gastrectomy| +|SurgeryTypeEnum|Pylorus-sparing Whipple operation| +|SurgeryTypeEnum|Radical pancreaticoduodenectomy| +|SurgeryTypeEnum|Radical prostatectomy| +|SurgeryTypeEnum|Reexcision| +|SurgeryTypeEnum|Segmentectomy| +|SurgeryTypeEnum|Sentinal Lymph Node Biopsy| +|SurgeryTypeEnum|Spleen preserving distal pancreatectomy| +|SurgeryTypeEnum|Splenectomy| +|SurgeryTypeEnum|Total gastrectomy| +|SurgeryTypeEnum|Total gastrectomy with extended lymphadenectomy| +|SurgeryTypeEnum|Total pancreatectomy| +|SurgeryTypeEnum|Transhiatal esophagectomy| +|SurgeryTypeEnum|Triple bypass of pancreas| +|SurgeryTypeEnum|Tumor Debulking| +|SurgeryTypeEnum|Wedge/localised gastric resection| +|SurgeryTypeEnum|Wide Local Excision| + +

TumourClassificationEnum

+ + + + + + +```json +"Not applicable" + +``` + +TumourClassificationEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TumourClassificationEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TumourClassificationEnum|Not applicable| +|TumourClassificationEnum|RX| +|TumourClassificationEnum|R0| +|TumourClassificationEnum|R1| +|TumourClassificationEnum|R2| +|TumourClassificationEnum|Unknown| + +

TumourFocalityEnum

+ + + + + + +```json +"Cannot be assessed" + +``` + +TumourFocalityEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TumourFocalityEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TumourFocalityEnum|Cannot be assessed| +|TumourFocalityEnum|Multifocal| +|TumourFocalityEnum|Not applicable| +|TumourFocalityEnum|Unifocal| +|TumourFocalityEnum|Unknown| + +

TreatmentFilterSchema

+ + + + + + +```json +{ + "submitter_treatment_id": "string", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string", + "treatment_type": [ + "string" + ], + "is_primary_treatment": "string", + "line_of_treatment": 0, + "treatment_start_date": "string", + "treatment_end_date": "string", + "treatment_setting": "string", + "treatment_intent": "string", + "days_per_cycle": 0, + "number_of_cycles": 0, + "response_to_treatment_criteria_method": "string", + "response_to_treatment": "string", + "status_of_treatment": "string" +} + +``` + +TreatmentFilterSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_donor_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_primary_diagnosis_id|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_type|[string]|false|none|none| +|is_primary_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|line_of_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_start_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_end_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_setting|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_intent|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|days_per_cycle|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|number_of_cycles|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|response_to_treatment_criteria_method|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|response_to_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|status_of_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

PagedTreatmentModelSchema

+ + + + + + +```json +{ + "items": [ + { + "submitter_treatment_id": "string", + "treatment_type": [ + "Bone marrow transplant" + ], + "is_primary_treatment": "Yes", + "treatment_start_date": "string", + "treatment_end_date": "string", + "treatment_setting": "Adjuvant", + "treatment_intent": "Curative", + "response_to_treatment_criteria_method": "RECIST 1.1", + "response_to_treatment": "Complete response", + "status_of_treatment": "Treatment completed as prescribed", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string", + "line_of_treatment": 0, + "days_per_cycle": 0, + "number_of_cycles": 0 + } + ], + "count": 0, + "next_page": 0, + "previous_page": 0 +} + +``` + +PagedTreatmentModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|items|[[TreatmentModelSchema](#schematreatmentmodelschema)]|true|none|none| +|count|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|next_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|previous_page|any|true|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

TreatmentIntentEnum

+ + + + + + +```json +"Curative" + +``` + +TreatmentIntentEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TreatmentIntentEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TreatmentIntentEnum|Curative| +|TreatmentIntentEnum|Palliative| +|TreatmentIntentEnum|Supportive| +|TreatmentIntentEnum|Diagnostic| +|TreatmentIntentEnum|Preventive| +|TreatmentIntentEnum|Guidance| +|TreatmentIntentEnum|Screening| +|TreatmentIntentEnum|Forensic| + +

TreatmentModelSchema

+ + + + + + +```json +{ + "submitter_treatment_id": "string", + "treatment_type": [ + "Bone marrow transplant" + ], + "is_primary_treatment": "Yes", + "treatment_start_date": "string", + "treatment_end_date": "string", + "treatment_setting": "Adjuvant", + "treatment_intent": "Curative", + "response_to_treatment_criteria_method": "RECIST 1.1", + "response_to_treatment": "Complete response", + "status_of_treatment": "Treatment completed as prescribed", + "program_id": "string", + "submitter_donor_id": "string", + "submitter_primary_diagnosis_id": "string", + "line_of_treatment": 0, + "days_per_cycle": 0, + "number_of_cycles": 0 +} + +``` + +TreatmentModelSchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|submitter_treatment_id|string|true|none|none| +|treatment_type|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[[TreatmentTypeEnum](#schematreatmenttypeenum)]|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|is_primary_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[uBooleanEnum](#schemaubooleanenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_start_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_end_date|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|string|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_setting|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TreatmentSettingEnum](#schematreatmentsettingenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|treatment_intent|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TreatmentIntentEnum](#schematreatmentintentenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|response_to_treatment_criteria_method|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TreatmentResponseMethodEnum](#schematreatmentresponsemethodenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|response_to_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TreatmentResponseEnum](#schematreatmentresponseenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|status_of_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|[TreatmentStatusEnum](#schematreatmentstatusenum)|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|program_id|string|true|none|none| +|submitter_donor_id|string|true|none|none| +|submitter_primary_diagnosis_id|string|true|none|none| +|line_of_treatment|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|days_per_cycle|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +continued + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|number_of_cycles|any|false|none|none| + +anyOf + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|integer|false|none|none| + +or + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|» *anonymous*|null|false|none|none| + +

TreatmentResponseEnum

+ + + + + + +```json +"Complete response" + +``` + +TreatmentResponseEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TreatmentResponseEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TreatmentResponseEnum|Complete response| +|TreatmentResponseEnum|Partial response| +|TreatmentResponseEnum|Progressive disease| +|TreatmentResponseEnum|Stable disease| +|TreatmentResponseEnum|Immune complete response (iCR)| +|TreatmentResponseEnum|Immune partial response (iPR)| +|TreatmentResponseEnum|Immune uncomfirmed progressive disease (iUPD)| +|TreatmentResponseEnum|Immune confirmed progressive disease (iCPD)| +|TreatmentResponseEnum|Immune stable disease (iSD)| +|TreatmentResponseEnum|Complete remission| +|TreatmentResponseEnum|Partial remission| +|TreatmentResponseEnum|Minor response| +|TreatmentResponseEnum|Complete remission without measurable residual disease (CR MRD-)| +|TreatmentResponseEnum|Complete remission with incomplete hematologic recovery (CRi)| +|TreatmentResponseEnum|Morphologic leukemia-free state| +|TreatmentResponseEnum|Primary refractory disease| +|TreatmentResponseEnum|Hematologic relapse (after CR MRD-, CR, CRi)| +|TreatmentResponseEnum|Molecular relapse (after CR MRD-)| +|TreatmentResponseEnum|Physician assessed complete response| +|TreatmentResponseEnum|Physician assessed partial response| +|TreatmentResponseEnum|Physician assessed stable disease| +|TreatmentResponseEnum|No evidence of disease (NED)| +|TreatmentResponseEnum|Major response| + +

TreatmentResponseMethodEnum

+ + + + + + +```json +"RECIST 1.1" + +``` + +TreatmentResponseMethodEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TreatmentResponseMethodEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TreatmentResponseMethodEnum|RECIST 1.1| +|TreatmentResponseMethodEnum|iRECIST| +|TreatmentResponseMethodEnum|Cheson CLL 2012 Oncology Response Criteria| +|TreatmentResponseMethodEnum|Response Assessment in Neuro-Oncology (RANO)| +|TreatmentResponseMethodEnum|AML Response Criteria| +|TreatmentResponseMethodEnum|Physician Assessed Response Criteria| +|TreatmentResponseMethodEnum|Blazer score| + +

TreatmentSettingEnum

+ + + + + + +```json +"Adjuvant" + +``` + +TreatmentSettingEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TreatmentSettingEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TreatmentSettingEnum|Adjuvant| +|TreatmentSettingEnum|Advanced/Metastatic| +|TreatmentSettingEnum|Neoadjuvant| +|TreatmentSettingEnum|Conditioning| +|TreatmentSettingEnum|Induction| +|TreatmentSettingEnum|Locally advanced| +|TreatmentSettingEnum|Maintenance| +|TreatmentSettingEnum|Mobilization| +|TreatmentSettingEnum|Preventative| +|TreatmentSettingEnum|Radiosensitization| +|TreatmentSettingEnum|Salvage| + +

TreatmentStatusEnum

+ + + + + + +```json +"Treatment completed as prescribed" + +``` + +TreatmentStatusEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TreatmentStatusEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TreatmentStatusEnum|Treatment completed as prescribed| +|TreatmentStatusEnum|Treatment incomplete due to technical or organizational problems| +|TreatmentStatusEnum|Treatment incomplete because patient died| +|TreatmentStatusEnum|Patient choice (stopped or interrupted treatment)| +|TreatmentStatusEnum|Physician decision (stopped or interrupted treatment)| +|TreatmentStatusEnum|Treatment stopped due to lack of efficacy (disease progression)| +|TreatmentStatusEnum|Treatment stopped due to acute toxicity| +|TreatmentStatusEnum|Other| +|TreatmentStatusEnum|Not applicable| +|TreatmentStatusEnum|Unknown| + +

TreatmentTypeEnum

+ + + + + + +```json +"Bone marrow transplant" + +``` + +TreatmentTypeEnum + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|TreatmentTypeEnum|string|false|none|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|TreatmentTypeEnum|Bone marrow transplant| +|TreatmentTypeEnum|Chemotherapy| +|TreatmentTypeEnum|Hormonal therapy| +|TreatmentTypeEnum|Immunotherapy| +|TreatmentTypeEnum|No treatment| +|TreatmentTypeEnum|Other targeting molecular therapy| +|TreatmentTypeEnum|Photodynamic therapy| +|TreatmentTypeEnum|Radiation therapy| +|TreatmentTypeEnum|Stem cell transplant| +|TreatmentTypeEnum|Surgery| + +

ProgramDiscoverySchema

+ + + + + + +```json +{ + "cohort_list": [ + "string" + ] +} + +``` + +ProgramDiscoverySchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|cohort_list|[string]|true|none|none| + +

DiscoverySchema

+ + + + + + +```json +{ + "donors_by_cohort": { + "property1": 0, + "property2": 0 + } +} + +``` + +DiscoverySchema + +### Properties + +|Name|Type|Required|Restrictions|Description| +|---|---|---|---|---| +|donors_by_cohort|object|true|none|none| +|» **additionalProperties**|integer|false|none|none| + diff --git a/chord_metadata_service/mohpackets/docs/schema.yml b/chord_metadata_service/mohpackets/docs/schema.yml index 14aafd044..61c7c24b9 100644 --- a/chord_metadata_service/mohpackets/docs/schema.yml +++ b/chord_metadata_service/mohpackets/docs/schema.yml @@ -1,6180 +1,5608 @@ -openapi: 3.0.3 -info: - title: MoH Service API - version: 2.3.0 - description: This is the RESTful API for the MoH Service. Based on https://raw.githubusercontent.com/CanDIG/katsu/e9992d7585a9a0052570d86a217a02e37fd2594e/chord_metadata_service/mohpackets/docs/schema.yml -paths: - /v2/authorized/biomarkers/: - get: - operationId: authorized_biomarkers_list - description: Retrieves a list of authorized biomarkers. - parameters: - - in: query - name: id - schema: - type: string - format: uuid - - in: query - name: program_id - schema: +components: + schemas: + BasisOfDiagnosisEnum: + enum: + - Clinical investigation + - Clinical + - Cytology + - Death certificate only + - Histology of a metastasis + - Histology of a primary tumour + - Specific tumour markers + - Unknown + title: BasisOfDiagnosisEnum + type: string + BiomarkerFilterSchema: + properties: + ca125: + anyOf: + - type: integer + - type: 'null' + title: Ca125 + cea: + anyOf: + - type: integer + - type: 'null' + title: Cea + er_percent_positive: + anyOf: + - type: number + - type: 'null' + title: Er Percent Positive + er_status: + anyOf: + - type: string + - type: 'null' + title: Er Status + her2_ihc_status: + anyOf: + - type: string + - type: 'null' + title: Her2 Ihc Status + her2_ish_status: + anyOf: + - type: string + - type: 'null' + title: Her2 Ish Status + hpv_ihc_status: + anyOf: + - type: string + - type: 'null' + title: Hpv Ihc Status + hpv_pcr_status: + anyOf: + - type: string + - type: 'null' + title: Hpv Pcr Status + hpv_strain: + items: + type: string + q: hpv_strain__overlap + title: Hpv Strain + type: array + pr_percent_positive: + anyOf: + - type: number + - type: 'null' + title: Pr Percent Positive + pr_status: + anyOf: + - type: string + - type: 'null' + title: Pr Status + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + psa_level: + anyOf: + - type: integer + - type: 'null' + title: Psa Level + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + submitter_follow_up_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Follow Up Id + submitter_primary_diagnosis_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + submitter_specimen_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Specimen Id + submitter_treatment_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + test_date: + anyOf: + - type: string + - type: 'null' + title: Test Date + title: BiomarkerFilterSchema + type: object + BiomarkerIngestSchema: + properties: + ca125: + anyOf: + - type: integer + - type: 'null' + title: Ca125 + cea: + anyOf: + - type: integer + - type: 'null' + title: Cea + er_percent_positive: + anyOf: + - type: number + - type: 'null' + title: Er Percent Positive + er_status: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Er Status + her2_ihc_status: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Her2 Ihc Status + her2_ish_status: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Her2 Ish Status + hpv_ihc_status: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Hpv Ihc Status + hpv_pcr_status: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Hpv Pcr Status + hpv_strain: + anyOf: + - items: {} + type: array + - type: 'null' + title: Hpv Strain + pr_percent_positive: + anyOf: + - type: number + - type: 'null' + title: Pr Percent Positive + pr_status: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Pr Status + program_id: + title: Program Id type: string - - in: query - name: submitter_donor_id - schema: + psa_level: + anyOf: + - type: integer + - type: 'null' + title: Psa Level + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: submitter_specimen_id - schema: + submitter_follow_up_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Follow Up Id + submitter_primary_diagnosis_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + submitter_specimen_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Specimen Id + submitter_treatment_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Treatment Id + test_date: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Test Date + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid + required: + - program_id + - submitter_donor_id + title: BiomarkerIngestSchema + type: object + BiomarkerModelSchema: + properties: + ca125: + anyOf: + - type: integer + - type: 'null' + title: Ca125 + cea: + anyOf: + - type: integer + - type: 'null' + title: Cea + er_percent_positive: + anyOf: + - type: number + - type: 'null' + title: Er Percent Positive + er_status: + anyOf: + - $ref: '#/components/schemas/ErPrHpvStatusEnum' + - type: 'null' + her2_ihc_status: + anyOf: + - $ref: '#/components/schemas/Her2StatusEnum' + - type: 'null' + her2_ish_status: + anyOf: + - $ref: '#/components/schemas/Her2StatusEnum' + - type: 'null' + hpv_ihc_status: + anyOf: + - $ref: '#/components/schemas/ErPrHpvStatusEnum' + - type: 'null' + hpv_pcr_status: + anyOf: + - $ref: '#/components/schemas/ErPrHpvStatusEnum' + - type: 'null' + hpv_strain: + anyOf: + - items: + $ref: '#/components/schemas/HpvStrainEnum' + type: array + - type: 'null' + title: Hpv Strain + pr_percent_positive: + anyOf: + - type: number + - type: 'null' + title: Pr Percent Positive + pr_status: + anyOf: + - $ref: '#/components/schemas/ErPrHpvStatusEnum' + - type: 'null' + program_id: + title: Program Id type: string - - in: query - name: submitter_primary_diagnosis_id - schema: + psa_level: + anyOf: + - type: integer + - type: 'null' + title: Psa Level + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: submitter_treatment_id - schema: + submitter_follow_up_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Follow Up Id + submitter_primary_diagnosis_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + submitter_specimen_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Specimen Id + submitter_treatment_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Treatment Id + test_date: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Test Date + required: + - program_id + - submitter_donor_id + title: BiomarkerModelSchema + type: object + CauseOfDeathEnum: + enum: + - Died of cancer + - Died of other reasons + - Unknown + title: CauseOfDeathEnum + type: string + CellsMeasureMethodEnum: + enum: + - Genomics + - Image analysis + - Pathology estimate by percent nuclei + - Unknown + title: CellsMeasureMethodEnum + type: string + ChemotherapyFilterSchema: + properties: + actual_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + chemotherapy_drug_dose_units: + anyOf: + - type: string + - type: 'null' + title: Chemotherapy Drug Dose Units + drug_name: + anyOf: + - type: string + - type: 'null' + title: Drug Name + drug_reference_database: + anyOf: + - type: string + - type: 'null' + title: Drug Reference Database + drug_reference_identifier: + anyOf: + - type: string + - type: 'null' + title: Drug Reference Identifier + prescribed_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + submitter_treatment_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + title: ChemotherapyFilterSchema + type: object + ChemotherapyIngestSchema: + properties: + actual_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + chemotherapy_drug_dose_units: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Chemotherapy Drug Dose Units + drug_name: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Drug Name + drug_reference_database: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Database + drug_reference_identifier: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Identifier + prescribed_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + program_id: + title: Program Id type: string - - in: query - name: submitter_follow_up_id - schema: + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: test_date - schema: + submitter_treatment_id: + maxLength: 64 + title: Submitter Treatment Id type: string - - in: query - name: psa_level - schema: - type: integer - - in: query - name: ca125 - schema: - type: integer - - in: query - name: cea - schema: - type: integer - - in: query - name: er_status - schema: + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid + required: + - program_id + - submitter_donor_id + - submitter_treatment_id + title: ChemotherapyIngestSchema + type: object + ChemotherapyModelSchema: + properties: + actual_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + chemotherapy_drug_dose_units: + anyOf: + - $ref: '#/components/schemas/DosageUnitsEnum' + - type: 'null' + drug_name: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Drug Name + drug_reference_database: + anyOf: + - $ref: '#/components/schemas/DrugReferenceDbEnum' + - type: 'null' + drug_reference_identifier: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Identifier + prescribed_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + program_id: + title: Program Id type: string - - in: query - name: er_percent_positive - schema: - type: number - format: float - - in: query - name: pr_status - schema: + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: pr_percent_positive - schema: - type: number - format: float - - in: query - name: her2_ihc_status - schema: + submitter_treatment_id: + maxLength: 64 + title: Submitter Treatment Id type: string - - in: query - name: her2_ish_status - schema: + required: + - program_id + - submitter_donor_id + - submitter_treatment_id + title: ChemotherapyModelSchema + type: object + ComorbidityFilterSchema: + properties: + age_at_comorbidity_diagnosis: + anyOf: + - type: integer + - type: 'null' + title: Age At Comorbidity Diagnosis + comorbidity_treatment: + anyOf: + - type: string + - type: 'null' + title: Comorbidity Treatment + comorbidity_treatment_status: + anyOf: + - type: string + - type: 'null' + title: Comorbidity Treatment Status + comorbidity_type_code: + anyOf: + - type: string + - type: 'null' + title: Comorbidity Type Code + laterality_of_prior_malignancy: + anyOf: + - type: string + - type: 'null' + title: Laterality Of Prior Malignancy + prior_malignancy: + anyOf: + - type: string + - type: 'null' + title: Prior Malignancy + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + title: ComorbidityFilterSchema + type: object + ComorbidityIngestSchema: + properties: + age_at_comorbidity_diagnosis: + anyOf: + - type: integer + - type: 'null' + title: Age At Comorbidity Diagnosis + comorbidity_treatment: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Comorbidity Treatment + comorbidity_treatment_status: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Comorbidity Treatment Status + comorbidity_type_code: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Comorbidity Type Code + laterality_of_prior_malignancy: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Laterality Of Prior Malignancy + prior_malignancy: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Prior Malignancy + program_id: + title: Program Id type: string - - in: query - name: hpv_ihc_status - schema: + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: hpv_pcr_status - schema: + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid + required: + - program_id + - submitter_donor_id + title: ComorbidityIngestSchema + type: object + ComorbidityModelSchema: + properties: + age_at_comorbidity_diagnosis: + anyOf: + - type: integer + - type: 'null' + title: Age At Comorbidity Diagnosis + comorbidity_treatment: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Comorbidity Treatment + comorbidity_treatment_status: + anyOf: + - $ref: '#/components/schemas/uBooleanEnum' + - type: 'null' + comorbidity_type_code: + anyOf: + - maxLength: 64 + pattern: ^[A-Z][0-9]{2}(.[0-9]{1,3}[A-Z]{0,1})?$ + type: string + - type: 'null' + title: Comorbidity Type Code + laterality_of_prior_malignancy: + anyOf: + - $ref: '#/components/schemas/MalignancyLateralityEnum' + - type: 'null' + prior_malignancy: + anyOf: + - $ref: '#/components/schemas/uBooleanEnum' + - type: 'null' + program_id: + title: Program Id type: string - - in: query - name: hpv_strain - schema: + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedBiomarkerList' - description: '' - /v2/authorized/chemotherapies/: - get: - operationId: authorized_chemotherapies_list - description: Retrieves a list of authorized chemotherapies. - parameters: - - in: query - name: id - schema: + required: + - program_id + - submitter_donor_id + title: ComorbidityModelSchema + type: object + ConfirmedDiagnosisTumourEnum: + enum: + - 'Yes' + - 'No' + - Not done + - Unknown + title: ConfirmedDiagnosisTumourEnum + type: string + DiscoverySchema: + properties: + donors_by_cohort: + additionalProperties: + type: integer + title: Donors By Cohort + type: object + required: + - donors_by_cohort + title: DiscoverySchema + type: object + DiseaseStatusFollowupEnum: + enum: + - Complete remission + - Distant progression + - Loco-regional progression + - No evidence of disease + - Partial remission + - Progression not otherwise specified + - Relapse or recurrence + - Stable + title: DiseaseStatusFollowupEnum + type: string + DonorFilterSchema: + properties: + cause_of_death: + anyOf: + - type: string + - type: 'null' + title: Cause Of Death + date_alive_after_lost_to_followup: + anyOf: + - type: string + - type: 'null' + title: Date Alive After Lost To Followup + date_of_birth: + anyOf: + - type: string + - type: 'null' + title: Date Of Birth + date_of_death: + anyOf: + - type: string + - type: 'null' + title: Date Of Death + gender: + anyOf: + - type: string + - type: 'null' + q: gender__icontains + title: Gender + is_deceased: + anyOf: + - type: boolean + - type: 'null' + title: Is Deceased + lost_to_followup_after_clinical_event_identifier: + anyOf: + - type: string + - type: 'null' + title: Lost To Followup After Clinical Event Identifier + lost_to_followup_reason: + anyOf: + - type: string + - type: 'null' + title: Lost To Followup Reason + primary_site: + items: + type: string + q: primary_site__overlap + title: Primary Site + type: array + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + sex_at_birth: + anyOf: + - type: string + - type: 'null' + title: Sex At Birth + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + title: DonorFilterSchema + type: object + DonorIngestSchema: + properties: + cause_of_death: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Cause Of Death + date_alive_after_lost_to_followup: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Date Alive After Lost To Followup + date_of_birth: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Date Of Birth + date_of_death: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Date Of Death + gender: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Gender + is_deceased: + anyOf: + - type: boolean + - type: 'null' + title: Is Deceased + lost_to_followup_after_clinical_event_identifier: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Lost To Followup After Clinical Event Identifier + lost_to_followup_reason: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Lost To Followup Reason + primary_site: + anyOf: + - items: {} + type: array + - type: 'null' + title: Primary Site + program_id: + title: Program Id type: string - format: uuid - - in: query - name: program_id - schema: + sex_at_birth: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Sex At Birth + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: submitter_donor_id - schema: + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid + required: + - program_id + - submitter_donor_id + title: DonorIngestSchema + type: object + DonorModelSchema: + properties: + cause_of_death: + anyOf: + - $ref: '#/components/schemas/CauseOfDeathEnum' + - type: 'null' + date_alive_after_lost_to_followup: + anyOf: + - maxLength: 32 + pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? + type: string + - type: 'null' + title: Date Alive After Lost To Followup + date_of_birth: + anyOf: + - maxLength: 32 + pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? + type: string + - type: 'null' + title: Date Of Birth + date_of_death: + anyOf: + - maxLength: 32 + pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? + type: string + - type: 'null' + title: Date Of Death + gender: + anyOf: + - $ref: '#/components/schemas/GenderEnum' + - type: 'null' + is_deceased: + anyOf: + - type: boolean + - type: 'null' + title: Is Deceased + lost_to_followup_after_clinical_event_identifier: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Lost To Followup After Clinical Event Identifier + lost_to_followup_reason: + anyOf: + - $ref: '#/components/schemas/LostToFollowupReasonEnum' + - type: 'null' + primary_site: + anyOf: + - items: + $ref: '#/components/schemas/PrimarySiteEnum' + type: array + - type: 'null' + title: Primary Site + program_id: + title: Program Id type: string - - in: query - name: submitter_treatment_id - schema: + sex_at_birth: + anyOf: + - $ref: '#/components/schemas/SexAtBirthEnum' + - type: 'null' + submitter_donor_id: + maxLength: 64 + pattern: ^[A-Za-z0-9\-\._]{1,64} + title: Submitter Donor Id type: string - - in: query - name: drug_reference_database - schema: + required: + - submitter_donor_id + - program_id + title: DonorModelSchema + type: object + DonorWithClinicalDataSchema: + properties: + biomarkers: + items: + $ref: '#/components/schemas/NestedBiomarkerSchema' + title: Biomarkers + type: array + cause_of_death: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Cause Of Death + comorbidities: + items: + $ref: '#/components/schemas/NestedComorbiditySchema' + title: Comorbidities + type: array + date_alive_after_lost_to_followup: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Date Alive After Lost To Followup + date_of_birth: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Date Of Birth + date_of_death: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Date Of Death + exposures: + items: + $ref: '#/components/schemas/NestedExposureSchema' + title: Exposures + type: array + followups: + items: + $ref: '#/components/schemas/NestedFollowUpSchema' + title: Followups + type: array + gender: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Gender + is_deceased: + anyOf: + - type: boolean + - type: 'null' + title: Is Deceased + lost_to_followup_after_clinical_event_identifier: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Lost To Followup After Clinical Event Identifier + lost_to_followup_reason: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Lost To Followup Reason + primary_diagnoses: + items: + $ref: '#/components/schemas/NestedPrimaryDiagnosisSchema' + title: Primary Diagnoses + type: array + primary_site: + anyOf: + - items: {} + type: array + - type: 'null' + title: Primary Site + program_id: + title: Program Id type: string - - in: query - name: drug_name - schema: + sex_at_birth: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Sex At Birth + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: drug_reference_identifier - schema: + required: + - submitter_donor_id + - program_id + title: DonorWithClinicalDataSchema + type: object + DosageUnitsEnum: + enum: + - mg/m2 + - IU/m2 + - IU/kg + - ug/m2 + - g/m2 + - mg/kg + - cells/kg + title: DosageUnitsEnum + type: string + DrugReferenceDbEnum: + enum: + - RxNorm + - PubChem + - NCI Thesaurus + title: DrugReferenceDbEnum + type: string + ErPrHpvStatusEnum: + enum: + - Cannot be determined + - Negative + - Not applicable + - Positive + - Unknown + title: ErPrHpvStatusEnum + type: string + ExposureFilterSchema: + properties: + pack_years_smoked: + anyOf: + - type: number + - type: 'null' + title: Pack Years Smoked + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + tobacco_smoking_status: + anyOf: + - type: string + - type: 'null' + title: Tobacco Smoking Status + tobacco_type: + items: + type: string + q: tobacco_type__overlap + title: Tobacco Type + type: array + title: ExposureFilterSchema + type: object + ExposureIngestSchema: + properties: + pack_years_smoked: + anyOf: + - type: number + - type: 'null' + title: Pack Years Smoked + program_id: + title: Program Id type: string - - in: query - name: chemotherapy_drug_dose_units - schema: + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: prescribed_cumulative_drug_dose - schema: - type: integer - - in: query - name: actual_cumulative_drug_dose - schema: - type: integer - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedChemotherapyList' - description: '' - /v2/authorized/comorbidities/: - get: - operationId: authorized_comorbidities_list - description: Retrieves a list of authorized comorbidities. - parameters: - - in: query - name: id - schema: - type: string - format: uuid - - in: query - name: program_id - schema: + tobacco_smoking_status: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Tobacco Smoking Status + tobacco_type: + anyOf: + - items: {} + type: array + - type: 'null' + title: Tobacco Type + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid + required: + - program_id + - submitter_donor_id + title: ExposureIngestSchema + type: object + ExposureModelSchema: + properties: + pack_years_smoked: + anyOf: + - type: number + - type: 'null' + title: Pack Years Smoked + program_id: + title: Program Id type: string - - in: query - name: submitter_donor_id - schema: + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: prior_malignancy - schema: + tobacco_smoking_status: + anyOf: + - $ref: '#/components/schemas/SmokingStatusEnum' + - type: 'null' + tobacco_type: + anyOf: + - items: + $ref: '#/components/schemas/TobaccoTypeEnum' + type: array + - type: 'null' + title: Tobacco Type + required: + - program_id + - submitter_donor_id + title: ExposureModelSchema + type: object + FollowUpFilterSchema: + properties: + anatomic_site_progression_or_recurrence: + items: + type: string + q: anatomic_site_progression_or_recurrence__overlap + title: Anatomic Site Progression Or Recurrence + type: array + date_of_followup: + anyOf: + - type: string + - type: 'null' + title: Date Of Followup + date_of_relapse: + anyOf: + - type: string + - type: 'null' + title: Date Of Relapse + disease_status_at_followup: + anyOf: + - type: string + - type: 'null' + title: Disease Status At Followup + method_of_progression_status: + items: + type: string + q: method_of_progression_status__overlap + title: Method Of Progression Status + type: array + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + recurrence_m_category: + anyOf: + - type: string + - type: 'null' + title: Recurrence M Category + recurrence_n_category: + anyOf: + - type: string + - type: 'null' + title: Recurrence N Category + recurrence_stage_group: + anyOf: + - type: string + - type: 'null' + title: Recurrence Stage Group + recurrence_t_category: + anyOf: + - type: string + - type: 'null' + title: Recurrence T Category + recurrence_tumour_staging_system: + anyOf: + - type: string + - type: 'null' + title: Recurrence Tumour Staging System + relapse_type: + anyOf: + - type: string + - type: 'null' + title: Relapse Type + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + submitter_follow_up_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Follow Up Id + submitter_primary_diagnosis_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + submitter_treatment_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + title: FollowUpFilterSchema + type: object + FollowUpIngestSchema: + properties: + anatomic_site_progression_or_recurrence: + anyOf: + - items: {} + type: array + - type: 'null' + title: Anatomic Site Progression Or Recurrence + date_of_followup: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Date Of Followup + date_of_relapse: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Date Of Relapse + disease_status_at_followup: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Disease Status At Followup + method_of_progression_status: + anyOf: + - items: {} + type: array + - type: 'null' + title: Method Of Progression Status + primary_diagnosis_uuid_id: + anyOf: + - format: uuid + type: string + - type: 'null' + title: Primary Diagnosis Uuid + program_id: + title: Program Id type: string - - in: query - name: laterality_of_prior_malignancy - schema: + recurrence_m_category: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Recurrence M Category + recurrence_n_category: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Recurrence N Category + recurrence_stage_group: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Recurrence Stage Group + recurrence_t_category: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Recurrence T Category + recurrence_tumour_staging_system: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Recurrence Tumour Staging System + relapse_type: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Relapse Type + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: age_at_comorbidity_diagnosis - schema: - type: integer - - in: query - name: comorbidity_type_code - schema: + submitter_follow_up_id: + maxLength: 64 + title: Submitter Follow Up Id type: string - - in: query - name: comorbidity_treatment_status - schema: + submitter_primary_diagnosis_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + submitter_treatment_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Treatment Id + treatment_uuid_id: + anyOf: + - format: uuid + type: string + - type: 'null' + title: Treatment Uuid + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid + required: + - program_id + - submitter_follow_up_id + - submitter_donor_id + title: FollowUpIngestSchema + type: object + FollowUpModelSchema: + properties: + anatomic_site_progression_or_recurrence: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Anatomic Site Progression Or Recurrence + date_of_followup: + anyOf: + - maxLength: 32 + pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? + type: string + - type: 'null' + title: Date Of Followup + date_of_relapse: + anyOf: + - maxLength: 32 + pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? + type: string + - type: 'null' + title: Date Of Relapse + disease_status_at_followup: + anyOf: + - $ref: '#/components/schemas/DiseaseStatusFollowupEnum' + - type: 'null' + method_of_progression_status: + anyOf: + - items: + $ref: '#/components/schemas/ProgressionStatusMethodEnum' + type: array + - type: 'null' + title: Method Of Progression Status + primary_diagnosis_uuid: + anyOf: + - format: uuid + type: string + - type: 'null' + title: Primary Diagnosis Uuid + program_id: + title: Program Id type: string - - in: query - name: comorbidity_treatment - schema: + recurrence_m_category: + anyOf: + - $ref: '#/components/schemas/MCategoryEnum' + - type: 'null' + recurrence_n_category: + anyOf: + - $ref: '#/components/schemas/NCategoryEnum' + - type: 'null' + recurrence_stage_group: + anyOf: + - $ref: '#/components/schemas/StageGroupEnum' + - type: 'null' + recurrence_t_category: + anyOf: + - $ref: '#/components/schemas/TCategoryEnum' + - type: 'null' + recurrence_tumour_staging_system: + anyOf: + - $ref: '#/components/schemas/TumourStagingSystemEnum' + - type: 'null' + relapse_type: + anyOf: + - $ref: '#/components/schemas/RelapseTypeEnum' + - type: 'null' + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedComorbidityList' - description: '' - /v2/authorized/donor_with_clinical_data/: - get: - operationId: authorized_donor_with_clinical_data_list - description: Retrieves a list of authorized Donor with clinical data. - parameters: - - in: query - name: submitter_donor_id - schema: + submitter_follow_up_id: + maxLength: 64 + pattern: ^[A-Za-z0-9\-\._]{1,64} + title: Submitter Follow Up Id type: string - - in: query - name: program_id - schema: + submitter_primary_diagnosis_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + submitter_treatment_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Treatment Id + treatment_uuid: + anyOf: + - format: uuid + type: string + - type: 'null' + title: Treatment Uuid + required: + - submitter_follow_up_id + - program_id + - submitter_donor_id + title: FollowUpModelSchema + type: object + GenderEnum: + enum: + - Man + - Woman + - Non-binary + title: GenderEnum + type: string + Her2StatusEnum: + enum: + - Cannot be determined + - Equivocal + - Positive + - Negative + - Not applicable + - Unknown + title: Her2StatusEnum + type: string + HormoneTherapyFilterSchema: + properties: + actual_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + drug_name: + anyOf: + - type: string + - type: 'null' + title: Drug Name + drug_reference_database: + anyOf: + - type: string + - type: 'null' + title: Drug Reference Database + drug_reference_identifier: + anyOf: + - type: string + - type: 'null' + title: Drug Reference Identifier + hormone_drug_dose_units: + anyOf: + - type: string + - type: 'null' + title: Hormone Drug Dose Units + prescribed_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + submitter_treatment_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + title: HormoneTherapyFilterSchema + type: object + HormoneTherapyIngestSchema: + properties: + actual_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + drug_name: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Drug Name + drug_reference_database: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Database + drug_reference_identifier: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Identifier + hormone_drug_dose_units: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Hormone Drug Dose Units + prescribed_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + program_id: + title: Program Id type: string - - in: query - name: gender - schema: + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: sex_at_birth - schema: + submitter_treatment_id: + maxLength: 64 + title: Submitter Treatment Id type: string - - in: query - name: is_deceased - schema: - type: boolean - - in: query - name: lost_to_followup_after_clinical_event_identifier - schema: + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid + required: + - program_id + - submitter_donor_id + - submitter_treatment_id + title: HormoneTherapyIngestSchema + type: object + HormoneTherapyModelSchema: + properties: + actual_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + drug_name: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Drug Name + drug_reference_database: + anyOf: + - $ref: '#/components/schemas/DrugReferenceDbEnum' + - type: 'null' + drug_reference_identifier: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Identifier + hormone_drug_dose_units: + anyOf: + - $ref: '#/components/schemas/DosageUnitsEnum' + - type: 'null' + prescribed_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + program_id: + title: Program Id type: string - - in: query - name: lost_to_followup_reason - schema: + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: date_alive_after_lost_to_followup - schema: + submitter_treatment_id: + maxLength: 64 + title: Submitter Treatment Id type: string - - in: query - name: cause_of_death - schema: - type: string - - in: query - name: date_of_birth - schema: - type: string - - in: query - name: date_of_death - schema: - type: string - - in: query - name: primary_site - schema: - type: string - - in: query - name: age - schema: - type: number - - in: query - name: max_age - schema: - type: number - - in: query - name: min_age - schema: - type: number - - in: query - name: donors - schema: - type: string - - in: query - name: primary_diagnosis - schema: - type: string - - in: query - name: speciman - schema: - type: string - - in: query - name: treatment - schema: - type: string - - in: query - name: chemotherapy - schema: - type: string - - in: query - name: hormone_therapy - schema: - type: string - - in: query - name: radiation - schema: - type: string - - in: query - name: immunotherapy - schema: - type: string - - in: query - name: surgery - schema: - type: string - - in: query - name: follow_up - schema: - type: string - - in: query - name: biomarker - schema: - type: string - - in: query - name: comorbidity - schema: - type: string - - in: query - name: exposure - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedDonorWithClinicalDataList' - description: '' - /v2/authorized/donors/: - get: - operationId: authorized_donors_list - description: Retrieves a list of authorized donors. - parameters: - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: program_id - schema: - type: string - - in: query - name: gender - schema: - type: string - - in: query - name: sex_at_birth - schema: - type: string - - in: query - name: is_deceased - schema: - type: boolean - - in: query - name: lost_to_followup_after_clinical_event_identifier - schema: - type: string - - in: query - name: lost_to_followup_reason - schema: - type: string - - in: query - name: date_alive_after_lost_to_followup - schema: - type: string - - in: query - name: cause_of_death - schema: - type: string - - in: query - name: date_of_birth - schema: - type: string - - in: query - name: date_of_death - schema: - type: string - - in: query - name: primary_site - schema: - type: string - - in: query - name: age - schema: - type: number - - in: query - name: max_age - schema: - type: number - - in: query - name: min_age - schema: - type: number - - in: query - name: donors - schema: - type: string - - in: query - name: primary_diagnosis - schema: - type: string - - in: query - name: speciman - schema: - type: string - - in: query - name: treatment - schema: - type: string - - in: query - name: chemotherapy - schema: - type: string - - in: query - name: hormone_therapy - schema: - type: string - - in: query - name: radiation - schema: - type: string - - in: query - name: immunotherapy - schema: + required: + - program_id + - submitter_donor_id + - submitter_treatment_id + title: HormoneTherapyModelSchema + type: object + HpvStrainEnum: + enum: + - HPV16 + - HPV18 + - HPV31 + - HPV33 + - HPV35 + - HPV39 + - HPV45 + - HPV51 + - HPV52 + - HPV56 + - HPV58 + - HPV59 + - HPV66 + - HPV68 + - HPV73 + title: HpvStrainEnum + type: string + ImmunotherapyFilterSchema: + properties: + actual_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + drug_name: + anyOf: + - type: string + - type: 'null' + title: Drug Name + drug_reference_database: + anyOf: + - type: string + - type: 'null' + title: Drug Reference Database + drug_reference_identifier: + anyOf: + - type: string + - type: 'null' + title: Drug Reference Identifier + immunotherapy_drug_dose_units: + anyOf: + - type: string + - type: 'null' + title: Immunotherapy Drug Dose Units + immunotherapy_type: + anyOf: + - type: string + - type: 'null' + title: Immunotherapy Type + prescribed_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + submitter_treatment_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + title: ImmunotherapyFilterSchema + type: object + ImmunotherapyIngestSchema: + properties: + actual_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + drug_name: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Drug Name + drug_reference_database: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Database + drug_reference_identifier: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Identifier + immunotherapy_drug_dose_units: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Immunotherapy Drug Dose Units + immunotherapy_type: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Immunotherapy Type + prescribed_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + program_id: + title: Program Id type: string - - in: query - name: surgery - schema: + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: follow_up - schema: + submitter_treatment_id: + maxLength: 64 + title: Submitter Treatment Id type: string - - in: query - name: biomarker - schema: + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid + required: + - program_id + - submitter_donor_id + - submitter_treatment_id + title: ImmunotherapyIngestSchema + type: object + ImmunotherapyModelSchema: + properties: + actual_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + drug_name: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Drug Name + drug_reference_database: + anyOf: + - $ref: '#/components/schemas/DrugReferenceDbEnum' + - type: 'null' + drug_reference_identifier: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Identifier + immunotherapy_drug_dose_units: + anyOf: + - $ref: '#/components/schemas/DosageUnitsEnum' + - type: 'null' + immunotherapy_type: + anyOf: + - $ref: '#/components/schemas/ImmunotherapyTypeEnum' + - type: 'null' + prescribed_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + program_id: + title: Program Id type: string - - in: query - name: comorbidity - schema: + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - - in: query - name: exposure - schema: + submitter_treatment_id: + maxLength: 64 + title: Submitter Treatment Id type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: + required: + - program_id + - submitter_donor_id + - submitter_treatment_id + title: ImmunotherapyModelSchema + type: object + ImmunotherapyTypeEnum: + enum: + - Cell-based + - Immune checkpoint inhibitors + - Monoclonal antibodies other than immune checkpoint inhibitors + - Other immunomodulatory substances + title: ImmunotherapyTypeEnum + type: string + Input: + properties: + page: + minimum: 1 + title: Page type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: + page_size: + minimum: 1 + title: Page Size type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedDonorList' - description: '' - /v2/authorized/exposures/: - get: - operationId: authorized_exposures_list - description: Retrieves a list of authorized exposures. - parameters: - - in: query - name: id - schema: - type: string - format: uuid - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: tobacco_smoking_status - schema: - type: string - - in: query - name: tobacco_type - schema: - type: string - - in: query - name: pack_years_smoked - schema: - type: number - format: float - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedExposureList' - description: '' - /v2/authorized/follow_ups/: - get: - operationId: authorized_follow_ups_list - description: Retrieves a list of authorized follow ups. - parameters: - - in: query - name: submitter_follow_up_id - schema: - type: string - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_primary_diagnosis_id - schema: - type: string - - in: query - name: submitter_treatment_id - schema: - type: string - - in: query - name: date_of_followup - schema: + title: Input + type: object + LostToFollowupReasonEnum: + enum: + - Completed study + - Discharged to palliative care + - Lost contact + - Not applicable + - Unknown + - Withdrew from study + title: LostToFollowupReasonEnum + type: string + LymphNodeMethodEnum: + enum: + - Imaging + - Lymph node dissection/pathological exam + - Physical palpation of patient + title: LymphNodeMethodEnum + type: string + LymphNodeStatusEnum: + enum: + - Cannot be determined + - 'No' + - No lymph nodes found in resected specimen + - Not applicable + - 'Yes' + title: LymphNodeStatusEnum + type: string + LymphovascularInvasionEnum: + enum: + - Absent + - Both lymphatic and small vessel and venous (large vessel) invasion + - Lymphatic and small vessel invasion only + - Not applicable + - Present + - Venous (large vessel) invasion only + - Unknown + title: LymphovascularInvasionEnum + type: string + MCategoryEnum: + enum: + - M0 + - M0(i+) + - M1 + - M1a + - M1a(0) + - M1a(1) + - M1b + - M1b(0) + - M1b(1) + - M1c + - M1c(0) + - M1c(1) + - M1d + - M1d(0) + - M1d(1) + - M1e + - MX + title: MCategoryEnum + type: string + MalignancyLateralityEnum: + enum: + - Bilateral + - Left + - Midline + - Not applicable + - Right + - Unilateral, Side not specified + - Unknown + title: MalignancyLateralityEnum + type: string + MarginTypesEnum: + enum: + - Circumferential resection margin + - Common bile duct margin + - Distal margin + - Not applicable + - Proximal margin + - Unknown + title: MarginTypesEnum + type: string + NCategoryEnum: + enum: + - N0 + - N0a + - N0a (biopsy) + - N0b + - N0b (no biopsy) + - N0(i+) + - N0(i-) + - N0(mol+) + - N0(mol-) + - N1 + - N1a + - N1a(sn) + - N1b + - N1c + - N1mi + - N2 + - N2a + - N2b + - N2c + - N2mi + - N3 + - N3a + - N3b + - N3c + - N4 + - NX + title: NCategoryEnum + type: string + NestedBiomarkerSchema: + properties: + ca125: + anyOf: + - type: integer + - type: 'null' + title: Ca125 + cea: + anyOf: + - type: integer + - type: 'null' + title: Cea + er_percent_positive: + anyOf: + - type: number + - type: 'null' + title: Er Percent Positive + er_status: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Er Status + her2_ihc_status: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Her2 Ihc Status + her2_ish_status: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Her2 Ish Status + hpv_ihc_status: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Hpv Ihc Status + hpv_pcr_status: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Hpv Pcr Status + hpv_strain: + anyOf: + - items: {} + type: array + - type: 'null' + title: Hpv Strain + pr_percent_positive: + anyOf: + - type: number + - type: 'null' + title: Pr Percent Positive + pr_status: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Pr Status + psa_level: + anyOf: + - type: integer + - type: 'null' + title: Psa Level + submitter_follow_up_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Follow Up Id + submitter_primary_diagnosis_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + submitter_specimen_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Specimen Id + submitter_treatment_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Treatment Id + test_date: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Test Date + title: NestedBiomarkerSchema + type: object + NestedChemotherapySchema: + properties: + actual_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + chemotherapy_drug_dose_units: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Chemotherapy Drug Dose Units + drug_name: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Drug Name + drug_reference_database: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Database + drug_reference_identifier: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Identifier + prescribed_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + title: NestedChemotherapySchema + type: object + NestedComorbiditySchema: + properties: + age_at_comorbidity_diagnosis: + anyOf: + - type: integer + - type: 'null' + title: Age At Comorbidity Diagnosis + comorbidity_treatment: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Comorbidity Treatment + comorbidity_treatment_status: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Comorbidity Treatment Status + comorbidity_type_code: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Comorbidity Type Code + laterality_of_prior_malignancy: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Laterality Of Prior Malignancy + prior_malignancy: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Prior Malignancy + title: NestedComorbiditySchema + type: object + NestedExposureSchema: + properties: + pack_years_smoked: + anyOf: + - type: number + - type: 'null' + title: Pack Years Smoked + tobacco_smoking_status: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Tobacco Smoking Status + tobacco_type: + anyOf: + - items: {} + type: array + - type: 'null' + title: Tobacco Type + title: NestedExposureSchema + type: object + NestedFollowUpSchema: + properties: + anatomic_site_progression_or_recurrence: + anyOf: + - items: {} + type: array + - type: 'null' + title: Anatomic Site Progression Or Recurrence + date_of_followup: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Date Of Followup + date_of_relapse: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Date Of Relapse + disease_status_at_followup: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Disease Status At Followup + method_of_progression_status: + anyOf: + - items: {} + type: array + - type: 'null' + title: Method Of Progression Status + recurrence_m_category: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Recurrence M Category + recurrence_n_category: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Recurrence N Category + recurrence_stage_group: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Recurrence Stage Group + recurrence_t_category: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Recurrence T Category + recurrence_tumour_staging_system: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Recurrence Tumour Staging System + relapse_type: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Relapse Type + submitter_follow_up_id: + maxLength: 64 + title: Submitter Follow Up Id type: string - - in: query - name: disease_status_at_followup - schema: - type: string - - in: query - name: relapse_type - schema: - type: string - - in: query - name: date_of_relapse - schema: - type: string - - in: query - name: method_of_progression_status - schema: - type: string - - in: query - name: anatomic_site_progression_or_recurrence - schema: - type: string - - in: query - name: recurrence_tumour_staging_system - schema: - type: string - - in: query - name: recurrence_t_category - schema: - type: string - - in: query - name: recurrence_n_category - schema: - type: string - - in: query - name: recurrence_m_category - schema: - type: string - - in: query - name: recurrence_stage_group - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedFollowUpList' - description: '' - /v2/authorized/hormone_therapies/: - get: - operationId: authorized_hormone_therapies_list - description: Retrieves a list of authorized hormone therapies. - parameters: - - in: query - name: id - schema: + required: + - submitter_follow_up_id + title: NestedFollowUpSchema + type: object + NestedHormoneTherapySchema: + properties: + actual_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + drug_name: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Drug Name + drug_reference_database: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Database + drug_reference_identifier: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Identifier + hormone_drug_dose_units: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Hormone Drug Dose Units + prescribed_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + title: NestedHormoneTherapySchema + type: object + NestedImmunotherapySchema: + properties: + actual_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + drug_name: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Drug Name + drug_reference_database: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Database + drug_reference_identifier: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Drug Reference Identifier + immunotherapy_drug_dose_units: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Immunotherapy Drug Dose Units + immunotherapy_type: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Immunotherapy Type + prescribed_cumulative_drug_dose: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + title: NestedImmunotherapySchema + type: object + NestedPrimaryDiagnosisSchema: + properties: + basis_of_diagnosis: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Basis Of Diagnosis + cancer_type_code: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Cancer Type Code + clinical_m_category: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Clinical M Category + clinical_n_category: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Clinical N Category + clinical_stage_group: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Clinical Stage Group + clinical_t_category: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Clinical T Category + clinical_tumour_staging_system: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Clinical Tumour Staging System + date_of_diagnosis: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Date Of Diagnosis + followups: + items: + $ref: '#/components/schemas/NestedFollowUpSchema' + title: Followups + type: array + laterality: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Laterality + lymph_nodes_examined_method: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Lymph Nodes Examined Method + lymph_nodes_examined_status: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Lymph Nodes Examined Status + number_lymph_nodes_positive: + anyOf: + - type: integer + - type: 'null' + title: Number Lymph Nodes Positive + specimens: + items: + $ref: '#/components/schemas/NestedSpecimenSchema' + title: Specimens + type: array + submitter_primary_diagnosis_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + treatments: + items: + $ref: '#/components/schemas/NestedTreatmentSchema' + title: Treatments + type: array + title: NestedPrimaryDiagnosisSchema + type: object + NestedRadiationSchema: + properties: + anatomical_site_irradiated: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Anatomical Site Irradiated + radiation_boost: + anyOf: + - type: boolean + - type: 'null' + title: Radiation Boost + radiation_therapy_dosage: + anyOf: + - type: integer + - type: 'null' + title: Radiation Therapy Dosage + radiation_therapy_fractions: + anyOf: + - type: integer + - type: 'null' + title: Radiation Therapy Fractions + radiation_therapy_modality: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Radiation Therapy Modality + radiation_therapy_type: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Radiation Therapy Type + reference_radiation_treatment_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Reference Radiation Treatment Id + title: NestedRadiationSchema + type: object + NestedSampleRegistrationSchema: + properties: + sample_type: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Sample Type + specimen_tissue_source: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Specimen Tissue Source + specimen_type: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Specimen Type + submitter_sample_id: + maxLength: 64 + title: Submitter Sample Id type: string - format: uuid - - in: query - name: program_id - schema: + tumour_normal_designation: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Tumour Normal Designation + required: + - submitter_sample_id + title: NestedSampleRegistrationSchema + type: object + NestedSpecimenSchema: + properties: + pathological_m_category: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Pathological M Category + pathological_n_category: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Pathological N Category + pathological_stage_group: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Pathological Stage Group + pathological_t_category: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Pathological T Category + pathological_tumour_staging_system: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Pathological Tumour Staging System + percent_tumour_cells_measurement_method: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Percent Tumour Cells Measurement Method + percent_tumour_cells_range: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Percent Tumour Cells Range + reference_pathology_confirmed_diagnosis: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Reference Pathology Confirmed Diagnosis + reference_pathology_confirmed_tumour_presence: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Reference Pathology Confirmed Tumour Presence + sample_registrations: + items: + $ref: '#/components/schemas/NestedSampleRegistrationSchema' + title: Sample Registrations + type: array + specimen_anatomic_location: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Specimen Anatomic Location + specimen_collection_date: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Specimen Collection Date + specimen_laterality: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Specimen Laterality + specimen_processing: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Specimen Processing + specimen_storage: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Specimen Storage + submitter_specimen_id: + maxLength: 64 + title: Submitter Specimen Id type: string - - in: query - name: submitter_donor_id - schema: + tumour_grade: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Tumour Grade + tumour_grading_system: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Tumour Grading System + tumour_histological_type: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Tumour Histological Type + required: + - submitter_specimen_id + title: NestedSpecimenSchema + type: object + NestedSurgerySchema: + properties: + greatest_dimension_tumour: + anyOf: + - type: integer + - type: 'null' + title: Greatest Dimension Tumour + lymphovascular_invasion: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Lymphovascular Invasion + margin_types_involved: + anyOf: + - items: {} + type: array + - type: 'null' + title: Margin Types Involved + margin_types_not_assessed: + anyOf: + - items: {} + type: array + - type: 'null' + title: Margin Types Not Assessed + margin_types_not_involved: + anyOf: + - items: {} + type: array + - type: 'null' + title: Margin Types Not Involved + perineural_invasion: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Perineural Invasion + residual_tumour_classification: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Residual Tumour Classification + submitter_specimen_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Specimen Id + surgery_location: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Surgery Location + surgery_site: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Surgery Site + surgery_type: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Surgery Type + tumour_focality: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Tumour Focality + tumour_length: + anyOf: + - type: integer + - type: 'null' + title: Tumour Length + tumour_width: + anyOf: + - type: integer + - type: 'null' + title: Tumour Width + title: NestedSurgerySchema + type: object + NestedTreatmentSchema: + properties: + chemotherapies: + items: + $ref: '#/components/schemas/NestedChemotherapySchema' + title: Chemotherapies + type: array + days_per_cycle: + anyOf: + - type: integer + - type: 'null' + title: Days Per Cycle + followups: + items: + $ref: '#/components/schemas/NestedFollowUpSchema' + title: Followups + type: array + hormone_therapies: + items: + $ref: '#/components/schemas/NestedHormoneTherapySchema' + title: Hormone Therapies + type: array + immunotherapies: + items: + $ref: '#/components/schemas/NestedImmunotherapySchema' + title: Immunotherapies + type: array + is_primary_treatment: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Is Primary Treatment + line_of_treatment: + anyOf: + - type: integer + - type: 'null' + title: Line Of Treatment + number_of_cycles: + anyOf: + - type: integer + - type: 'null' + title: Number Of Cycles + radiations: + items: + $ref: '#/components/schemas/NestedRadiationSchema' + title: Radiations + type: array + response_to_treatment: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Response To Treatment + response_to_treatment_criteria_method: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Response To Treatment Criteria Method + status_of_treatment: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Status Of Treatment + submitter_treatment_id: + maxLength: 64 + title: Submitter Treatment Id type: string - - in: query - name: submitter_treatment_id - schema: - type: string - - in: query - name: drug_reference_database - schema: - type: string - - in: query - name: drug_name - schema: - type: string - - in: query - name: drug_reference_identifier - schema: - type: string - - in: query - name: hormone_drug_dose_units - schema: - type: string - - in: query - name: prescribed_cumulative_drug_dose - schema: - type: integer - - in: query - name: actual_cumulative_drug_dose - schema: - type: integer - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedHormoneTherapyList' - description: '' - /v2/authorized/immunotherapies/: - get: - operationId: authorized_immunotherapies_list - description: Retrieves a list of authorized immuno therapies. - parameters: - - in: query - name: id - schema: - type: string - format: uuid - - in: query - name: program_id - schema: + surgeries: + items: + $ref: '#/components/schemas/NestedSurgerySchema' + title: Surgeries + type: array + treatment_end_date: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Treatment End Date + treatment_intent: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Treatment Intent + treatment_setting: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Treatment Setting + treatment_start_date: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Treatment Start Date + treatment_type: + anyOf: + - items: {} + type: array + - type: 'null' + title: Treatment Type + required: + - submitter_treatment_id + title: NestedTreatmentSchema + type: object + PagedBiomarkerModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/BiomarkerModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedBiomarkerModelSchema + type: object + PagedChemotherapyModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/ChemotherapyModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedChemotherapyModelSchema + type: object + PagedComorbidityModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/ComorbidityModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedComorbidityModelSchema + type: object + PagedDonorModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/DonorModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedDonorModelSchema + type: object + PagedExposureModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/ExposureModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedExposureModelSchema + type: object + PagedFollowUpModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/FollowUpModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedFollowUpModelSchema + type: object + PagedHormoneTherapyModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/HormoneTherapyModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedHormoneTherapyModelSchema + type: object + PagedImmunotherapyModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/ImmunotherapyModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedImmunotherapyModelSchema + type: object + PagedPrimaryDiagnosisModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/PrimaryDiagnosisModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedPrimaryDiagnosisModelSchema + type: object + PagedProgramModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/ProgramModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedProgramModelSchema + type: object + PagedRadiationModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/RadiationModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedRadiationModelSchema + type: object + PagedSampleRegistrationModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/SampleRegistrationModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedSampleRegistrationModelSchema + type: object + PagedSpecimenModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/SpecimenModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedSpecimenModelSchema + type: object + PagedSurgeryModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/SurgeryModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedSurgeryModelSchema + type: object + PagedTreatmentModelSchema: + properties: + count: + anyOf: + - type: integer + - type: 'null' + title: Count + items: + items: + $ref: '#/components/schemas/TreatmentModelSchema' + title: Items + type: array + next_page: + anyOf: + - type: integer + - type: 'null' + title: Next Page + previous_page: + anyOf: + - type: integer + - type: 'null' + title: Previous Page + required: + - items + - count + - next_page + - previous_page + title: PagedTreatmentModelSchema + type: object + PercentCellsRangeEnum: + enum: + - 0-19% + - 20-50% + - 51-100% + title: PercentCellsRangeEnum + type: string + PerineuralInvasionEnum: + enum: + - Absent + - Cannot be assessed + - Not applicable + - Present + - Unknown + title: PerineuralInvasionEnum + type: string + PrimaryDiagnosisFilterSchema: + properties: + basis_of_diagnosis: + anyOf: + - type: string + - type: 'null' + title: Basis Of Diagnosis + cancer_type_code: + anyOf: + - type: string + - type: 'null' + title: Cancer Type Code + clinical_m_category: + anyOf: + - type: string + - type: 'null' + title: Clinical M Category + clinical_n_category: + anyOf: + - type: string + - type: 'null' + title: Clinical N Category + clinical_stage_group: + anyOf: + - type: string + - type: 'null' + title: Clinical Stage Group + clinical_t_category: + anyOf: + - type: string + - type: 'null' + title: Clinical T Category + clinical_tumour_staging_system: + anyOf: + - type: string + - type: 'null' + title: Clinical Tumour Staging System + date_of_diagnosis: + anyOf: + - type: string + - type: 'null' + title: Date Of Diagnosis + laterality: + anyOf: + - type: string + - type: 'null' + title: Laterality + lymph_nodes_examined_method: + anyOf: + - type: string + - type: 'null' + title: Lymph Nodes Examined Method + lymph_nodes_examined_status: + anyOf: + - type: string + - type: 'null' + title: Lymph Nodes Examined Status + number_lymph_nodes_positive: + anyOf: + - type: integer + - type: 'null' + title: Number Lymph Nodes Positive + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + submitter_primary_diagnosis_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + title: PrimaryDiagnosisFilterSchema + type: object + PrimaryDiagnosisIngestSchema: + properties: + basis_of_diagnosis: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Basis Of Diagnosis + cancer_type_code: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Cancer Type Code + clinical_m_category: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Clinical M Category + clinical_n_category: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Clinical N Category + clinical_stage_group: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Clinical Stage Group + clinical_t_category: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Clinical T Category + clinical_tumour_staging_system: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Clinical Tumour Staging System + date_of_diagnosis: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Date Of Diagnosis + laterality: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Laterality + lymph_nodes_examined_method: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Lymph Nodes Examined Method + lymph_nodes_examined_status: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Lymph Nodes Examined Status + number_lymph_nodes_positive: + anyOf: + - type: integer + - type: 'null' + title: Number Lymph Nodes Positive + program_id: + title: Program Id type: string - - in: query - name: submitter_donor_id - schema: + submitter_donor_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Donor Id + submitter_primary_diagnosis_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid + required: + - program_id + title: PrimaryDiagnosisIngestSchema + type: object + PrimaryDiagnosisLateralityEnum: + enum: + - Bilateral + - Left + - Midline + - Not a paired site + - Right + - Unilateral, side not specified + - Unknown + title: PrimaryDiagnosisLateralityEnum + type: string + PrimaryDiagnosisModelSchema: + properties: + basis_of_diagnosis: + anyOf: + - $ref: '#/components/schemas/BasisOfDiagnosisEnum' + - type: 'null' + cancer_type_code: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Cancer Type Code + clinical_m_category: + anyOf: + - $ref: '#/components/schemas/MCategoryEnum' + - type: 'null' + clinical_n_category: + anyOf: + - $ref: '#/components/schemas/NCategoryEnum' + - type: 'null' + clinical_stage_group: + anyOf: + - $ref: '#/components/schemas/StageGroupEnum' + - type: 'null' + clinical_t_category: + anyOf: + - $ref: '#/components/schemas/TCategoryEnum' + - type: 'null' + clinical_tumour_staging_system: + anyOf: + - $ref: '#/components/schemas/TumourStagingSystemEnum' + - type: 'null' + date_of_diagnosis: + anyOf: + - maxLength: 32 + pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? + type: string + - type: 'null' + title: Date Of Diagnosis + laterality: + anyOf: + - $ref: '#/components/schemas/PrimaryDiagnosisLateralityEnum' + - type: 'null' + lymph_nodes_examined_method: + anyOf: + - $ref: '#/components/schemas/LymphNodeMethodEnum' + - type: 'null' + lymph_nodes_examined_status: + anyOf: + - $ref: '#/components/schemas/LymphNodeStatusEnum' + - type: 'null' + number_lymph_nodes_positive: + anyOf: + - type: integer + - type: 'null' + title: Number Lymph Nodes Positive + program_id: + title: Program Id type: string - - in: query - name: submitter_treatment_id - schema: + submitter_donor_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Donor Id + submitter_primary_diagnosis_id: + maxLength: 64 + pattern: ^[A-Za-z0-9\-\._]{1,64} + title: Submitter Primary Diagnosis Id type: string - - in: query - name: drug_reference_database - schema: - type: string - - in: query - name: immunotherapy_type - schema: - type: string - - in: query - name: drug_name - schema: - type: string - - in: query - name: drug_reference_identifier - schema: - type: string - - in: query - name: immunotherapy_drug_dose_units - schema: - type: string - - in: query - name: prescribed_cumulative_drug_dose - schema: - type: integer - - in: query - name: actual_cumulative_drug_dose - schema: - type: integer - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedImmunotherapyList' - description: '' - /v2/authorized/primary_diagnoses/: - get: - operationId: authorized_primary_diagnoses_list - description: Retrieves a list of authorized primary diagnosises. - parameters: - - in: query - name: submitter_primary_diagnosis_id - schema: - type: string - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: date_of_diagnosis - schema: - type: string - - in: query - name: cancer_type_code - schema: - type: string - - in: query - name: basis_of_diagnosis - schema: - type: string - - in: query - name: laterality - schema: - type: string - - in: query - name: lymph_nodes_examined_status - schema: - type: string - - in: query - name: lymph_nodes_examined_method - schema: - type: string - - in: query - name: number_lymph_nodes_positive - schema: - type: integer - - in: query - name: clinical_tumour_staging_system - schema: - type: string - - in: query - name: clinical_t_category - schema: - type: string - - in: query - name: clinical_n_category - schema: - type: string - - in: query - name: clinical_m_category - schema: - type: string - - in: query - name: clinical_stage_group - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedPrimaryDiagnosisList' - description: '' - /v2/authorized/programs/: - get: - operationId: authorized_programs_list - description: |- - This mixin should be used for viewsets that need to restrict access. - - The authentication classes are set based on the `DJANGO_SETTINGS_MODULE`. - If the env is "dev" or "prod", the `TokenAuthentication` class is - used. Otherwise, the `LocalAuthentication` class is used. - - Methods - ------- - get_queryset() - Returns a filtered queryset that includes only the objects that the user is - authorized to see based on their permissions. - parameters: - - in: query - name: program_id - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedProgramList' - description: '' - /v2/authorized/programs/{program_id}/: - delete: - operationId: authorized_programs_destroy - description: Delete a program, must be an admin that can access all programs - parameters: - - in: path - name: program_id - schema: + required: + - submitter_primary_diagnosis_id + - program_id + title: PrimaryDiagnosisModelSchema + type: object + PrimarySiteEnum: + enum: + - Accessory sinuses + - Adrenal gland + - Anus and anal canal + - Base of tongue + - Bladder + - Bones, joints and articular cartilage of limbs + - Bones, joints and articular cartilage of other and unspecified sites + - Brain + - Breast + - Bronchus and lung + - Cervix uteri + - Colon + - Connective, subcutaneous and other soft tissues + - Corpus uteri + - Esophagus + - Eye and adnexa + - Floor of mouth + - Gallbladder + - Gum + - Heart, mediastinum, and pleura + - Hematopoietic and reticuloendothelial systems + - Hypopharynx + - Kidney + - Larynx + - Lip + - Liver and intrahepatic bile ducts + - Lymph nodes + - Meninges + - Nasal cavity and middle ear + - Nasopharynx + - Oropharynx + - Other and ill-defined digestive organs + - Other and ill-defined sites + - Other and ill-defined sites in lip, oral cavity and pharynx + - Other and ill-defined sites within respiratory system and intrathoracic organs + - Other and unspecified female genital organs + - Other and unspecified major salivary glands + - Other and unspecified male genital organs + - Other and unspecified parts of biliary tract + - Other and unspecified parts of mouth + - Other and unspecified parts of tongue + - Other and unspecified urinary organs + - Other endocrine glands and related structures + - Ovary + - Palate + - Pancreas + - Parotid gland + - Penis + - Peripheral nerves and autonomic nervous system + - Placenta + - Prostate gland + - Pyriform sinus + - Rectosigmoid junction + - Rectum + - Renal pelvis + - Retroperitoneum and peritoneum + - Skin + - Small intestine + - Spinal cord, cranial nerves, and other parts of central nervous system + - Stomach + - Testis + - Thymus + - Thyroid gland + - Tonsil + - Trachea + - Ureter + - Uterus, NOS + - Vagina + - Vulva + - Unknown primary site + title: PrimarySiteEnum + type: string + ProgramDiscoverySchema: + properties: + cohort_list: + items: + type: string + title: Cohort List + type: array + required: + - cohort_list + title: ProgramDiscoverySchema + type: object + ProgramFilterSchema: + properties: + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + title: ProgramFilterSchema + type: object + ProgramModelSchema: + properties: + created: + format: date-time + title: Created type: string - description: A unique value identifying this program. - required: true - tags: - - authorized - security: - - localAuth: [] - responses: - '204': - description: No response body - /v2/authorized/radiations/: - get: - operationId: authorized_radiations_list - description: Retrieves a list of authorized radiations. - parameters: - - in: query - name: id - schema: + metadata: + anyOf: + - type: object + - type: 'null' + title: Metadata + program_id: + maxLength: 64 + pattern: ^[A-Za-z0-9\-\._]{1,64} + title: Program Id type: string - format: uuid - - in: query - name: program_id - schema: + updated: + format: date-time + title: Updated type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_treatment_id - schema: - type: string - - in: query - name: radiation_therapy_modality - schema: - type: string - - in: query - name: radiation_therapy_type - schema: - type: string - - in: query - name: radiation_therapy_fractions - schema: - type: integer - - in: query - name: radiation_therapy_dosage - schema: - type: integer - - in: query - name: anatomical_site_irradiated - schema: - type: string - - in: query - name: radiation_boost - schema: - type: boolean - - in: query - name: reference_radiation_treatment_id - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedRadiationList' - description: '' - /v2/authorized/sample_registrations/: - get: - operationId: authorized_sample_registrations_list - description: Retrieves a list of authorized sample registrations. - parameters: - - in: query - name: submitter_sample_id - schema: - type: string - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_specimen_id - schema: - type: string - - in: query - name: specimen_tissue_source - schema: - type: string - - in: query - name: tumour_normal_designation - schema: - type: string - - in: query - name: specimen_type - schema: - type: string - - in: query - name: sample_type - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSampleRegistrationList' - description: '' - /v2/authorized/specimens/: - get: - operationId: authorized_specimens_list - description: Retrieves a list of authorized specimens. - parameters: - - in: query - name: submitter_specimen_id - schema: - type: string - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_primary_diagnosis_id - schema: - type: string - - in: query - name: pathological_tumour_staging_system - schema: - type: string - - in: query - name: pathological_t_category - schema: - type: string - - in: query - name: pathological_n_category - schema: - type: string - - in: query - name: pathological_m_category - schema: - type: string - - in: query - name: pathological_stage_group - schema: - type: string - - in: query - name: specimen_collection_date - schema: - type: string - - in: query - name: specimen_storage - schema: - type: string - - in: query - name: specimen_processing - schema: - type: string - - in: query - name: tumour_histological_type - schema: - type: string - - in: query - name: specimen_anatomic_location - schema: - type: string - - in: query - name: specimen_laterality - schema: - type: string - - in: query - name: reference_pathology_confirmed_diagnosis - schema: - type: string - - in: query - name: reference_pathology_confirmed_tumour_presence - schema: - type: string - - in: query - name: tumour_grading_system - schema: - type: string - - in: query - name: tumour_grade - schema: - type: string - - in: query - name: percent_tumour_cells_range - schema: - type: string - - in: query - name: percent_tumour_cells_measurement_method - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSpecimenList' - description: '' - /v2/authorized/surgeries/: - get: - operationId: authorized_surgeries_list - description: Retrieves a list of authorized surgeries. - parameters: - - in: query - name: id - schema: - type: string - format: uuid - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_treatment_id - schema: - type: string - - in: query - name: submitter_specimen_id - schema: - type: string - - in: query - name: surgery_type - schema: - type: string - - in: query - name: surgery_site - schema: - type: string - - in: query - name: surgery_location - schema: - type: string - - in: query - name: tumour_length - schema: - type: integer - - in: query - name: tumour_width - schema: - type: integer - - in: query - name: greatest_dimension_tumour - schema: - type: integer - - in: query - name: tumour_focality - schema: - type: string - - in: query - name: residual_tumour_classification - schema: - type: string - - in: query - name: margin_types_involved - schema: - type: string - - in: query - name: margin_types_not_involved - schema: - type: string - - in: query - name: margin_types_not_assessed - schema: - type: string - - in: query - name: lymphovascular_invasion - schema: - type: string - - in: query - name: perineural_invasion - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedSurgeryList' - description: '' - /v2/authorized/treatments/: - get: - operationId: authorized_treatments_list - description: Retrieves a list of authorized treatments. - parameters: - - in: query - name: submitter_treatment_id - schema: - type: string - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_primary_diagnosis_id - schema: - type: string - - in: query - name: treatment_type - schema: - type: string - - in: query - name: is_primary_treatment - schema: - type: string - - in: query - name: line_of_treatment - schema: - type: integer - - in: query - name: treatment_start_date - schema: - type: string - - in: query - name: treatment_end_date - schema: - type: string - - in: query - name: treatment_setting - schema: - type: string - - in: query - name: treatment_intent - schema: - type: string - - in: query - name: days_per_cycle - schema: - type: integer - - in: query - name: number_of_cycles - schema: - type: integer - - in: query - name: response_to_treatment_criteria_method - schema: - type: string - - in: query - name: response_to_treatment - schema: - type: string - - in: query - name: status_of_treatment - schema: - type: string - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: page_size - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - tags: - - authorized - security: - - localAuth: [] - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedTreatmentList' - description: '' - /v2/discovery/biomarkers/: - get: - operationId: discovery_biomarkers_list - description: Retrieves a number of discovery biomarkers. - parameters: - - in: query - name: id - schema: - type: string - format: uuid - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_specimen_id - schema: - type: string - - in: query - name: submitter_primary_diagnosis_id - schema: - type: string - - in: query - name: submitter_treatment_id - schema: - type: string - - in: query - name: submitter_follow_up_id - schema: - type: string - - in: query - name: test_date - schema: - type: string - - in: query - name: psa_level - schema: - type: integer - - in: query - name: ca125 - schema: - type: integer - - in: query - name: cea - schema: - type: integer - - in: query - name: er_status - schema: - type: string - - in: query - name: er_percent_positive - schema: - type: number - format: float - - in: query - name: pr_status - schema: - type: string - - in: query - name: pr_percent_positive - schema: - type: number - format: float - - in: query - name: her2_ihc_status - schema: - type: string - - in: query - name: her2_ish_status - schema: - type: string - - in: query - name: hpv_ihc_status - schema: - type: string - - in: query - name: hpv_pcr_status - schema: - type: string - - in: query - name: hpv_strain - schema: - type: string - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' - /v2/discovery/chemotherapies/: - get: - operationId: discovery_chemotherapies_list - description: Retrieves a number of discovery chemotherapies. - parameters: - - in: query - name: id - schema: - type: string - format: uuid - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_treatment_id - schema: - type: string - - in: query - name: drug_reference_database - schema: - type: string - - in: query - name: drug_name - schema: - type: string - - in: query - name: drug_reference_identifier - schema: - type: string - - in: query - name: chemotherapy_drug_dose_units - schema: - type: string - - in: query - name: prescribed_cumulative_drug_dose - schema: - type: integer - - in: query - name: actual_cumulative_drug_dose - schema: - type: integer - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' - /v2/discovery/comorbidities/: - get: - operationId: discovery_comorbidities_list - description: Retrieves a number of discovery comorbidities. - parameters: - - in: query - name: id - schema: - type: string - format: uuid - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: prior_malignancy - schema: - type: string - - in: query - name: laterality_of_prior_malignancy - schema: - type: string - - in: query - name: age_at_comorbidity_diagnosis - schema: - type: integer - - in: query - name: comorbidity_type_code - schema: - type: string - - in: query - name: comorbidity_treatment_status - schema: - type: string - - in: query - name: comorbidity_treatment - schema: - type: string - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' - /v2/discovery/donors/: - get: - operationId: discovery_donors_list - description: Retrieves a number of discovery donors. - parameters: - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: program_id - schema: - type: string - - in: query - name: gender - schema: - type: string - - in: query - name: sex_at_birth - schema: - type: string - - in: query - name: is_deceased - schema: - type: boolean - - in: query - name: lost_to_followup_after_clinical_event_identifier - schema: - type: string - - in: query - name: lost_to_followup_reason - schema: - type: string - - in: query - name: date_alive_after_lost_to_followup - schema: - type: string - - in: query - name: cause_of_death - schema: - type: string - - in: query - name: date_of_birth - schema: - type: string - - in: query - name: date_of_death - schema: - type: string - - in: query - name: primary_site - schema: - type: string - - in: query - name: age - schema: - type: number - - in: query - name: max_age - schema: - type: number - - in: query - name: min_age - schema: - type: number - - in: query - name: donors - schema: - type: string - - in: query - name: primary_diagnosis - schema: - type: string - - in: query - name: speciman - schema: - type: string - - in: query - name: treatment - schema: - type: string - - in: query - name: chemotherapy - schema: - type: string - - in: query - name: hormone_therapy - schema: - type: string - - in: query - name: radiation - schema: - type: string - - in: query - name: immunotherapy - schema: - type: string - - in: query - name: surgery - schema: - type: string - - in: query - name: follow_up - schema: - type: string - - in: query - name: biomarker - schema: - type: string - - in: query - name: comorbidity - schema: - type: string - - in: query - name: exposure - schema: - type: string - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' - /v2/discovery/exposures/: - get: - operationId: discovery_exposures_list - description: Retrieves a number of discovery exposures. - parameters: - - in: query - name: id - schema: - type: string - format: uuid - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: tobacco_smoking_status - schema: - type: string - - in: query - name: tobacco_type - schema: - type: string - - in: query - name: pack_years_smoked - schema: - type: number - format: float - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' - /v2/discovery/follow_ups/: - get: - operationId: discovery_follow_ups_list - description: Retrieves a number of discovery follow ups. - parameters: - - in: query - name: submitter_follow_up_id - schema: - type: string - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_primary_diagnosis_id - schema: - type: string - - in: query - name: submitter_treatment_id - schema: - type: string - - in: query - name: date_of_followup - schema: - type: string - - in: query - name: disease_status_at_followup - schema: - type: string - - in: query - name: relapse_type - schema: - type: string - - in: query - name: date_of_relapse - schema: - type: string - - in: query - name: method_of_progression_status - schema: - type: string - - in: query - name: anatomic_site_progression_or_recurrence - schema: - type: string - - in: query - name: recurrence_tumour_staging_system - schema: - type: string - - in: query - name: recurrence_t_category - schema: - type: string - - in: query - name: recurrence_n_category - schema: - type: string - - in: query - name: recurrence_m_category - schema: - type: string - - in: query - name: recurrence_stage_group - schema: - type: string - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' - /v2/discovery/hormone_therapies/: - get: - operationId: discovery_hormone_therapies_list - description: Retrieves a number of discovery hormone therapies. - parameters: - - in: query - name: id - schema: - type: string - format: uuid - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_treatment_id - schema: - type: string - - in: query - name: drug_reference_database - schema: - type: string - - in: query - name: drug_name - schema: - type: string - - in: query - name: drug_reference_identifier - schema: - type: string - - in: query - name: hormone_drug_dose_units - schema: - type: string - - in: query - name: prescribed_cumulative_drug_dose - schema: - type: integer - - in: query - name: actual_cumulative_drug_dose - schema: - type: integer - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' - /v2/discovery/immunotherapies/: - get: - operationId: discovery_immunotherapies_list - description: Retrieves a number of discovery immuno therapies. - parameters: - - in: query - name: id - schema: - type: string - format: uuid - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_treatment_id - schema: - type: string - - in: query - name: drug_reference_database - schema: - type: string - - in: query - name: immunotherapy_type - schema: - type: string - - in: query - name: drug_name - schema: - type: string - - in: query - name: drug_reference_identifier - schema: - type: string - - in: query - name: immunotherapy_drug_dose_units - schema: - type: string - - in: query - name: prescribed_cumulative_drug_dose - schema: - type: integer - - in: query - name: actual_cumulative_drug_dose - schema: - type: integer - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' - /v2/discovery/overview/cancer_type_count: - get: - operationId: discovery_overview_cancer_type_count_retrieve - description: MoH cancer types count - tags: - - discovery - security: - - {} - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/moh_overview_cancer_type_count_response' - description: '' - /v2/discovery/overview/cohort_count: - get: - operationId: discovery_overview_cohort_count_retrieve - description: MoH cohorts count - tags: - - discovery - security: - - {} - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/moh_overview_cohort_count_response' - description: '' - /v2/discovery/overview/diagnosis_age_count: - get: - operationId: discovery_overview_diagnosis_age_count_retrieve - description: MoH Diagnosis age count - tags: - - discovery - security: - - {} - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/moh_overview_diagnosis_age_count_response' - description: '' - /v2/discovery/overview/gender_count: - get: - operationId: discovery_overview_gender_count_retrieve - description: MoH gender count - tags: - - discovery - security: - - {} - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/moh_overview_gender_count_response' - description: '' - /v2/discovery/overview/individual_count: - get: - operationId: discovery_overview_individual_count_retrieve - description: MoH individuals count - tags: - - discovery - security: - - {} - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/moh_overview_individual_count_response' - description: '' - /v2/discovery/overview/patients_per_cohort: - get: - operationId: discovery_overview_patients_per_cohort_retrieve - description: MoH patients per cohort count - tags: - - discovery - security: - - {} - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/moh_overview_patient_per_cohort_response' - description: '' - /v2/discovery/overview/treatment_type_count: - get: - operationId: discovery_overview_treatment_type_count_retrieve - description: MoH Treatments type count - tags: - - discovery - security: - - {} - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/moh_overview_treatment_type_count_response' - description: '' - /v2/discovery/primary_diagnoses/: - get: - operationId: discovery_primary_diagnoses_list - description: Retrieves a number of discovery primary diagnosises. - parameters: - - in: query - name: submitter_primary_diagnosis_id - schema: - type: string - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: date_of_diagnosis - schema: - type: string - - in: query - name: cancer_type_code - schema: - type: string - - in: query - name: basis_of_diagnosis - schema: - type: string - - in: query - name: laterality - schema: - type: string - - in: query - name: lymph_nodes_examined_status - schema: - type: string - - in: query - name: lymph_nodes_examined_method - schema: - type: string - - in: query - name: number_lymph_nodes_positive - schema: - type: integer - - in: query - name: clinical_tumour_staging_system - schema: - type: string - - in: query - name: clinical_t_category - schema: - type: string - - in: query - name: clinical_n_category - schema: - type: string - - in: query - name: clinical_m_category - schema: - type: string - - in: query - name: clinical_stage_group - schema: - type: string - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' - /v2/discovery/radiations/: - get: - operationId: discovery_radiations_list - description: Retrieves a number of discovery radiations. - parameters: - - in: query - name: id - schema: - type: string - format: uuid - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_treatment_id - schema: - type: string - - in: query - name: radiation_therapy_modality - schema: - type: string - - in: query - name: radiation_therapy_type - schema: - type: string - - in: query - name: radiation_therapy_fractions - schema: - type: integer - - in: query - name: radiation_therapy_dosage - schema: - type: integer - - in: query - name: anatomical_site_irradiated - schema: - type: string - - in: query - name: radiation_boost - schema: - type: boolean - - in: query - name: reference_radiation_treatment_id - schema: - type: string - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' - /v2/discovery/sample_registrations/: - get: - operationId: discovery_sample_registrations_list - description: Retrieves a number of discovery samples. - parameters: - - in: query - name: submitter_sample_id - schema: - type: string - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_specimen_id - schema: - type: string - - in: query - name: specimen_tissue_source - schema: - type: string - - in: query - name: tumour_normal_designation - schema: - type: string - - in: query - name: specimen_type - schema: - type: string - - in: query - name: sample_type - schema: - type: string - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' - /v2/discovery/sidebar_list/: - get: - operationId: discovery_sidebar_list_retrieve - description: |- - Retrieve the list of available values for all fields (including for - datasets that the user is not authorized to view) - tags: - - discovery - security: - - {} - responses: - '201': - content: - application/json: - schema: - type: string - description: '' - /v2/discovery/specimens/: - get: - operationId: discovery_specimens_list - description: Retrieves a number of discovery specimens. - parameters: - - in: query - name: submitter_specimen_id - schema: - type: string - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_primary_diagnosis_id - schema: - type: string - - in: query - name: pathological_tumour_staging_system - schema: - type: string - - in: query - name: pathological_t_category - schema: - type: string - - in: query - name: pathological_n_category - schema: - type: string - - in: query - name: pathological_m_category - schema: - type: string - - in: query - name: pathological_stage_group - schema: - type: string - - in: query - name: specimen_collection_date - schema: - type: string - - in: query - name: specimen_storage - schema: - type: string - - in: query - name: specimen_processing - schema: - type: string - - in: query - name: tumour_histological_type - schema: - type: string - - in: query - name: specimen_anatomic_location - schema: - type: string - - in: query - name: specimen_laterality - schema: - type: string - - in: query - name: reference_pathology_confirmed_diagnosis - schema: - type: string - - in: query - name: reference_pathology_confirmed_tumour_presence - schema: - type: string - - in: query - name: tumour_grading_system - schema: - type: string - - in: query - name: tumour_grade - schema: - type: string - - in: query - name: percent_tumour_cells_range - schema: - type: string - - in: query - name: percent_tumour_cells_measurement_method - schema: - type: string - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' - /v2/discovery/surgeries/: - get: - operationId: discovery_surgeries_list - description: Retrieves a number of discovery surgeries. - parameters: - - in: query - name: id - schema: - type: string - format: uuid - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_treatment_id - schema: - type: string - - in: query - name: submitter_specimen_id - schema: - type: string - - in: query - name: surgery_type - schema: - type: string - - in: query - name: surgery_site - schema: - type: string - - in: query - name: surgery_location - schema: - type: string - - in: query - name: tumour_length - schema: - type: integer - - in: query - name: tumour_width - schema: - type: integer - - in: query - name: greatest_dimension_tumour - schema: - type: integer - - in: query - name: tumour_focality - schema: - type: string - - in: query - name: residual_tumour_classification - schema: - type: string - - in: query - name: margin_types_involved - schema: - type: string - - in: query - name: margin_types_not_involved - schema: - type: string - - in: query - name: margin_types_not_assessed - schema: - type: string - - in: query - name: lymphovascular_invasion - schema: - type: string - - in: query - name: perineural_invasion - schema: - type: string - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' - /v2/discovery/treatments/: - get: - operationId: discovery_treatments_list - description: Retrieves a number of discovery treatments. - parameters: - - in: query - name: submitter_treatment_id - schema: - type: string - - in: query - name: program_id - schema: - type: string - - in: query - name: submitter_donor_id - schema: - type: string - - in: query - name: submitter_primary_diagnosis_id - schema: - type: string - - in: query - name: treatment_type - schema: - type: string - - in: query - name: is_primary_treatment - schema: - type: string - - in: query - name: line_of_treatment - schema: - type: integer - - in: query - name: treatment_start_date - schema: - type: string - - in: query - name: treatment_end_date - schema: - type: string - - in: query - name: treatment_setting - schema: - type: string - - in: query - name: treatment_intent - schema: - type: string - - in: query - name: days_per_cycle - schema: - type: integer - - in: query - name: number_of_cycles - schema: - type: integer - - in: query - name: response_to_treatment_criteria_method - schema: - type: string - - in: query - name: response_to_treatment - schema: - type: string - - in: query - name: status_of_treatment - schema: - type: string - tags: - - discovery - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Discovery' - description: '' -components: - schemas: - AnatomicalSiteIrradiatedEnum: - enum: - - Left Abdomen - - Whole Abdomen - - Right Abdomen - - Lower Abdomen - - Left Lower Abdomen - - Right Lower Abdomen - - Upper Abdomen - - Left Upper Abdomen - - Right Upper Abdomen - - Left Adrenal - - Right Adrenal - - Bilateral Ankle - - Left Ankle - - Right Ankle - - Bilateral Antrum (Bull's Eye) - - Left Antrum - - Right Antrum - - Anus - - Lower Left Arm - - Lower Right Arm - - Bilateral Arms - - Left Arm - - Right Arm - - Upper Left Arm - - Upper Right Arm - - Left Axilla - - Right Axilla - - Skin or Soft Tissue of Back - - Bile Duct - - Bladder - - Lower Body - - Middle Body - - Upper Body - - Whole Body - - Boost - Area Previously Treated - - Brain - - Left Breast Boost - - Right Breast Boost - - Bilateral Breast - - Left Breast - - Right Breast - - Bilateral Breasts with Nodes - - Left Breast with Nodes - - Right Breast with Nodes - - Bilateral Buttocks - - Left Buttock - - Right Buttock - - Inner Canthus - - Outer Canthus - - Cervix - - Bilateral Chest Lung & Area Involve - - Left Chest - - Right Chest - - Chin - - Left Cheek - - Right Cheek - - Bilateral Chest Wall (W/o Breast) - - Left Chest Wall - - Right Chest Wall - - Bilateral Clavicle - - Left Clavicle - - Right Clavicle - - Coccyx - - Colon - - Whole C.N.S. (Medulla Techinque) - - Csf Spine (Medull Tech 2 Diff Machi - - Left Chestwall Boost - - Right Chestwall Boost - - Bilateral Chestwall with Nodes - - Left Chestwall with Nodes - - Right Chestwall with Nodes - - Left Ear - - Right Ear - - Epigastrium - - Lower Esophagus - - Middle Esophagus - - Upper Esophagus - - Entire Esophagus - - Ethmoid Sinus - - Bilateral Eyes - - Left Eye - - Right Eye - - Bilateral Face - - Left Face - - Right Face - - Left Fallopian Tubes - - Right Fallopian Tubes - - Bilateral Femur - - Left Femur - - Right Femur - - Left Fibula - - Right Fibula - - Finger (Including Thumbs) - - Floor of Mouth (Boosts) - - Bilateral Feet - - Left Foot - - Right Foot - - Forehead - - Posterior Fossa - - Gall Bladder - - Gingiva - - Bilateral Hand - - Left Hand - - Right Hand - - Head - - Bilateral Heel - - Left Heel - - Right Heel - - Left Hemimantle - - Right Hemimantle - - Heart - - Bilateral Hip - - Left Hip - - Right Hip - - Left Humerus - - Right Humerus - - Hypopharynx - - Bilateral Internal Mammary Chain - - Bilateral Inguinal Nodes - - Left Inguinal Nodes - - Right Inguinal Nodes - - Inverted 'Y' (Dog-Leg,Hockey-Stick) - - Left Kidney - - Right Kidney - - Bilateral Knee - - Left Knee - - Right Knee - - Bilateral Lacrimal Gland - - Left Lacrimal Gland - - Right Lacrimal Gland - - Larygopharynx - - Larynx - - Bilateral Leg - - Left Leg - - Right Leg - - Lower Bilateral Leg - - Lower Left Leg - - Lower Right Leg - - Upper Bilateral Leg - - Upper Left Leg - - Upper Right Leg - - Both Eyelid(s) - - Left Eyelid - - Right Eyelid - - Both Lip(s) - - Lower Lip - - Upper Lip - - Liver - - Bilateral Lung - - Left Lung - - Right Lung - - Bilateral Mandible - - Left Mandible - - Right Mandible - - Mantle - - Bilateral Maxilla - - Left Maxilla - - Right Maxilla - - Mediastinum - - Multiple Skin - - Nasal Fossa - - Nasopharynx - - Bilateral Neck Includes Nodes - - Left Neck Includes Nodes - - Right Neck Includes Nodes - - Neck - Skin - - Nose - - Oral Cavity / Buccal Mucosa - - Bilateral Orbit - - Left Orbit - - Right Orbit - - Oropharynx - - Bilateral Ovary - - Left Ovary - - Right Ovary - - Hard Palate - - Soft Palate - - Palate Unspecified - - Pancreas - - Para-Aortic Nodes - - Left Parotid - - Right Parotid - - Bilateral Pelvis - - Left Pelvis - - Right Pelvis - - Penis - - Perineum - - Pituitary - - Left Pleura (As in Mesothelioma) - - Right Pleura - - Prostate - - Pubis - - Pyriform Fossa (Sinuses) - - Left Radius - - Right Radius - - Rectum (Includes Sigmoid) - - Left Ribs - - Right Ribs - - Sacrum - - Left Salivary Gland - - Right Salivary Gland - - Bilateral Scapula - - Left Scapula - - Right Scapula - - Bilateral Supraclavicular Nodes - - Left Supraclavicular Nodes - - Right Supraclavicular Nodes - - Bilateral Scalp - - Left Scalp - - Right Scalp - - Scrotum - - Bilateral Shoulder - - Left Shoulder - - Right Shoulder - - Whole Body - Skin - - Skull - - Cervical & Thoracic Spine - - Sphenoid Sinus - - Cervical Spine - - Lumbar Spine - - Thoracic Spine - - Whole Spine - - Spleen - - Lumbo-Sacral Spine - - Thoracic & Lumbar Spine - - Sternum - - Stomach - - Submandibular Glands - - Left Temple - - Right Temple - - Bilateral Testis - - Left Testis - - Right Testis - - Thyroid - - Left Tibia - - Right Tibia - - Left Toes - - Right Toes - - Tongue - - Tonsil - - Trachea - - Left Ulna - - Right Ulna - - Left Ureter - - Right Ureter - - Urethra - - Uterus - - Uvula - - Vagina - - Vulva - - Abdomen - - Body - - Chest - - Lower Limb - - Neck - - Other - - Pelvis - - Skin - - Spine - - Upper Limb - type: string - description: |- - * `Left Abdomen` - Left Abdomen - * `Whole Abdomen` - Whole Abdomen - * `Right Abdomen` - Right Abdomen - * `Lower Abdomen` - Lower Abdomen - * `Left Lower Abdomen` - Left Lower Abdomen - * `Right Lower Abdomen` - Right Lower Abdomen - * `Upper Abdomen` - Upper Abdomen - * `Left Upper Abdomen` - Left Upper Abdomen - * `Right Upper Abdomen` - Right Upper Abdomen - * `Left Adrenal` - Left Adrenal - * `Right Adrenal` - Right Adrenal - * `Bilateral Ankle` - Bilateral Ankle - * `Left Ankle` - Left Ankle - * `Right Ankle` - Right Ankle - * `Bilateral Antrum (Bull's Eye)` - Bilateral Antrum (Bull's Eye) - * `Left Antrum` - Left Antrum - * `Right Antrum` - Right Antrum - * `Anus` - Anus - * `Lower Left Arm` - Lower Left Arm - * `Lower Right Arm` - Lower Right Arm - * `Bilateral Arms` - Bilateral Arms - * `Left Arm` - Left Arm - * `Right Arm` - Right Arm - * `Upper Left Arm` - Upper Left Arm - * `Upper Right Arm` - Upper Right Arm - * `Left Axilla` - Left Axilla - * `Right Axilla` - Right Axilla - * `Skin or Soft Tissue of Back` - Skin or Soft Tissue of Back - * `Bile Duct` - Bile Duct - * `Bladder` - Bladder - * `Lower Body` - Lower Body - * `Middle Body` - Middle Body - * `Upper Body` - Upper Body - * `Whole Body` - Whole Body - * `Boost - Area Previously Treated` - Boost - Area Previously Treated - * `Brain` - Brain - * `Left Breast Boost` - Left Breast Boost - * `Right Breast Boost` - Right Breast Boost - * `Bilateral Breast` - Bilateral Breast - * `Left Breast` - Left Breast - * `Right Breast` - Right Breast - * `Bilateral Breasts with Nodes` - Bilateral Breasts with Nodes - * `Left Breast with Nodes` - Left Breast with Nodes - * `Right Breast with Nodes` - Right Breast with Nodes - * `Bilateral Buttocks` - Bilateral Buttocks - * `Left Buttock` - Left Buttock - * `Right Buttock` - Right Buttock - * `Inner Canthus` - Inner Canthus - * `Outer Canthus` - Outer Canthus - * `Cervix` - Cervix - * `Bilateral Chest Lung & Area Involve` - Bilateral Chest Lung & Area Involve - * `Left Chest` - Left Chest - * `Right Chest` - Right Chest - * `Chin` - Chin - * `Left Cheek` - Left Cheek - * `Right Cheek` - Right Cheek - * `Bilateral Chest Wall (W/o Breast)` - Bilateral Chest Wall (W/o Breast) - * `Left Chest Wall` - Left Chest Wall - * `Right Chest Wall` - Right Chest Wall - * `Bilateral Clavicle` - Bilateral Clavicle - * `Left Clavicle` - Left Clavicle - * `Right Clavicle` - Right Clavicle - * `Coccyx` - Coccyx - * `Colon` - Colon - * `Whole C.N.S. (Medulla Techinque)` - Whole C.N.S. (Medulla Techinque) - * `Csf Spine (Medull Tech 2 Diff Machi` - Csf Spine (Medull Tech 2 Diff Machi - * `Left Chestwall Boost` - Left Chestwall Boost - * `Right Chestwall Boost` - Right Chestwall Boost - * `Bilateral Chestwall with Nodes` - Bilateral Chestwall with Nodes - * `Left Chestwall with Nodes` - Left Chestwall with Nodes - * `Right Chestwall with Nodes` - Right Chestwall with Nodes - * `Left Ear` - Left Ear - * `Right Ear` - Right Ear - * `Epigastrium` - Epigastrium - * `Lower Esophagus` - Lower Esophagus - * `Middle Esophagus` - Middle Esophagus - * `Upper Esophagus` - Upper Esophagus - * `Entire Esophagus` - Entire Esophagus - * `Ethmoid Sinus` - Ethmoid Sinus - * `Bilateral Eyes` - Bilateral Eyes - * `Left Eye` - Left Eye - * `Right Eye` - Right Eye - * `Bilateral Face` - Bilateral Face - * `Left Face` - Left Face - * `Right Face` - Right Face - * `Left Fallopian Tubes` - Left Fallopian Tubes - * `Right Fallopian Tubes` - Right Fallopian Tubes - * `Bilateral Femur` - Bilateral Femur - * `Left Femur` - Left Femur - * `Right Femur` - Right Femur - * `Left Fibula` - Left Fibula - * `Right Fibula` - Right Fibula - * `Finger (Including Thumbs)` - Finger (Including Thumbs) - * `Floor of Mouth (Boosts)` - Floor of Mouth (Boosts) - * `Bilateral Feet` - Bilateral Feet - * `Left Foot` - Left Foot - * `Right Foot` - Right Foot - * `Forehead` - Forehead - * `Posterior Fossa` - Posterior Fossa - * `Gall Bladder` - Gall Bladder - * `Gingiva` - Gingiva - * `Bilateral Hand` - Bilateral Hand - * `Left Hand` - Left Hand - * `Right Hand` - Right Hand - * `Head` - Head - * `Bilateral Heel` - Bilateral Heel - * `Left Heel` - Left Heel - * `Right Heel` - Right Heel - * `Left Hemimantle` - Left Hemimantle - * `Right Hemimantle` - Right Hemimantle - * `Heart` - Heart - * `Bilateral Hip` - Bilateral Hip - * `Left Hip` - Left Hip - * `Right Hip` - Right Hip - * `Left Humerus` - Left Humerus - * `Right Humerus` - Right Humerus - * `Hypopharynx` - Hypopharynx - * `Bilateral Internal Mammary Chain` - Bilateral Internal Mammary Chain - * `Bilateral Inguinal Nodes` - Bilateral Inguinal Nodes - * `Left Inguinal Nodes` - Left Inguinal Nodes - * `Right Inguinal Nodes` - Right Inguinal Nodes - * `Inverted 'Y' (Dog-Leg,Hockey-Stick)` - Inverted 'Y' (Dog-Leg,Hockey-Stick) - * `Left Kidney` - Left Kidney - * `Right Kidney` - Right Kidney - * `Bilateral Knee` - Bilateral Knee - * `Left Knee` - Left Knee - * `Right Knee` - Right Knee - * `Bilateral Lacrimal Gland` - Bilateral Lacrimal Gland - * `Left Lacrimal Gland` - Left Lacrimal Gland - * `Right Lacrimal Gland` - Right Lacrimal Gland - * `Larygopharynx` - Larygopharynx - * `Larynx` - Larynx - * `Bilateral Leg` - Bilateral Leg - * `Left Leg` - Left Leg - * `Right Leg` - Right Leg - * `Lower Bilateral Leg` - Lower Bilateral Leg - * `Lower Left Leg` - Lower Left Leg - * `Lower Right Leg` - Lower Right Leg - * `Upper Bilateral Leg` - Upper Bilateral Leg - * `Upper Left Leg` - Upper Left Leg - * `Upper Right Leg` - Upper Right Leg - * `Both Eyelid(s)` - Both Eyelid(s) - * `Left Eyelid` - Left Eyelid - * `Right Eyelid` - Right Eyelid - * `Both Lip(s)` - Both Lip(s) - * `Lower Lip` - Lower Lip - * `Upper Lip` - Upper Lip - * `Liver` - Liver - * `Bilateral Lung` - Bilateral Lung - * `Left Lung` - Left Lung - * `Right Lung` - Right Lung - * `Bilateral Mandible` - Bilateral Mandible - * `Left Mandible` - Left Mandible - * `Right Mandible` - Right Mandible - * `Mantle` - Mantle - * `Bilateral Maxilla` - Bilateral Maxilla - * `Left Maxilla` - Left Maxilla - * `Right Maxilla` - Right Maxilla - * `Mediastinum` - Mediastinum - * `Multiple Skin` - Multiple Skin - * `Nasal Fossa` - Nasal Fossa - * `Nasopharynx` - Nasopharynx - * `Bilateral Neck Includes Nodes` - Bilateral Neck Includes Nodes - * `Left Neck Includes Nodes` - Left Neck Includes Nodes - * `Right Neck Includes Nodes` - Right Neck Includes Nodes - * `Neck - Skin` - Neck - Skin - * `Nose` - Nose - * `Oral Cavity / Buccal Mucosa` - Oral Cavity / Buccal Mucosa - * `Bilateral Orbit` - Bilateral Orbit - * `Left Orbit` - Left Orbit - * `Right Orbit` - Right Orbit - * `Oropharynx` - Oropharynx - * `Bilateral Ovary` - Bilateral Ovary - * `Left Ovary` - Left Ovary - * `Right Ovary` - Right Ovary - * `Hard Palate` - Hard Palate - * `Soft Palate` - Soft Palate - * `Palate Unspecified` - Palate Unspecified - * `Pancreas` - Pancreas - * `Para-Aortic Nodes` - Para-Aortic Nodes - * `Left Parotid` - Left Parotid - * `Right Parotid` - Right Parotid - * `Bilateral Pelvis` - Bilateral Pelvis - * `Left Pelvis` - Left Pelvis - * `Right Pelvis` - Right Pelvis - * `Penis` - Penis - * `Perineum` - Perineum - * `Pituitary` - Pituitary - * `Left Pleura (As in Mesothelioma)` - Left Pleura (As in Mesothelioma) - * `Right Pleura` - Right Pleura - * `Prostate` - Prostate - * `Pubis` - Pubis - * `Pyriform Fossa (Sinuses)` - Pyriform Fossa (Sinuses) - * `Left Radius` - Left Radius - * `Right Radius` - Right Radius - * `Rectum (Includes Sigmoid)` - Rectum (Includes Sigmoid) - * `Left Ribs` - Left Ribs - * `Right Ribs` - Right Ribs - * `Sacrum` - Sacrum - * `Left Salivary Gland` - Left Salivary Gland - * `Right Salivary Gland` - Right Salivary Gland - * `Bilateral Scapula` - Bilateral Scapula - * `Left Scapula` - Left Scapula - * `Right Scapula` - Right Scapula - * `Bilateral Supraclavicular Nodes` - Bilateral Supraclavicular Nodes - * `Left Supraclavicular Nodes` - Left Supraclavicular Nodes - * `Right Supraclavicular Nodes` - Right Supraclavicular Nodes - * `Bilateral Scalp` - Bilateral Scalp - * `Left Scalp` - Left Scalp - * `Right Scalp` - Right Scalp - * `Scrotum` - Scrotum - * `Bilateral Shoulder` - Bilateral Shoulder - * `Left Shoulder` - Left Shoulder - * `Right Shoulder` - Right Shoulder - * `Whole Body - Skin` - Whole Body - Skin - * `Skull` - Skull - * `Cervical & Thoracic Spine` - Cervical & Thoracic Spine - * `Sphenoid Sinus` - Sphenoid Sinus - * `Cervical Spine` - Cervical Spine - * `Lumbar Spine` - Lumbar Spine - * `Thoracic Spine` - Thoracic Spine - * `Whole Spine` - Whole Spine - * `Spleen` - Spleen - * `Lumbo-Sacral Spine` - Lumbo-Sacral Spine - * `Thoracic & Lumbar Spine` - Thoracic & Lumbar Spine - * `Sternum` - Sternum - * `Stomach` - Stomach - * `Submandibular Glands` - Submandibular Glands - * `Left Temple` - Left Temple - * `Right Temple` - Right Temple - * `Bilateral Testis` - Bilateral Testis - * `Left Testis` - Left Testis - * `Right Testis` - Right Testis - * `Thyroid` - Thyroid - * `Left Tibia` - Left Tibia - * `Right Tibia` - Right Tibia - * `Left Toes` - Left Toes - * `Right Toes` - Right Toes - * `Tongue` - Tongue - * `Tonsil` - Tonsil - * `Trachea` - Trachea - * `Left Ulna` - Left Ulna - * `Right Ulna` - Right Ulna - * `Left Ureter` - Left Ureter - * `Right Ureter` - Right Ureter - * `Urethra` - Urethra - * `Uterus` - Uterus - * `Uvula` - Uvula - * `Vagina` - Vagina - * `Vulva` - Vulva - * `Abdomen` - Abdomen - * `Body` - Body - * `Chest` - Chest - * `Lower Limb` - Lower Limb - * `Neck` - Neck - * `Other` - Other - * `Pelvis` - Pelvis - * `Skin` - Skin - * `Spine` - Spine - * `Upper Limb` - Upper Limb - BasisOfDiagnosisEnum: - enum: - - Clinical investigation - - Clinical - - Cytology - - Death certificate only - - Histology of a metastasis - - Histology of a primary tumour - - Specific tumour markers - - Unknown - type: string - description: |- - * `Clinical investigation` - Clinical investigation - * `Clinical` - Clinical - * `Cytology` - Cytology - * `Death certificate only` - Death certificate only - * `Histology of a metastasis` - Histology of a metastasis - * `Histology of a primary tumour` - Histology of a primary tumour - * `Specific tumour markers` - Specific tumour markers - * `Unknown` - Unknown - Biomarker: - type: object - properties: - id: - type: string - format: uuid - er_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/ErPrHpvStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - pr_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/ErPrHpvStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - her2_ihc_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/Her2StatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - her2_ish_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/Her2StatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - hpv_ihc_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/ErPrHpvStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - hpv_pcr_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/ErPrHpvStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - hpv_strain: - type: array - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/HpvStrainEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - submitter_specimen_id: - type: string - nullable: true - maxLength: 64 - submitter_primary_diagnosis_id: - type: string - nullable: true - maxLength: 64 - submitter_treatment_id: - type: string - nullable: true - maxLength: 64 - submitter_follow_up_id: - type: string - nullable: true - maxLength: 64 - test_date: - type: string - nullable: true - maxLength: 32 - psa_level: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - ca125: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - cea: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - er_percent_positive: - type: number - format: double - nullable: true - pr_percent_positive: - type: number - format: double - nullable: true - program_id: - type: string - submitter_donor_id: - type: string - required: - - program_id - - submitter_donor_id - BlankEnum: - enum: - - '' - CauseOfDeathEnum: - enum: - - Died of cancer - - Died of other reasons - - Unknown - type: string - description: |- - * `Died of cancer` - Died of cancer - * `Died of other reasons` - Died of other reasons - * `Unknown` - Unknown - Chemotherapy: - type: object - properties: - id: - type: string - format: uuid - chemotherapy_drug_dose_units: - nullable: true - oneOf: - - $ref: '#/components/schemas/DosageUnitsEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - drug_reference_database: - nullable: true - oneOf: - - $ref: '#/components/schemas/DrugReferenceDatabaseEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - drug_name: - type: string - nullable: true - maxLength: 255 - drug_reference_identifier: - type: string - nullable: true - maxLength: 64 - prescribed_cumulative_drug_dose: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - actual_cumulative_drug_dose: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - program_id: - type: string - submitter_donor_id: - type: string - submitter_treatment_id: - type: string - required: - - program_id - - submitter_donor_id - - submitter_treatment_id - Comorbidity: - type: object - properties: - id: - type: string - format: uuid - prior_malignancy: - nullable: true - oneOf: - - $ref: '#/components/schemas/uBooleanEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - laterality_of_prior_malignancy: - nullable: true - oneOf: - - $ref: '#/components/schemas/LateralityOfPriorMalignancyEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - comorbidity_type_code: - type: string - nullable: true - maxLength: 64 - pattern: ^[A-Z][0-9]{2}(.[0-9]{1,3}[A-Z]{0,1})?$ - comorbidity_treatment_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/uBooleanEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - comorbidity_treatment: - type: string - nullable: true - maxLength: 255 - age_at_comorbidity_diagnosis: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - program_id: - type: string - submitter_donor_id: - type: string - required: - - program_id - - submitter_donor_id - Discovery: - type: object - description: |- - This serializer is used to return the discovery_donor. - It also override the list serializer to a single object - properties: - discovery_donor: - type: integer - required: - - discovery_donor - DiseaseStatusAtFollowupEnum: - enum: - - Complete remission - - Distant progression - - Loco-regional progression - - No evidence of disease - - Partial remission - - Progression not otherwise specified - - Relapse or recurrence - - Stable - type: string - description: |- - * `Complete remission` - Complete remission - * `Distant progression` - Distant progression - * `Loco-regional progression` - Loco-regional progression - * `No evidence of disease` - No evidence of disease - * `Partial remission` - Partial remission - * `Progression not otherwise specified` - Progression not otherwise specified - * `Relapse or recurrence` - Relapse or recurrence - * `Stable` - Stable - Donor: - type: object - properties: - submitter_donor_id: - type: string - maxLength: 64 - pattern: ^[A-Za-z0-9\-\._]{1,64} - cause_of_death: - nullable: true - oneOf: - - $ref: '#/components/schemas/CauseOfDeathEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - date_of_birth: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - date_of_death: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - primary_site: - type: array - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/PrimarySiteEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - gender: - nullable: true - oneOf: - - $ref: '#/components/schemas/GenderEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - sex_at_birth: - nullable: true - oneOf: - - $ref: '#/components/schemas/SexAtBirthEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - lost_to_followup_reason: - nullable: true - oneOf: - - $ref: '#/components/schemas/LostToFollowupReasonEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - date_alive_after_lost_to_followup: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - is_deceased: - type: boolean - nullable: true - lost_to_followup_after_clinical_event_identifier: - type: string - nullable: true - maxLength: 255 - program_id: - type: string - required: - - program_id - - submitter_donor_id - DonorWithClinicalData: - type: object - properties: - submitter_donor_id: - type: string - maxLength: 64 - pattern: ^[A-Za-z0-9\-\._]{1,64} - program_id: - type: string - lost_to_followup_after_clinical_event_identifier: - type: string - nullable: true - maxLength: 255 - lost_to_followup_reason: - nullable: true - oneOf: - - $ref: '#/components/schemas/LostToFollowupReasonEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - date_alive_after_lost_to_followup: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - is_deceased: - type: boolean - nullable: true - cause_of_death: - nullable: true - oneOf: - - $ref: '#/components/schemas/CauseOfDeathEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - date_of_birth: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - date_of_death: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - gender: - nullable: true - oneOf: - - $ref: '#/components/schemas/GenderEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - sex_at_birth: - nullable: true - oneOf: - - $ref: '#/components/schemas/SexAtBirthEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - primary_site: - type: array - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/PrimarySiteEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - primary_diagnoses: - type: array - items: - $ref: '#/components/schemas/NestedPrimaryDiagnosis' - readOnly: true - comorbidities: - type: array - items: - $ref: '#/components/schemas/NestedComorbidity' - readOnly: true - exposures: - type: array - items: - $ref: '#/components/schemas/NestedExposure' - readOnly: true - biomarkers: - type: array - items: - $ref: '#/components/schemas/NestedBiomarker' - readOnly: true - followups: - type: array - items: - $ref: '#/components/schemas/NestedFollowUp' - readOnly: true - required: - - program_id - - submitter_donor_id - DosageUnitsEnum: - enum: - - mg/m2 - - IU/m2 - - IU/kg - - ug/m2 - - g/m2 - - mg/kg - - cells/kg - type: string - description: |- - * `mg/m2` - mg/m2 - * `IU/m2` - IU/m2 - * `IU/kg` - IU/kg - * `ug/m2` - ug/m2 - * `g/m2` - g/m2 - * `mg/kg` - mg/kg - * `cells/kg` - cells/kg - DrugReferenceDatabaseEnum: - enum: - - RxNorm - - PubChem - - NCI Thesaurus - type: string - description: |- - * `RxNorm` - RxNorm - * `PubChem` - PubChem - * `NCI Thesaurus` - NCI Thesaurus - ErPrHpvStatusEnum: - enum: - - Cannot be determined - - Negative - - Not applicable - - Positive - - Unknown - type: string - description: |- - * `Cannot be determined` - Cannot be determined - * `Negative` - Negative - * `Not applicable` - Not applicable - * `Positive` - Positive - * `Unknown` - Unknown - Exposure: - type: object - properties: - id: - type: string - format: uuid - tobacco_smoking_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/TobaccoSmokingStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - tobacco_type: - type: array - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/TobaccoTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - pack_years_smoked: - type: number - format: double - nullable: true - program_id: - type: string - submitter_donor_id: - type: string - required: - - program_id - - submitter_donor_id - FollowUp: - type: object - properties: - submitter_follow_up_id: - type: string - maxLength: 64 - disease_status_at_followup: - nullable: true - oneOf: - - $ref: '#/components/schemas/DiseaseStatusAtFollowupEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - relapse_type: - nullable: true - oneOf: - - $ref: '#/components/schemas/RelapseTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - date_of_relapse: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - method_of_progression_status: - type: array - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/MethodOfProgressionStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - anatomic_site_progression_or_recurrence: - type: array - items: - type: string - nullable: true - maxLength: 32 - pattern: ^[C][0-9]{2}(.[0-9]{1})?$ - nullable: true - recurrence_tumour_staging_system: - nullable: true - oneOf: - - $ref: '#/components/schemas/StagingSystemEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - recurrence_t_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/TCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - recurrence_n_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/NCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - recurrence_m_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/MCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - recurrence_stage_group: - nullable: true - oneOf: - - $ref: '#/components/schemas/StageGroupEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - date_of_followup: - type: string - nullable: true - maxLength: 32 - program_id: - type: string - submitter_donor_id: - type: string - submitter_primary_diagnosis_id: - type: string - nullable: true - submitter_treatment_id: - type: string - nullable: true - required: - - program_id - - submitter_donor_id - - submitter_follow_up_id - GenderEnum: - enum: - - Man - - Woman - - Non-binary - type: string - description: |- - * `Man` - Man - * `Woman` - Woman - * `Non-binary` - Non-binary - Her2StatusEnum: - enum: - - Cannot be determined - - Equivocal - - Positive - - Negative - - Not applicable - - Unknown - type: string - description: |- - * `Cannot be determined` - Cannot be determined - * `Equivocal` - Equivocal - * `Positive` - Positive - * `Negative` - Negative - * `Not applicable` - Not applicable - * `Unknown` - Unknown - HormoneTherapy: - type: object - properties: - id: - type: string - format: uuid - hormone_drug_dose_units: - nullable: true - oneOf: - - $ref: '#/components/schemas/DosageUnitsEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - drug_reference_database: - nullable: true - oneOf: - - $ref: '#/components/schemas/DrugReferenceDatabaseEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - drug_name: - type: string - nullable: true - maxLength: 255 - drug_reference_identifier: - type: string - nullable: true - maxLength: 64 - prescribed_cumulative_drug_dose: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - actual_cumulative_drug_dose: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - program_id: - type: string - submitter_donor_id: - type: string - submitter_treatment_id: - type: string - required: - - program_id - - submitter_donor_id - - submitter_treatment_id - HpvStrainEnum: - enum: - - HPV16 - - HPV18 - - HPV31 - - HPV33 - - HPV35 - - HPV39 - - HPV45 - - HPV51 - - HPV52 - - HPV56 - - HPV58 - - HPV59 - - HPV66 - - HPV68 - - HPV73 - type: string - description: |- - * `HPV16` - HPV16 - * `HPV18` - HPV18 - * `HPV31` - HPV31 - * `HPV33` - HPV33 - * `HPV35` - HPV35 - * `HPV39` - HPV39 - * `HPV45` - HPV45 - * `HPV51` - HPV51 - * `HPV52` - HPV52 - * `HPV56` - HPV56 - * `HPV58` - HPV58 - * `HPV59` - HPV59 - * `HPV66` - HPV66 - * `HPV68` - HPV68 - * `HPV73` - HPV73 - Immunotherapy: - type: object - properties: - id: - type: string - format: uuid - immunotherapy_type: - nullable: true - oneOf: - - $ref: '#/components/schemas/ImmunotherapyTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - drug_reference_database: - nullable: true - oneOf: - - $ref: '#/components/schemas/DrugReferenceDatabaseEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - immunotherapy_drug_dose_units: - nullable: true - oneOf: - - $ref: '#/components/schemas/DosageUnitsEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - drug_name: - type: string - nullable: true - maxLength: 255 - drug_reference_identifier: - type: string - nullable: true - maxLength: 64 - prescribed_cumulative_drug_dose: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - actual_cumulative_drug_dose: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - program_id: - type: string - submitter_donor_id: - type: string - submitter_treatment_id: - type: string - required: - - program_id - - submitter_donor_id - - submitter_treatment_id - ImmunotherapyTypeEnum: - enum: - - Cell-based - - Immune checkpoint inhibitors - - Monoclonal antibodies other than immune checkpoint inhibitors - - Other immunomodulatory substances - type: string - description: |- - * `Cell-based` - Cell-based - * `Immune checkpoint inhibitors` - Immune checkpoint inhibitors - * `Monoclonal antibodies other than immune checkpoint inhibitors` - Monoclonal antibodies other than immune checkpoint inhibitors - * `Other immunomodulatory substances` - Other immunomodulatory substances - LateralityEnum: - enum: - - Bilateral - - Left - - Midline - - Not a paired site - - Right - - Unilateral, side not specified - - Unknown - type: string - description: |- - * `Bilateral` - Bilateral - * `Left` - Left - * `Midline` - Midline - * `Not a paired site` - Not a paired site - * `Right` - Right - * `Unilateral, side not specified` - Unilateral, side not specified - * `Unknown` - Unknown - LateralityOfPriorMalignancyEnum: - enum: - - Bilateral - - Left - - Midline - - Not applicable - - Right - - Unilateral, Side not specified - - Unknown - type: string - description: |- - * `Bilateral` - Bilateral - * `Left` - Left - * `Midline` - Midline - * `Not applicable` - Not applicable - * `Right` - Right - * `Unilateral, Side not specified` - Unilateral, Side not specified - * `Unknown` - Unknown - LostToFollowupReasonEnum: - enum: - - Completed study - - Discharged to palliative care - - Lost contact - - Not applicable - - Unknown - - Withdrew from study - type: string - description: |- - * `Completed study` - Completed study - * `Discharged to palliative care` - Discharged to palliative care - * `Lost contact` - Lost contact - * `Not applicable` - Not applicable - * `Unknown` - Unknown - * `Withdrew from study` - Withdrew from study - LymphNodesExaminedMethodEnum: - enum: - - Imaging - - Lymph node dissection/pathological exam - - Physical palpation of patient - type: string - description: |- - * `Imaging` - Imaging - * `Lymph node dissection/pathological exam` - Lymph node dissection/pathological exam - * `Physical palpation of patient` - Physical palpation of patient - LymphNodesExaminedStatusEnum: - enum: - - Cannot be determined - - 'No' - - No lymph nodes found in resected specimen - - Not applicable - - 'Yes' - type: string - description: |- - * `Cannot be determined` - Cannot be determined - * `No` - No - * `No lymph nodes found in resected specimen` - No lymph nodes found in resected specimen - * `Not applicable` - Not applicable - * `Yes` - Yes - LymphovascularInvasionEnum: - enum: - - Absent - - Both lymphatic and small vessel and venous (large vessel) invasion - - Lymphatic and small vessel invasion only - - Not applicable - - Present - - Venous (large vessel) invasion only - - Unknown - type: string - description: |- - * `Absent` - Absent - * `Both lymphatic and small vessel and venous (large vessel) invasion` - Both lymphatic and small vessel and venous (large vessel) invasion - * `Lymphatic and small vessel invasion only` - Lymphatic and small vessel invasion only - * `Not applicable` - Not applicable - * `Present` - Present - * `Venous (large vessel) invasion only` - Venous (large vessel) invasion only - * `Unknown` - Unknown - MCategoryEnum: - enum: - - M0 - - M0(i+) - - M1 - - M1a - - M1a(0) - - M1a(1) - - M1b - - M1b(0) - - M1b(1) - - M1c - - M1c(0) - - M1c(1) - - M1d - - M1d(0) - - M1d(1) - - M1e - - MX - type: string - description: |- - * `M0` - M0 - * `M0(i+)` - M0(i+) - * `M1` - M1 - * `M1a` - M1a - * `M1a(0)` - M1a(0) - * `M1a(1)` - M1a(1) - * `M1b` - M1b - * `M1b(0)` - M1b(0) - * `M1b(1)` - M1b(1) - * `M1c` - M1c - * `M1c(0)` - M1c(0) - * `M1c(1)` - M1c(1) - * `M1d` - M1d - * `M1d(0)` - M1d(0) - * `M1d(1)` - M1d(1) - * `M1e` - M1e - * `MX` - MX - MarginTypesEnum: - enum: - - Circumferential resection margin - - Common bile duct margin - - Distal margin - - Not applicable - - Proximal margin - - Unknown - type: string - description: |- - * `Circumferential resection margin` - Circumferential resection margin - * `Common bile duct margin` - Common bile duct margin - * `Distal margin` - Distal margin - * `Not applicable` - Not applicable - * `Proximal margin` - Proximal margin - * `Unknown` - Unknown - MethodOfProgressionStatusEnum: - enum: - - Imaging (procedure) - - Histopathology test (procedure) - - Assessment of symptom control (procedure) - - Physical examination procedure (procedure) - - Tumor marker measurement (procedure) - - Laboratory data interpretation (procedure) - type: string - description: |- - * `Imaging (procedure)` - Imaging (procedure) - * `Histopathology test (procedure)` - Histopathology test (procedure) - * `Assessment of symptom control (procedure)` - Assessment of symptom control (procedure) - * `Physical examination procedure (procedure)` - Physical examination procedure (procedure) - * `Tumor marker measurement (procedure)` - Tumor marker measurement (procedure) - * `Laboratory data interpretation (procedure)` - Laboratory data interpretation (procedure) - NCategoryEnum: - enum: - - N0 - - N0a - - N0a (biopsy) - - N0b - - N0b (no biopsy) - - N0(i+) - - N0(i-) - - N0(mol+) - - N0(mol-) - - N1 - - N1a - - N1a(sn) - - N1b - - N1c - - N1mi - - N2 - - N2a - - N2b - - N2c - - N2mi - - N3 - - N3a - - N3b - - N3c - - N4 - - NX - type: string - description: |- - * `N0` - N0 - * `N0a` - N0a - * `N0a (biopsy)` - N0a (biopsy) - * `N0b` - N0b - * `N0b (no biopsy)` - N0b (no biopsy) - * `N0(i+)` - N0(i+) - * `N0(i-)` - N0(i-) - * `N0(mol+)` - N0(mol+) - * `N0(mol-)` - N0(mol-) - * `N1` - N1 - * `N1a` - N1a - * `N1a(sn)` - N1a(sn) - * `N1b` - N1b - * `N1c` - N1c - * `N1mi` - N1mi - * `N2` - N2 - * `N2a` - N2a - * `N2b` - N2b - * `N2c` - N2c - * `N2mi` - N2mi - * `N3` - N3 - * `N3a` - N3a - * `N3b` - N3b - * `N3c` - N3c - * `N4` - N4 - * `NX` - NX - NestedBiomarker: - type: object - properties: - er_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/ErPrHpvStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - pr_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/ErPrHpvStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - her2_ihc_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/Her2StatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - her2_ish_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/Her2StatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - hpv_ihc_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/ErPrHpvStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - hpv_pcr_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/ErPrHpvStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - hpv_strain: - type: array - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/HpvStrainEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - submitter_specimen_id: - type: string - nullable: true - maxLength: 64 - submitter_primary_diagnosis_id: - type: string - nullable: true - maxLength: 64 - submitter_treatment_id: - type: string - nullable: true - maxLength: 64 - submitter_follow_up_id: - type: string - nullable: true - maxLength: 64 - test_date: - type: string - nullable: true - maxLength: 32 - psa_level: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - ca125: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - cea: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - er_percent_positive: - type: number - format: double - nullable: true - pr_percent_positive: - type: number - format: double - nullable: true - NestedChemotherapy: - type: object - properties: - chemotherapy_drug_dose_units: - nullable: true - oneOf: - - $ref: '#/components/schemas/DosageUnitsEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - drug_reference_database: - nullable: true - oneOf: - - $ref: '#/components/schemas/DrugReferenceDatabaseEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - drug_name: - type: string - nullable: true - maxLength: 255 - drug_reference_identifier: - type: string - nullable: true - maxLength: 64 - prescribed_cumulative_drug_dose: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - actual_cumulative_drug_dose: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - NestedComorbidity: - type: object - properties: - prior_malignancy: - nullable: true - oneOf: - - $ref: '#/components/schemas/uBooleanEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - laterality_of_prior_malignancy: - nullable: true - oneOf: - - $ref: '#/components/schemas/LateralityOfPriorMalignancyEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - comorbidity_type_code: - type: string - nullable: true - maxLength: 64 - pattern: ^[A-Z][0-9]{2}(.[0-9]{1,3}[A-Z]{0,1})?$ - comorbidity_treatment_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/uBooleanEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - comorbidity_treatment: - type: string - nullable: true - maxLength: 255 - age_at_comorbidity_diagnosis: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - NestedExposure: - type: object - properties: - tobacco_smoking_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/TobaccoSmokingStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - tobacco_type: - type: array - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/TobaccoTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - pack_years_smoked: - type: number - format: double - nullable: true - NestedFollowUp: - type: object - properties: - submitter_follow_up_id: - type: string - maxLength: 64 - date_of_followup: - type: string - nullable: true - maxLength: 32 - disease_status_at_followup: - nullable: true - oneOf: - - $ref: '#/components/schemas/DiseaseStatusAtFollowupEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - relapse_type: - nullable: true - oneOf: - - $ref: '#/components/schemas/RelapseTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - date_of_relapse: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - method_of_progression_status: - type: array - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/MethodOfProgressionStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - anatomic_site_progression_or_recurrence: - type: array - items: - type: string - nullable: true - maxLength: 32 - pattern: ^[C][0-9]{2}(.[0-9]{1})?$ - nullable: true - recurrence_tumour_staging_system: - nullable: true - oneOf: - - $ref: '#/components/schemas/StagingSystemEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - recurrence_t_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/TCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - recurrence_n_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/NCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - recurrence_m_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/MCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - recurrence_stage_group: - nullable: true - oneOf: - - $ref: '#/components/schemas/StageGroupEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - required: - - submitter_follow_up_id - NestedHormoneTherapy: - type: object - properties: - hormone_drug_dose_units: - nullable: true - oneOf: - - $ref: '#/components/schemas/DosageUnitsEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - drug_reference_database: - nullable: true - oneOf: - - $ref: '#/components/schemas/DrugReferenceDatabaseEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - drug_name: - type: string - nullable: true - maxLength: 255 - drug_reference_identifier: - type: string - nullable: true - maxLength: 64 - prescribed_cumulative_drug_dose: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - actual_cumulative_drug_dose: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - NestedImmunotherapy: - type: object - properties: - immunotherapy_type: - nullable: true - oneOf: - - $ref: '#/components/schemas/ImmunotherapyTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - drug_reference_database: - nullable: true - oneOf: - - $ref: '#/components/schemas/DrugReferenceDatabaseEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - immunotherapy_drug_dose_units: - nullable: true - oneOf: - - $ref: '#/components/schemas/DosageUnitsEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - drug_name: - type: string - nullable: true - maxLength: 255 - drug_reference_identifier: - type: string - nullable: true - maxLength: 64 - prescribed_cumulative_drug_dose: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - actual_cumulative_drug_dose: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - NestedPrimaryDiagnosis: - type: object - properties: - submitter_primary_diagnosis_id: - type: string - maxLength: 64 - pattern: ^[A-Za-z0-9\-\._]{1,64} - date_of_diagnosis: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - cancer_type_code: - type: string - nullable: true - maxLength: 64 - basis_of_diagnosis: - nullable: true - oneOf: - - $ref: '#/components/schemas/BasisOfDiagnosisEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - lymph_nodes_examined_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/LymphNodesExaminedStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - lymph_nodes_examined_method: - nullable: true - oneOf: - - $ref: '#/components/schemas/LymphNodesExaminedMethodEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - number_lymph_nodes_positive: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - clinical_tumour_staging_system: - nullable: true - oneOf: - - $ref: '#/components/schemas/StagingSystemEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - clinical_t_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/TCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - clinical_n_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/NCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - clinical_m_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/MCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - clinical_stage_group: - nullable: true - oneOf: - - $ref: '#/components/schemas/StageGroupEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - laterality: - nullable: true - oneOf: - - $ref: '#/components/schemas/LateralityEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - specimens: - type: array - items: - $ref: '#/components/schemas/NestedSpecimen' - readOnly: true - treatments: - type: array - items: - $ref: '#/components/schemas/NestedTreatment' - readOnly: true - followups: - type: array - items: - $ref: '#/components/schemas/NestedFollowUp' - readOnly: true - required: - - submitter_primary_diagnosis_id - NestedRadiation: - type: object - properties: - radiation_therapy_modality: - nullable: true - oneOf: - - $ref: '#/components/schemas/RadiationTherapyModalityEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - radiation_therapy_type: - nullable: true - oneOf: - - $ref: '#/components/schemas/RadiationTherapyTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - anatomical_site_irradiated: - nullable: true - oneOf: - - $ref: '#/components/schemas/AnatomicalSiteIrradiatedEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - radiation_therapy_fractions: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - radiation_therapy_dosage: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - radiation_boost: - type: boolean - nullable: true - reference_radiation_treatment_id: - type: string - nullable: true - maxLength: 64 - NestedSampleRegistration: - type: object - properties: - submitter_sample_id: - type: string - maxLength: 64 - pattern: ^[A-Za-z0-9\-\._]{1,64} - specimen_tissue_source: - nullable: true - oneOf: - - $ref: '#/components/schemas/SpecimenTissueSourceEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - tumour_normal_designation: - nullable: true - oneOf: - - $ref: '#/components/schemas/TumourNormalDesignationEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - specimen_type: - nullable: true - oneOf: - - $ref: '#/components/schemas/SpecimenTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - sample_type: - nullable: true - oneOf: - - $ref: '#/components/schemas/SampleTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - required: - - submitter_sample_id - NestedSpecimen: - type: object - properties: - submitter_specimen_id: - type: string - maxLength: 64 - pattern: ^[A-Za-z0-9\-\._]{1,64} - pathological_tumour_staging_system: - nullable: true - oneOf: - - $ref: '#/components/schemas/StagingSystemEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - pathological_t_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/TCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - pathological_n_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/NCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - pathological_m_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/MCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - pathological_stage_group: - nullable: true - oneOf: - - $ref: '#/components/schemas/StageGroupEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - specimen_collection_date: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - specimen_storage: - nullable: true - oneOf: - - $ref: '#/components/schemas/SpecimenStorageEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - tumour_histological_type: - type: string - nullable: true - maxLength: 128 - pattern: ^[8,9]{1}[0-9]{3}/[0,1,2,3,6,9]{1}[1-9]{0,1}$ - specimen_anatomic_location: - type: string - nullable: true - maxLength: 32 - pattern: ^[C][0-9]{2}(.[0-9]{1})?$ - reference_pathology_confirmed_diagnosis: - nullable: true - oneOf: - - $ref: '#/components/schemas/ReferencePathologyEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - reference_pathology_confirmed_tumour_presence: - nullable: true - oneOf: - - $ref: '#/components/schemas/ReferencePathologyEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - tumour_grading_system: - nullable: true - oneOf: - - $ref: '#/components/schemas/TumourGradingSystemEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - tumour_grade: - nullable: true - oneOf: - - $ref: '#/components/schemas/TumourGradeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - percent_tumour_cells_range: - nullable: true - oneOf: - - $ref: '#/components/schemas/PercentTumourCellsRangeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - percent_tumour_cells_measurement_method: - nullable: true - oneOf: - - $ref: '#/components/schemas/PercentTumourCellsMeasurementMethodEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - specimen_processing: - nullable: true - oneOf: - - $ref: '#/components/schemas/SpecimenProcessingEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - specimen_laterality: - nullable: true - oneOf: - - $ref: '#/components/schemas/SpecimenLateralityEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - sample_registrations: - type: array - items: - $ref: '#/components/schemas/NestedSampleRegistration' - readOnly: true required: - - submitter_specimen_id - NestedSurgery: - type: object - properties: - surgery_type: - nullable: true - oneOf: - - $ref: '#/components/schemas/SurgeryTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - surgery_site: - type: string - nullable: true - maxLength: 255 - pattern: ^[C][0-9]{2}(.[0-9]{1})?$ - surgery_location: - nullable: true - oneOf: - - $ref: '#/components/schemas/SurgeryLocationEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - tumour_focality: - nullable: true - oneOf: - - $ref: '#/components/schemas/TumourFocalityEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - residual_tumour_classification: - nullable: true - oneOf: - - $ref: '#/components/schemas/ResidualTumourClassificationEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - margin_types_involved: - type: array - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/MarginTypesEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - margin_types_not_involved: - type: array - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/MarginTypesEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - margin_types_not_assessed: - type: array - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/MarginTypesEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - lymphovascular_invasion: - nullable: true - oneOf: - - $ref: '#/components/schemas/LymphovascularInvasionEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - perineural_invasion: - nullable: true - oneOf: - - $ref: '#/components/schemas/PerineuralInvasionEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - submitter_specimen_id: - type: string - nullable: true - maxLength: 64 - tumour_length: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - tumour_width: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - greatest_dimension_tumour: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - NestedTreatment: + - program_id + title: ProgramModelSchema type: object - properties: - submitter_treatment_id: - type: string - maxLength: 64 - pattern: ^[A-Za-z0-9\-\._]{1,64} - is_primary_treatment: - nullable: true - oneOf: - - $ref: '#/components/schemas/uBooleanEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - treatment_start_date: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - treatment_end_date: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - treatment_setting: - nullable: true - oneOf: - - $ref: '#/components/schemas/TreatmentSettingEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - treatment_intent: - nullable: true - oneOf: - - $ref: '#/components/schemas/TreatmentIntentEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - days_per_cycle: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - number_of_cycles: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - line_of_treatment: - type: integer - maximum: 2147483647 - minimum: -2147483648 - nullable: true - status_of_treatment: - nullable: true - oneOf: - - $ref: '#/components/schemas/StatusOfTreatmentEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - treatment_type: - type: array - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/TreatmentTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - response_to_treatment_criteria_method: - nullable: true - oneOf: - - $ref: '#/components/schemas/ResponseToTreatmentCriteriaMethodEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - response_to_treatment: - nullable: true - oneOf: - - $ref: '#/components/schemas/ResponseToTreatmentEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - chemotherapies: - type: array - items: - $ref: '#/components/schemas/NestedChemotherapy' - readOnly: true - hormone_therapies: - type: array - items: - $ref: '#/components/schemas/NestedHormoneTherapy' - readOnly: true - immunotherapies: - type: array - items: - $ref: '#/components/schemas/NestedImmunotherapy' - readOnly: true - radiations: - type: array - items: - $ref: '#/components/schemas/NestedRadiation' - readOnly: true - surgeries: - type: array - items: - $ref: '#/components/schemas/NestedSurgery' - readOnly: true - followups: - type: array - items: - $ref: '#/components/schemas/NestedFollowUp' - readOnly: true - required: - - submitter_treatment_id - NullEnum: + ProgressionStatusMethodEnum: enum: - - null - PaginatedBiomarkerList: - type: object - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Biomarker' - PaginatedChemotherapyList: - type: object - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Chemotherapy' - PaginatedComorbidityList: - type: object - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Comorbidity' - PaginatedDonorList: - type: object + - Imaging (procedure) + - Histopathology test (procedure) + - Assessment of symptom control (procedure) + - Physical examination procedure (procedure) + - Tumor marker measurement (procedure) + - Laboratory data interpretation (procedure) + title: ProgressionStatusMethodEnum + type: string + RadiationAnatomicalSiteEnum: + enum: + - Left Abdomen + - Whole Abdomen + - Right Abdomen + - Lower Abdomen + - Left Lower Abdomen + - Right Lower Abdomen + - Upper Abdomen + - Left Upper Abdomen + - Right Upper Abdomen + - Left Adrenal + - Right Adrenal + - Bilateral Ankle + - Left Ankle + - Right Ankle + - Bilateral Antrum (Bull's Eye) + - Left Antrum + - Right Antrum + - Anus + - Lower Left Arm + - Lower Right Arm + - Bilateral Arms + - Left Arm + - Right Arm + - Upper Left Arm + - Upper Right Arm + - Left Axilla + - Right Axilla + - Skin or Soft Tissue of Back + - Bile Duct + - Bladder + - Lower Body + - Middle Body + - Upper Body + - Whole Body + - Boost - Area Previously Treated + - Brain + - Left Breast Boost + - Right Breast Boost + - Bilateral Breast + - Left Breast + - Right Breast + - Bilateral Breasts with Nodes + - Left Breast with Nodes + - Right Breast with Nodes + - Bilateral Buttocks + - Left Buttock + - Right Buttock + - Inner Canthus + - Outer Canthus + - Cervix + - Bilateral Chest Lung & Area Involve + - Left Chest + - Right Chest + - Chin + - Left Cheek + - Right Cheek + - Bilateral Chest Wall (W/o Breast) + - Left Chest Wall + - Right Chest Wall + - Bilateral Clavicle + - Left Clavicle + - Right Clavicle + - Coccyx + - Colon + - Whole C.N.S. (Medulla Techinque) + - Csf Spine (Medull Tech 2 Diff Machi + - Left Chestwall Boost + - Right Chestwall Boost + - Bilateral Chestwall with Nodes + - Left Chestwall with Nodes + - Right Chestwall with Nodes + - Left Ear + - Right Ear + - Epigastrium + - Lower Esophagus + - Middle Esophagus + - Upper Esophagus + - Entire Esophagus + - Ethmoid Sinus + - Bilateral Eyes + - Left Eye + - Right Eye + - Bilateral Face + - Left Face + - Right Face + - Left Fallopian Tubes + - Right Fallopian Tubes + - Bilateral Femur + - Left Femur + - Right Femur + - Left Fibula + - Right Fibula + - Finger (Including Thumbs) + - Floor of Mouth (Boosts) + - Bilateral Feet + - Left Foot + - Right Foot + - Forehead + - Posterior Fossa + - Gall Bladder + - Gingiva + - Bilateral Hand + - Left Hand + - Right Hand + - Head + - Bilateral Heel + - Left Heel + - Right Heel + - Left Hemimantle + - Right Hemimantle + - Heart + - Bilateral Hip + - Left Hip + - Right Hip + - Left Humerus + - Right Humerus + - Hypopharynx + - Bilateral Internal Mammary Chain + - Bilateral Inguinal Nodes + - Left Inguinal Nodes + - Right Inguinal Nodes + - Inverted 'Y' (Dog-Leg,Hockey-Stick) + - Left Kidney + - Right Kidney + - Bilateral Knee + - Left Knee + - Right Knee + - Bilateral Lacrimal Gland + - Left Lacrimal Gland + - Right Lacrimal Gland + - Larygopharynx + - Larynx + - Bilateral Leg + - Left Leg + - Right Leg + - Lower Bilateral Leg + - Lower Left Leg + - Lower Right Leg + - Upper Bilateral Leg + - Upper Left Leg + - Upper Right Leg + - Both Eyelid(s) + - Left Eyelid + - Right Eyelid + - Both Lip(s) + - Lower Lip + - Upper Lip + - Liver + - Bilateral Lung + - Left Lung + - Right Lung + - Bilateral Mandible + - Left Mandible + - Right Mandible + - Mantle + - Bilateral Maxilla + - Left Maxilla + - Right Maxilla + - Mediastinum + - Multiple Skin + - Nasal Fossa + - Nasopharynx + - Bilateral Neck Includes Nodes + - Left Neck Includes Nodes + - Right Neck Includes Nodes + - Neck - Skin + - Nose + - Oral Cavity / Buccal Mucosa + - Bilateral Orbit + - Left Orbit + - Right Orbit + - Oropharynx + - Bilateral Ovary + - Left Ovary + - Right Ovary + - Hard Palate + - Soft Palate + - Palate Unspecified + - Pancreas + - Para-Aortic Nodes + - Left Parotid + - Right Parotid + - Bilateral Pelvis + - Left Pelvis + - Right Pelvis + - Penis + - Perineum + - Pituitary + - Left Pleura (As in Mesothelioma) + - Right Pleura + - Prostate + - Pubis + - Pyriform Fossa (Sinuses) + - Left Radius + - Right Radius + - Rectum (Includes Sigmoid) + - Left Ribs + - Right Ribs + - Sacrum + - Left Salivary Gland + - Right Salivary Gland + - Bilateral Scapula + - Left Scapula + - Right Scapula + - Bilateral Supraclavicular Nodes + - Left Supraclavicular Nodes + - Right Supraclavicular Nodes + - Bilateral Scalp + - Left Scalp + - Right Scalp + - Scrotum + - Bilateral Shoulder + - Left Shoulder + - Right Shoulder + - Whole Body - Skin + - Skull + - Cervical & Thoracic Spine + - Sphenoid Sinus + - Cervical Spine + - Lumbar Spine + - Thoracic Spine + - Whole Spine + - Spleen + - Lumbo-Sacral Spine + - Thoracic & Lumbar Spine + - Sternum + - Stomach + - Submandibular Glands + - Left Temple + - Right Temple + - Bilateral Testis + - Left Testis + - Right Testis + - Thyroid + - Left Tibia + - Right Tibia + - Left Toes + - Right Toes + - Tongue + - Tonsil + - Trachea + - Left Ulna + - Right Ulna + - Left Ureter + - Right Ureter + - Urethra + - Uterus + - Uvula + - Vagina + - Vulva + - Abdomen + - Body + - Chest + - Lower Limb + - Neck + - Other + - Pelvis + - Skin + - Spine + - Upper Limb + title: RadiationAnatomicalSiteEnum + type: string + RadiationFilterSchema: properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Donor' - PaginatedDonorWithClinicalDataList: + anatomical_site_irradiated: + anyOf: + - type: string + - type: 'null' + title: Anatomical Site Irradiated + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + radiation_boost: + anyOf: + - type: boolean + - type: 'null' + title: Radiation Boost + radiation_therapy_dosage: + anyOf: + - type: integer + - type: 'null' + title: Radiation Therapy Dosage + radiation_therapy_fractions: + anyOf: + - type: integer + - type: 'null' + title: Radiation Therapy Fractions + radiation_therapy_modality: + anyOf: + - type: string + - type: 'null' + title: Radiation Therapy Modality + radiation_therapy_type: + anyOf: + - type: string + - type: 'null' + title: Radiation Therapy Type + reference_radiation_treatment_id: + anyOf: + - type: string + - type: 'null' + title: Reference Radiation Treatment Id + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + submitter_treatment_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + title: RadiationFilterSchema type: object + RadiationIngestSchema: properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: + anatomical_site_irradiated: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Anatomical Site Irradiated + program_id: + title: Program Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/DonorWithClinicalData' - PaginatedExposureList: - type: object - properties: - count: - type: integer - example: 123 - next: + radiation_boost: + anyOf: + - type: boolean + - type: 'null' + title: Radiation Boost + radiation_therapy_dosage: + anyOf: + - type: integer + - type: 'null' + title: Radiation Therapy Dosage + radiation_therapy_fractions: + anyOf: + - type: integer + - type: 'null' + title: Radiation Therapy Fractions + radiation_therapy_modality: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Radiation Therapy Modality + radiation_therapy_type: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Radiation Therapy Type + reference_radiation_treatment_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Reference Radiation Treatment Id + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: + submitter_treatment_id: + maxLength: 64 + title: Submitter Treatment Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Exposure' - PaginatedFollowUpList: + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid + required: + - program_id + - submitter_donor_id + - submitter_treatment_id + title: RadiationIngestSchema type: object + RadiationModelSchema: properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: + anatomical_site_irradiated: + anyOf: + - $ref: '#/components/schemas/RadiationAnatomicalSiteEnum' + - type: 'null' + program_id: + title: Program Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/FollowUp' - PaginatedHormoneTherapyList: - type: object - properties: - count: - type: integer - example: 123 - next: + radiation_boost: + anyOf: + - type: boolean + - type: 'null' + title: Radiation Boost + radiation_therapy_dosage: + anyOf: + - type: integer + - type: 'null' + title: Radiation Therapy Dosage + radiation_therapy_fractions: + anyOf: + - type: integer + - type: 'null' + title: Radiation Therapy Fractions + radiation_therapy_modality: + anyOf: + - $ref: '#/components/schemas/RadiationTherapyModalityEnum' + - type: 'null' + radiation_therapy_type: + anyOf: + - $ref: '#/components/schemas/TherapyTypeEnum' + - type: 'null' + reference_radiation_treatment_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Reference Radiation Treatment Id + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: + submitter_treatment_id: + maxLength: 64 + title: Submitter Treatment Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/HormoneTherapy' - PaginatedImmunotherapyList: + required: + - program_id + - submitter_donor_id + - submitter_treatment_id + title: RadiationModelSchema type: object + RadiationTherapyModalityEnum: + enum: + - Megavoltage radiation therapy using photons (procedure) + - Radiopharmaceutical + - Teleradiotherapy using electrons (procedure) + - Teleradiotherapy protons (procedure) + - Teleradiotherapy neutrons (procedure) + - Brachytherapy (procedure) + - Other + title: RadiationTherapyModalityEnum + type: string + RelapseTypeEnum: + enum: + - Distant recurrence/metastasis + - Local recurrence + - Local recurrence and distant metastasis + - Progression (liquid tumours) + - Biochemical progression + title: RelapseTypeEnum + type: string + SampleRegistrationFilterSchema: properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Immunotherapy' - PaginatedPrimaryDiagnosisList: + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + sample_type: + anyOf: + - type: string + - type: 'null' + title: Sample Type + specimen_tissue_source: + anyOf: + - type: string + - type: 'null' + title: Specimen Tissue Source + specimen_type: + anyOf: + - type: string + - type: 'null' + title: Specimen Type + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + submitter_sample_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Sample Id + submitter_specimen_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Specimen Id + tumour_normal_designation: + anyOf: + - type: string + - type: 'null' + title: Tumour Normal Designation + title: SampleRegistrationFilterSchema type: object + SampleRegistrationIngestSchema: properties: - count: - type: integer - example: 123 - next: + program_id: + title: Program Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: + sample_type: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Sample Type + specimen_tissue_source: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Specimen Tissue Source + specimen_type: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Specimen Type + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/PrimaryDiagnosis' - PaginatedProgramList: - type: object - properties: - count: - type: integer - example: 123 - next: + submitter_sample_id: + maxLength: 64 + title: Submitter Sample Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: + submitter_specimen_id: + maxLength: 64 + title: Submitter Specimen Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Program' - PaginatedRadiationList: + tumour_normal_designation: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Tumour Normal Designation + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid + required: + - program_id + - submitter_sample_id + - submitter_donor_id + - submitter_specimen_id + title: SampleRegistrationIngestSchema type: object + SampleRegistrationModelSchema: properties: - count: - type: integer - example: 123 - next: + program_id: + title: Program Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: + sample_type: + anyOf: + - $ref: '#/components/schemas/SampleTypeEnum' + - type: 'null' + specimen_tissue_source: + anyOf: + - $ref: '#/components/schemas/SpecimenTissueSourceEnum' + - type: 'null' + specimen_type: + anyOf: + - $ref: '#/components/schemas/SpecimenTypeEnum' + - type: 'null' + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Radiation' - PaginatedSampleRegistrationList: - type: object - properties: - count: - type: integer - example: 123 - next: + submitter_sample_id: + maxLength: 64 + pattern: ^[A-Za-z0-9\-\._]{1,64} + title: Submitter Sample Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: + submitter_specimen_id: + maxLength: 64 + title: Submitter Specimen Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/SampleRegistration' - PaginatedSpecimenList: + tumour_normal_designation: + anyOf: + - $ref: '#/components/schemas/TumourDesginationEnum' + - type: 'null' + required: + - submitter_sample_id + - program_id + - submitter_donor_id + - submitter_specimen_id + title: SampleRegistrationModelSchema type: object + SampleTypeEnum: + enum: + - Amplified DNA + - ctDNA + - Other DNA enrichments + - Other RNA fractions + - polyA+ RNA + - Protein + - rRNA-depleted RNA + - Total DNA + - Total RNA + title: SampleTypeEnum + type: string + SexAtBirthEnum: + enum: + - Male + - Female + - Other + - Unknown + title: SexAtBirthEnum + type: string + SmokingStatusEnum: + enum: + - Current reformed smoker for <= 15 years + - Current reformed smoker for > 15 years + - Current reformed smoker, duration not specified + - Current smoker + - Lifelong non-smoker (<100 cigarettes smoked in lifetime) + - Not applicable + - Smoking history not documented + title: SmokingStatusEnum + type: string + SpecimenFilterSchema: properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Specimen' - PaginatedSurgeryList: + pathological_m_category: + anyOf: + - type: string + - type: 'null' + title: Pathological M Category + pathological_n_category: + anyOf: + - type: string + - type: 'null' + title: Pathological N Category + pathological_stage_group: + anyOf: + - type: string + - type: 'null' + title: Pathological Stage Group + pathological_t_category: + anyOf: + - type: string + - type: 'null' + title: Pathological T Category + pathological_tumour_staging_system: + anyOf: + - type: string + - type: 'null' + title: Pathological Tumour Staging System + percent_tumour_cells_measurement_method: + anyOf: + - type: string + - type: 'null' + title: Percent Tumour Cells Measurement Method + percent_tumour_cells_range: + anyOf: + - type: string + - type: 'null' + title: Percent Tumour Cells Range + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + reference_pathology_confirmed_diagnosis: + anyOf: + - type: string + - type: 'null' + title: Reference Pathology Confirmed Diagnosis + reference_pathology_confirmed_tumour_presence: + anyOf: + - type: string + - type: 'null' + title: Reference Pathology Confirmed Tumour Presence + specimen_anatomic_location: + anyOf: + - type: string + - type: 'null' + title: Specimen Anatomic Location + specimen_collection_date: + anyOf: + - type: string + - type: 'null' + title: Specimen Collection Date + specimen_laterality: + anyOf: + - type: string + - type: 'null' + title: Specimen Laterality + specimen_processing: + anyOf: + - type: string + - type: 'null' + title: Specimen Processing + specimen_storage: + anyOf: + - type: string + - type: 'null' + title: Specimen Storage + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + submitter_primary_diagnosis_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + submitter_specimen_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Specimen Id + tumour_grade: + anyOf: + - type: string + - type: 'null' + title: Tumour Grade + tumour_grading_system: + anyOf: + - type: string + - type: 'null' + title: Tumour Grading System + tumour_histological_type: + anyOf: + - type: string + - type: 'null' + title: Tumour Histological Type + title: SpecimenFilterSchema type: object + SpecimenIngestSchema: properties: - count: - type: integer - example: 123 - next: + pathological_m_category: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Pathological M Category + pathological_n_category: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Pathological N Category + pathological_stage_group: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Pathological Stage Group + pathological_t_category: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Pathological T Category + pathological_tumour_staging_system: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Pathological Tumour Staging System + percent_tumour_cells_measurement_method: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Percent Tumour Cells Measurement Method + percent_tumour_cells_range: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Percent Tumour Cells Range + program_id: + title: Program Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: + reference_pathology_confirmed_diagnosis: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Reference Pathology Confirmed Diagnosis + reference_pathology_confirmed_tumour_presence: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Reference Pathology Confirmed Tumour Presence + specimen_anatomic_location: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Specimen Anatomic Location + specimen_collection_date: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Specimen Collection Date + specimen_laterality: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Specimen Laterality + specimen_processing: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Specimen Processing + specimen_storage: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Specimen Storage + submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Surgery' - PaginatedTreatmentList: - type: object - properties: - count: - type: integer - example: 123 - next: + submitter_primary_diagnosis_id: + maxLength: 64 + title: Submitter Primary Diagnosis Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: + submitter_specimen_id: + maxLength: 64 + title: Submitter Specimen Id type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Treatment' - PercentTumourCellsMeasurementMethodEnum: - enum: - - Genomics - - Image analysis - - Pathology estimate by percent nuclei - - Unknown - type: string - description: |- - * `Genomics` - Genomics - * `Image analysis` - Image analysis - * `Pathology estimate by percent nuclei` - Pathology estimate by percent nuclei - * `Unknown` - Unknown - PercentTumourCellsRangeEnum: - enum: - - 0-19% - - 20-50% - - 51-100% - type: string - description: |- - * `0-19%` - 0-19% - * `20-50%` - 20-50% - * `51-100%` - 51-100% - PerineuralInvasionEnum: + tumour_grade: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Tumour Grade + tumour_grading_system: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Tumour Grading System + tumour_histological_type: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Tumour Histological Type + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid + required: + - program_id + - submitter_specimen_id + - submitter_donor_id + - submitter_primary_diagnosis_id + title: SpecimenIngestSchema + type: object + SpecimenLateralityEnum: enum: - - Absent - - Cannot be assessed + - Left - Not applicable - - Present + - Right - Unknown + title: SpecimenLateralityEnum type: string - description: |- - * `Absent` - Absent - * `Cannot be assessed` - Cannot be assessed - * `Not applicable` - Not applicable - * `Present` - Present - * `Unknown` - Unknown - PrimaryDiagnosis: - type: object + SpecimenModelSchema: properties: - submitter_primary_diagnosis_id: - type: string - maxLength: 64 - pattern: ^[A-Za-z0-9\-\._]{1,64} - date_of_diagnosis: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - basis_of_diagnosis: - nullable: true - oneOf: - - $ref: '#/components/schemas/BasisOfDiagnosisEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - lymph_nodes_examined_status: - nullable: true - oneOf: - - $ref: '#/components/schemas/LymphNodesExaminedStatusEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - lymph_nodes_examined_method: - nullable: true - oneOf: - - $ref: '#/components/schemas/LymphNodesExaminedMethodEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - clinical_tumour_staging_system: - nullable: true - oneOf: - - $ref: '#/components/schemas/StagingSystemEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - clinical_t_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/TCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - clinical_n_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/NCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - clinical_m_category: - nullable: true - oneOf: + pathological_m_category: + anyOf: - $ref: '#/components/schemas/MCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - clinical_stage_group: - nullable: true - oneOf: + - type: 'null' + pathological_n_category: + anyOf: + - $ref: '#/components/schemas/NCategoryEnum' + - type: 'null' + pathological_stage_group: + anyOf: - $ref: '#/components/schemas/StageGroupEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - laterality: - nullable: true - oneOf: - - $ref: '#/components/schemas/LateralityEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - cancer_type_code: - type: string - nullable: true - maxLength: 64 - number_lymph_nodes_positive: - type: integer - maximum: 32767 - minimum: 0 - nullable: true + - type: 'null' + pathological_t_category: + anyOf: + - $ref: '#/components/schemas/TCategoryEnum' + - type: 'null' + pathological_tumour_staging_system: + anyOf: + - $ref: '#/components/schemas/TumourStagingSystemEnum' + - type: 'null' + percent_tumour_cells_measurement_method: + anyOf: + - $ref: '#/components/schemas/CellsMeasureMethodEnum' + - type: 'null' + percent_tumour_cells_range: + anyOf: + - $ref: '#/components/schemas/PercentCellsRangeEnum' + - type: 'null' program_id: + title: Program Id type: string + reference_pathology_confirmed_diagnosis: + anyOf: + - $ref: '#/components/schemas/ConfirmedDiagnosisTumourEnum' + - type: 'null' + reference_pathology_confirmed_tumour_presence: + anyOf: + - $ref: '#/components/schemas/ConfirmedDiagnosisTumourEnum' + - type: 'null' + specimen_anatomic_location: + anyOf: + - maxLength: 32 + pattern: ^[C][0-9]{2}(.[0-9]{1})?$ + type: string + - type: 'null' + title: Specimen Anatomic Location + specimen_collection_date: + anyOf: + - maxLength: 32 + pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? + type: string + - type: 'null' + title: Specimen Collection Date + specimen_laterality: + anyOf: + - $ref: '#/components/schemas/SpecimenLateralityEnum' + - type: 'null' + specimen_processing: + anyOf: + - $ref: '#/components/schemas/SpecimenProcessingEnum' + - type: 'null' + specimen_storage: + anyOf: + - $ref: '#/components/schemas/StorageEnum' + - type: 'null' submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id + type: string + submitter_primary_diagnosis_id: + maxLength: 64 + title: Submitter Primary Diagnosis Id + type: string + submitter_specimen_id: + maxLength: 64 + pattern: ^[A-Za-z0-9\-\._]{1,64} + title: Submitter Specimen Id type: string + tumour_grade: + anyOf: + - $ref: '#/components/schemas/TumourGradeEnum' + - type: 'null' + tumour_grading_system: + anyOf: + - $ref: '#/components/schemas/TumourGradingSystemEnum' + - type: 'null' + tumour_histological_type: + anyOf: + - maxLength: 128 + pattern: ^[8,9]{1}[0-9]{3}/[0,1,2,3,6,9]{1}[1-9]{0,1}$ + type: string + - type: 'null' + title: Tumour Histological Type required: + - submitter_specimen_id - program_id - submitter_donor_id - submitter_primary_diagnosis_id - PrimarySiteEnum: + title: SpecimenModelSchema + type: object + SpecimenProcessingEnum: + enum: + - Cryopreservation in liquid nitrogen (dead tissue) + - Cryopreservation in dry ice (dead tissue) + - Cryopreservation of live cells in liquid nitrogen + - Cryopreservation - other + - Formalin fixed & paraffin embedded + - Formalin fixed - buffered + - Formalin fixed - unbuffered + - Fresh + - Other + - Unknown + title: SpecimenProcessingEnum + type: string + SpecimenTissueSourceEnum: + enum: + - Abdominal fluid + - Amniotic fluid + - Arterial blood + - Bile + - Blood derived - bone marrow + - Blood derived - peripheral blood + - Bone marrow fluid + - Bone marrow derived mononuclear cells + - Buccal cell + - Buffy coat + - Cerebrospinal fluid + - Cervical mucus + - Convalescent plasma + - Cord blood + - Duodenal fluid + - Female genital fluid + - Fetal blood + - Hydrocele fluid + - Male genital fluid + - Pancreatic fluid + - Pericardial effusion + - Pleural fluid + - Renal cyst fluid + - Saliva + - Seminal fluid + - Serum + - Solid tissue + - Sputum + - Synovial fluid + - Urine + - Venous blood + - Vitreous fluid + - Whole blood + - Wound + title: SpecimenTissueSourceEnum + type: string + SpecimenTypeEnum: + enum: + - Cell line - derived from normal + - Cell line - derived from primary tumour + - Cell line - derived from metastatic tumour + - Cell line - derived from xenograft tumour + - Metastatic tumour - additional metastatic + - Metastatic tumour - metastasis local to lymph node + - Metastatic tumour - metastasis to distant location + - Metastatic tumour + - Normal - tissue adjacent to primary tumour + - Normal + - Primary tumour - additional new primary + - Primary tumour - adjacent to normal + - Primary tumour + - Recurrent tumour + - Tumour - unknown if derived from primary or metastatic tumour + - Xenograft - derived from primary tumour + - Xenograft - derived from metastatic tumour + - Xenograft - derived from tumour cell line + title: SpecimenTypeEnum + type: string + StageGroupEnum: + enum: + - Stage 0 + - Stage 0a + - Stage 0is + - Stage 1 + - Stage 1A + - Stage 1B + - Stage A + - Stage B + - Stage C + - Stage I + - Stage IA + - Stage IA1 + - Stage IA2 + - Stage IA3 + - Stage IAB + - Stage IAE + - Stage IAES + - Stage IAS + - Stage IB + - Stage IB1 + - Stage IB2 + - Stage IBE + - Stage IBES + - Stage IBS + - Stage IC + - Stage IE + - Stage IEA + - Stage IEB + - Stage IES + - Stage II + - Stage II bulky + - Stage IIA + - Stage IIA1 + - Stage IIA2 + - Stage IIAE + - Stage IIAES + - Stage IIAS + - Stage IIB + - Stage IIBE + - Stage IIBES + - Stage IIBS + - Stage IIC + - Stage IIE + - Stage IIEA + - Stage IIEB + - Stage IIES + - Stage III + - Stage IIIA + - Stage IIIA1 + - Stage IIIA2 + - Stage IIIAE + - Stage IIIAES + - Stage IIIAS + - Stage IIIB + - Stage IIIBE + - Stage IIIBES + - Stage IIIBS + - Stage IIIC + - Stage IIIC1 + - Stage IIIC2 + - Stage IIID + - Stage IIIE + - Stage IIIES + - Stage IIIS + - Stage IIS + - Stage IS + - Stage IV + - Stage IVA + - Stage IVA1 + - Stage IVA2 + - Stage IVAE + - Stage IVAES + - Stage IVAS + - Stage IVB + - Stage IVBE + - Stage IVBES + - Stage IVBS + - Stage IVC + - Stage IVE + - Stage IVES + - Stage IVS + - In situ + - Localized + - Regionalized + - Distant + - Stage L1 + - Stage L2 + - Stage M + - Stage Ms + - Stage 2A + - Stage 2B + - Stage 3 + - Stage 4 + - Stage 4S + - Occult Carcinoma + title: StageGroupEnum + type: string + StorageEnum: enum: - - Accessory sinuses - - Adrenal gland - - Anus and anal canal - - Base of tongue - - Bladder - - Bones, joints and articular cartilage of limbs - - Bones, joints and articular cartilage of other and unspecified sites - - Brain - - Breast - - Bronchus and lung - - Cervix uteri - - Colon - - Connective, subcutaneous and other soft tissues - - Corpus uteri - - Esophagus - - Eye and adnexa - - Floor of mouth - - Gallbladder - - Gum - - Heart, mediastinum, and pleura - - Hematopoietic and reticuloendothelial systems - - Hypopharynx - - Kidney - - Larynx - - Lip - - Liver and intrahepatic bile ducts - - Lymph nodes - - Meninges - - Nasal cavity and middle ear - - Nasopharynx - - Oropharynx - - Other and ill-defined digestive organs - - Other and ill-defined sites - - Other and ill-defined sites in lip, oral cavity and pharynx - - Other and ill-defined sites within respiratory system and intrathoracic organs - - Other and unspecified female genital organs - - Other and unspecified major salivary glands - - Other and unspecified male genital organs - - Other and unspecified parts of biliary tract - - Other and unspecified parts of mouth - - Other and unspecified parts of tongue - - Other and unspecified urinary organs - - Other endocrine glands and related structures - - Ovary - - Palate - - Pancreas - - Parotid gland - - Penis - - Peripheral nerves and autonomic nervous system - - Placenta - - Prostate gland - - Pyriform sinus - - Rectosigmoid junction - - Rectum - - Renal pelvis - - Retroperitoneum and peritoneum - - Skin - - Small intestine - - Spinal cord, cranial nerves, and other parts of central nervous system - - Stomach - - Testis - - Thymus - - Thyroid gland - - Tonsil - - Trachea - - Ureter - - Uterus, NOS - - Vagina - - Vulva - - Unknown primary site + - Cut slide + - Frozen in -70 freezer + - Frozen in liquid nitrogen + - Frozen in vapour phase + - Not Applicable + - Other + - Paraffin block + - RNA later frozen + - Unknown + title: StorageEnum type: string - description: |- - * `Accessory sinuses` - Accessory sinuses - * `Adrenal gland` - Adrenal gland - * `Anus and anal canal` - Anus and anal canal - * `Base of tongue` - Base of tongue - * `Bladder` - Bladder - * `Bones, joints and articular cartilage of limbs` - Bones, joints and articular cartilage of limbs - * `Bones, joints and articular cartilage of other and unspecified sites` - Bones, joints and articular cartilage of other and unspecified sites - * `Brain` - Brain - * `Breast` - Breast - * `Bronchus and lung` - Bronchus and lung - * `Cervix uteri` - Cervix uteri - * `Colon` - Colon - * `Connective, subcutaneous and other soft tissues` - Connective, subcutaneous and other soft tissues - * `Corpus uteri` - Corpus uteri - * `Esophagus` - Esophagus - * `Eye and adnexa` - Eye and adnexa - * `Floor of mouth` - Floor of mouth - * `Gallbladder` - Gallbladder - * `Gum` - Gum - * `Heart, mediastinum, and pleura` - Heart, mediastinum, and pleura - * `Hematopoietic and reticuloendothelial systems` - Hematopoietic and reticuloendothelial systems - * `Hypopharynx` - Hypopharynx - * `Kidney` - Kidney - * `Larynx` - Larynx - * `Lip` - Lip - * `Liver and intrahepatic bile ducts` - Liver and intrahepatic bile ducts - * `Lymph nodes` - Lymph nodes - * `Meninges` - Meninges - * `Nasal cavity and middle ear` - Nasal cavity and middle ear - * `Nasopharynx` - Nasopharynx - * `Oropharynx` - Oropharynx - * `Other and ill-defined digestive organs` - Other and ill-defined digestive organs - * `Other and ill-defined sites` - Other and ill-defined sites - * `Other and ill-defined sites in lip, oral cavity and pharynx` - Other and ill-defined sites in lip, oral cavity and pharynx - * `Other and ill-defined sites within respiratory system and intrathoracic organs` - Other and ill-defined sites within respiratory system and intrathoracic organs - * `Other and unspecified female genital organs` - Other and unspecified female genital organs - * `Other and unspecified major salivary glands` - Other and unspecified major salivary glands - * `Other and unspecified male genital organs` - Other and unspecified male genital organs - * `Other and unspecified parts of biliary tract` - Other and unspecified parts of biliary tract - * `Other and unspecified parts of mouth` - Other and unspecified parts of mouth - * `Other and unspecified parts of tongue` - Other and unspecified parts of tongue - * `Other and unspecified urinary organs` - Other and unspecified urinary organs - * `Other endocrine glands and related structures` - Other endocrine glands and related structures - * `Ovary` - Ovary - * `Palate` - Palate - * `Pancreas` - Pancreas - * `Parotid gland` - Parotid gland - * `Penis` - Penis - * `Peripheral nerves and autonomic nervous system` - Peripheral nerves and autonomic nervous system - * `Placenta` - Placenta - * `Prostate gland` - Prostate gland - * `Pyriform sinus` - Pyriform sinus - * `Rectosigmoid junction` - Rectosigmoid junction - * `Rectum` - Rectum - * `Renal pelvis` - Renal pelvis - * `Retroperitoneum and peritoneum` - Retroperitoneum and peritoneum - * `Skin` - Skin - * `Small intestine` - Small intestine - * `Spinal cord, cranial nerves, and other parts of central nervous system` - Spinal cord, cranial nerves, and other parts of central nervous system - * `Stomach` - Stomach - * `Testis` - Testis - * `Thymus` - Thymus - * `Thyroid gland` - Thyroid gland - * `Tonsil` - Tonsil - * `Trachea` - Trachea - * `Ureter` - Ureter - * `Uterus, NOS` - Uterus, NOS - * `Vagina` - Vagina - * `Vulva` - Vulva - * `Unknown primary site` - Unknown primary site - Program: - type: object + SurgeryFilterSchema: properties: + greatest_dimension_tumour: + anyOf: + - type: integer + - type: 'null' + title: Greatest Dimension Tumour + lymphovascular_invasion: + anyOf: + - type: string + - type: 'null' + title: Lymphovascular Invasion + margin_types_involved: + items: + type: string + q: margin_types_involved__overlap + title: Margin Types Involved + type: array + margin_types_not_assessed: + items: + type: string + q: margin_types_not_assessed__overlap + title: Margin Types Not Assessed + type: array + margin_types_not_involved: + items: + type: string + q: margin_types_not_involved__overlap + title: Margin Types Not Involved + type: array + perineural_invasion: + anyOf: + - type: string + - type: 'null' + title: Perineural Invasion program_id: - type: string - maxLength: 64 - pattern: ^[A-Za-z0-9\-\._]{1,64} - metadata: - type: object - additionalProperties: {} - nullable: true - created: - type: string - format: date-time - updated: - type: string - format: date-time - required: - - program_id - Radiation: + anyOf: + - type: string + - type: 'null' + title: Program Id + residual_tumour_classification: + anyOf: + - type: string + - type: 'null' + title: Residual Tumour Classification + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + submitter_specimen_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Specimen Id + submitter_treatment_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + surgery_location: + anyOf: + - type: string + - type: 'null' + title: Surgery Location + surgery_site: + anyOf: + - type: string + - type: 'null' + title: Surgery Site + surgery_type: + anyOf: + - type: string + - type: 'null' + title: Surgery Type + tumour_focality: + anyOf: + - type: string + - type: 'null' + title: Tumour Focality + tumour_length: + anyOf: + - type: integer + - type: 'null' + title: Tumour Length + tumour_width: + anyOf: + - type: integer + - type: 'null' + title: Tumour Width + title: SurgeryFilterSchema type: object + SurgeryIngestSchema: properties: - id: - type: string - format: uuid - radiation_therapy_modality: - nullable: true - oneOf: - - $ref: '#/components/schemas/RadiationTherapyModalityEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - radiation_therapy_type: - nullable: true - oneOf: - - $ref: '#/components/schemas/RadiationTherapyTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - anatomical_site_irradiated: - nullable: true - oneOf: - - $ref: '#/components/schemas/AnatomicalSiteIrradiatedEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - radiation_therapy_fractions: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - radiation_therapy_dosage: - type: integer - maximum: 32767 - minimum: 0 - nullable: true - radiation_boost: - type: boolean - nullable: true - reference_radiation_treatment_id: - type: string - nullable: true - maxLength: 64 + greatest_dimension_tumour: + anyOf: + - type: integer + - type: 'null' + title: Greatest Dimension Tumour + lymphovascular_invasion: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Lymphovascular Invasion + margin_types_involved: + anyOf: + - items: {} + type: array + - type: 'null' + title: Margin Types Involved + margin_types_not_assessed: + anyOf: + - items: {} + type: array + - type: 'null' + title: Margin Types Not Assessed + margin_types_not_involved: + anyOf: + - items: {} + type: array + - type: 'null' + title: Margin Types Not Involved + perineural_invasion: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Perineural Invasion program_id: + title: Program Id type: string + residual_tumour_classification: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Residual Tumour Classification submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string + submitter_specimen_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Specimen Id submitter_treatment_id: + maxLength: 64 + title: Submitter Treatment Id type: string + surgery_location: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Surgery Location + surgery_site: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Surgery Site + surgery_type: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Surgery Type + tumour_focality: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Tumour Focality + tumour_length: + anyOf: + - type: integer + - type: 'null' + title: Tumour Length + tumour_width: + anyOf: + - type: integer + - type: 'null' + title: Tumour Width + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid required: - program_id - submitter_donor_id - submitter_treatment_id - RadiationTherapyModalityEnum: - enum: - - Megavoltage radiation therapy using photons (procedure) - - Radiopharmaceutical - - Teleradiotherapy using electrons (procedure) - - Teleradiotherapy protons (procedure) - - Teleradiotherapy neutrons (procedure) - - Brachytherapy (procedure) - - Other - type: string - description: |- - * `Megavoltage radiation therapy using photons (procedure)` - Megavoltage radiation therapy using photons (procedure) - * `Radiopharmaceutical` - Radiopharmaceutical - * `Teleradiotherapy using electrons (procedure)` - Teleradiotherapy using electrons (procedure) - * `Teleradiotherapy protons (procedure)` - Teleradiotherapy protons (procedure) - * `Teleradiotherapy neutrons (procedure)` - Teleradiotherapy neutrons (procedure) - * `Brachytherapy (procedure)` - Brachytherapy (procedure) - * `Other` - Other - RadiationTherapyTypeEnum: - enum: - - External - - Internal - type: string - description: |- - * `External` - External - * `Internal` - Internal - ReferencePathologyEnum: - enum: - - 'Yes' - - 'No' - - Not done - - Unknown - type: string - description: |- - * `Yes` - Yes - * `No` - No - * `Not done` - Not done - * `Unknown` - Unknown - RelapseTypeEnum: + title: SurgeryIngestSchema + type: object + SurgeryLocationEnum: enum: - - Distant recurrence/metastasis - Local recurrence - - Local recurrence and distant metastasis - - Progression (liquid tumours) - - Biochemical progression - type: string - description: |- - * `Distant recurrence/metastasis` - Distant recurrence/metastasis - * `Local recurrence` - Local recurrence - * `Local recurrence and distant metastasis` - Local recurrence and distant metastasis - * `Progression (liquid tumours)` - Progression (liquid tumours) - * `Biochemical progression` - Biochemical progression - ResidualTumourClassificationEnum: - enum: - - Not applicable - - RX - - R0 - - R1 - - R2 - - Unknown - type: string - description: |- - * `Not applicable` - Not applicable - * `RX` - RX - * `R0` - R0 - * `R1` - R1 - * `R2` - R2 - * `Unknown` - Unknown - ResponseToTreatmentCriteriaMethodEnum: - enum: - - RECIST 1.1 - - iRECIST - - Cheson CLL 2012 Oncology Response Criteria - - Response Assessment in Neuro-Oncology (RANO) - - AML Response Criteria - - Physician Assessed Response Criteria - - Blazer score - type: string - description: |- - * `RECIST 1.1` - RECIST 1.1 - * `iRECIST` - iRECIST - * `Cheson CLL 2012 Oncology Response Criteria` - Cheson CLL 2012 Oncology Response Criteria - * `Response Assessment in Neuro-Oncology (RANO)` - Response Assessment in Neuro-Oncology (RANO) - * `AML Response Criteria` - AML Response Criteria - * `Physician Assessed Response Criteria` - Physician Assessed Response Criteria - * `Blazer score` - Blazer score - ResponseToTreatmentEnum: - enum: - - Complete response - - Partial response - - Progressive disease - - Stable disease - - Immune complete response (iCR) - - Immune partial response (iPR) - - Immune uncomfirmed progressive disease (iUPD) - - Immune confirmed progressive disease (iCPD) - - Immune stable disease (iSD) - - Complete remission - - Partial remission - - Minor response - - Complete remission without measurable residual disease (CR MRD-) - - Complete remission with incomplete hematologic recovery (CRi) - - Morphologic leukemia-free state - - Primary refractory disease - - Hematologic relapse (after CR MRD-, CR, CRi) - - Molecular relapse (after CR MRD-) - - Physician assessed complete response - - Physician assessed partial response - - Physician assessed stable disease - - No evidence of disease (NED) - - Major response - type: string - description: |- - * `Complete response` - Complete response - * `Partial response` - Partial response - * `Progressive disease` - Progressive disease - * `Stable disease` - Stable disease - * `Immune complete response (iCR)` - Immune complete response (iCR) - * `Immune partial response (iPR)` - Immune partial response (iPR) - * `Immune uncomfirmed progressive disease (iUPD)` - Immune uncomfirmed progressive disease (iUPD) - * `Immune confirmed progressive disease (iCPD)` - Immune confirmed progressive disease (iCPD) - * `Immune stable disease (iSD)` - Immune stable disease (iSD) - * `Complete remission` - Complete remission - * `Partial remission` - Partial remission - * `Minor response` - Minor response - * `Complete remission without measurable residual disease (CR MRD-)` - Complete remission without measurable residual disease (CR MRD-) - * `Complete remission with incomplete hematologic recovery (CRi)` - Complete remission with incomplete hematologic recovery (CRi) - * `Morphologic leukemia-free state` - Morphologic leukemia-free state - * `Primary refractory disease` - Primary refractory disease - * `Hematologic relapse (after CR MRD-, CR, CRi)` - Hematologic relapse (after CR MRD-, CR, CRi) - * `Molecular relapse (after CR MRD-)` - Molecular relapse (after CR MRD-) - * `Physician assessed complete response` - Physician assessed complete response - * `Physician assessed partial response` - Physician assessed partial response - * `Physician assessed stable disease` - Physician assessed stable disease - * `No evidence of disease (NED)` - No evidence of disease (NED) - * `Major response` - Major response - SampleRegistration: - type: object - properties: - submitter_sample_id: - type: string - maxLength: 64 - pattern: ^[A-Za-z0-9\-\._]{1,64} - specimen_tissue_source: - nullable: true - oneOf: - - $ref: '#/components/schemas/SpecimenTissueSourceEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - tumour_normal_designation: - nullable: true - oneOf: - - $ref: '#/components/schemas/TumourNormalDesignationEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - specimen_type: - nullable: true - oneOf: - - $ref: '#/components/schemas/SpecimenTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - sample_type: - nullable: true - oneOf: - - $ref: '#/components/schemas/SampleTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' + - Metastatic + - Primary + title: SurgeryLocationEnum + type: string + SurgeryModelSchema: + properties: + greatest_dimension_tumour: + anyOf: + - type: integer + - type: 'null' + title: Greatest Dimension Tumour + lymphovascular_invasion: + anyOf: + - $ref: '#/components/schemas/LymphovascularInvasionEnum' + - type: 'null' + margin_types_involved: + anyOf: + - items: + $ref: '#/components/schemas/MarginTypesEnum' + type: array + - type: 'null' + title: Margin Types Involved + margin_types_not_assessed: + anyOf: + - items: + $ref: '#/components/schemas/MarginTypesEnum' + type: array + - type: 'null' + title: Margin Types Not Assessed + margin_types_not_involved: + anyOf: + - items: + $ref: '#/components/schemas/MarginTypesEnum' + type: array + - type: 'null' + title: Margin Types Not Involved + perineural_invasion: + anyOf: + - $ref: '#/components/schemas/PerineuralInvasionEnum' + - type: 'null' program_id: + title: Program Id type: string + residual_tumour_classification: + anyOf: + - $ref: '#/components/schemas/TumourClassificationEnum' + - type: 'null' submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string submitter_specimen_id: + anyOf: + - maxLength: 64 + type: string + - type: 'null' + title: Submitter Specimen Id + submitter_treatment_id: + maxLength: 64 + title: Submitter Treatment Id type: string + surgery_location: + anyOf: + - $ref: '#/components/schemas/SurgeryLocationEnum' + - type: 'null' + surgery_site: + anyOf: + - maxLength: 255 + pattern: ^[C][0-9]{2}(.[0-9]{1})?$ + type: string + - type: 'null' + title: Surgery Site + surgery_type: + anyOf: + - $ref: '#/components/schemas/SurgeryTypeEnum' + - type: 'null' + tumour_focality: + anyOf: + - $ref: '#/components/schemas/TumourFocalityEnum' + - type: 'null' + tumour_length: + anyOf: + - type: integer + - type: 'null' + title: Tumour Length + tumour_width: + anyOf: + - type: integer + - type: 'null' + title: Tumour Width required: - program_id - submitter_donor_id - - submitter_sample_id - - submitter_specimen_id - SampleTypeEnum: + - submitter_treatment_id + title: SurgeryModelSchema + type: object + SurgeryTypeEnum: enum: - - Amplified DNA - - ctDNA - - Other DNA enrichments - - Other RNA fractions - - polyA+ RNA - - Protein - - rRNA-depleted RNA - - Total DNA - - Total RNA + - Ablation + - Axillary Clearance + - Axillary lymph nodes sampling + - Bilateral complete salpingo-oophorectomy + - Biopsy + - Bypass Gastrojejunostomy + - Cholecystectomy + - Cholecystojejunostomy + - Completion Gastrectomy + - Debridement of pancreatic and peripancreatic necrosis + - Distal subtotal pancreatectomy + - Drainage of abscess + - Duodenal preserving pancreatic head resection + - Endoscopic biopsy + - Endoscopic brushings of gastrointestinal tract + - Enucleation + - Esophageal bypass surgery/jejunostomy only + - Exploratory laparotomy + - Fine needle aspiration biopsy + - Gastric Antrectomy + - Glossectomy + - Hepatojejunostomy + - Hysterectomy + - Incision of thorax + - Ivor Lewis subtotal esophagectomy + - Laparotomy + - Left thoracoabdominal incision + - Lobectomy + - Mammoplasty + - Mastectomy + - McKeown esophagectomy + - Merendino procedure + - Minimally invasive esophagectomy + - Omentectomy + - Ovariectomy + - Pancreaticoduodenectomy (Whipple procedure) + - Pancreaticojejunostomy, side-to-side anastomosis + - Partial pancreatectomy + - Pneumonectomy + - Prostatectomy + - Proximal subtotal gastrectomy + - Pylorus-sparing Whipple operation + - Radical pancreaticoduodenectomy + - Radical prostatectomy + - Reexcision + - Segmentectomy + - Sentinal Lymph Node Biopsy + - Spleen preserving distal pancreatectomy + - Splenectomy + - Total gastrectomy + - Total gastrectomy with extended lymphadenectomy + - Total pancreatectomy + - Transhiatal esophagectomy + - Triple bypass of pancreas + - Tumor Debulking + - Wedge/localised gastric resection + - Wide Local Excision + title: SurgeryTypeEnum type: string - description: |- - * `Amplified DNA` - Amplified DNA - * `ctDNA` - ctDNA - * `Other DNA enrichments` - Other DNA enrichments - * `Other RNA fractions` - Other RNA fractions - * `polyA+ RNA` - polyA+ RNA - * `Protein` - Protein - * `rRNA-depleted RNA` - rRNA-depleted RNA - * `Total DNA` - Total DNA - * `Total RNA` - Total RNA - SexAtBirthEnum: + TCategoryEnum: enum: - - Male - - Female - - Other + - T0 + - T1 + - T1a + - T1a1 + - T1a2 + - T1a(s) + - T1a(m) + - T1b + - T1b1 + - T1b2 + - T1b(s) + - T1b(m) + - T1c + - T1d + - T1mi + - T2 + - T2(s) + - T2(m) + - T2a + - T2a1 + - T2a2 + - T2b + - T2c + - T2d + - T3 + - T3(s) + - T3(m) + - T3a + - T3b + - T3c + - T3d + - T3e + - T4 + - T4a + - T4a(s) + - T4a(m) + - T4b + - T4b(s) + - T4b(m) + - T4c + - T4d + - T4e + - Ta + - Tis + - Tis(DCIS) + - Tis(LAMN) + - Tis(LCIS) + - Tis(Paget) + - Tis(Paget's) + - Tis pu + - Tis pd + - TX + title: TCategoryEnum + type: string + TherapyTypeEnum: + enum: + - External + - Internal + title: TherapyTypeEnum + type: string + TobaccoTypeEnum: + enum: + - Chewing Tobacco + - Cigar + - Cigarettes + - Electronic cigarettes + - Not applicable + - Pipe + - Roll-ups + - Snuff - Unknown + - Waterpipe + title: TobaccoTypeEnum type: string - description: |- - * `Male` - Male - * `Female` - Female - * `Other` - Other - * `Unknown` - Unknown - Specimen: + TreatmentFilterSchema: + properties: + days_per_cycle: + anyOf: + - type: integer + - type: 'null' + title: Days Per Cycle + is_primary_treatment: + anyOf: + - type: string + - type: 'null' + title: Is Primary Treatment + line_of_treatment: + anyOf: + - type: integer + - type: 'null' + title: Line Of Treatment + number_of_cycles: + anyOf: + - type: integer + - type: 'null' + title: Number Of Cycles + program_id: + anyOf: + - type: string + - type: 'null' + title: Program Id + response_to_treatment: + anyOf: + - type: string + - type: 'null' + title: Response To Treatment + response_to_treatment_criteria_method: + anyOf: + - type: string + - type: 'null' + title: Response To Treatment Criteria Method + status_of_treatment: + anyOf: + - type: string + - type: 'null' + title: Status Of Treatment + submitter_donor_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + submitter_primary_diagnosis_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + submitter_treatment_id: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + treatment_end_date: + anyOf: + - type: string + - type: 'null' + title: Treatment End Date + treatment_intent: + anyOf: + - type: string + - type: 'null' + title: Treatment Intent + treatment_setting: + anyOf: + - type: string + - type: 'null' + title: Treatment Setting + treatment_start_date: + anyOf: + - type: string + - type: 'null' + title: Treatment Start Date + treatment_type: + items: + type: string + q: treatment_type__overlap + title: Treatment Type + type: array + title: TreatmentFilterSchema type: object + TreatmentIngestSchema: properties: - submitter_specimen_id: + days_per_cycle: + anyOf: + - type: integer + - type: 'null' + title: Days Per Cycle + is_primary_treatment: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Is Primary Treatment + line_of_treatment: + anyOf: + - type: integer + - type: 'null' + title: Line Of Treatment + number_of_cycles: + anyOf: + - type: integer + - type: 'null' + title: Number Of Cycles + program_id: + title: Program Id type: string + response_to_treatment: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Response To Treatment + response_to_treatment_criteria_method: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Response To Treatment Criteria Method + status_of_treatment: + anyOf: + - maxLength: 255 + type: string + - type: 'null' + title: Status Of Treatment + submitter_donor_id: maxLength: 64 - pattern: ^[A-Za-z0-9\-\._]{1,64} - pathological_tumour_staging_system: - nullable: true - oneOf: - - $ref: '#/components/schemas/StagingSystemEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - pathological_t_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/TCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - pathological_n_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/NCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - pathological_m_category: - nullable: true - oneOf: - - $ref: '#/components/schemas/MCategoryEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - pathological_stage_group: - nullable: true - oneOf: - - $ref: '#/components/schemas/StageGroupEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - specimen_collection_date: + title: Submitter Donor Id type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - specimen_storage: - nullable: true - oneOf: - - $ref: '#/components/schemas/SpecimenStorageEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - tumour_histological_type: + submitter_primary_diagnosis_id: + maxLength: 64 + title: Submitter Primary Diagnosis Id type: string - nullable: true - maxLength: 128 - pattern: ^[8,9]{1}[0-9]{3}/[0,1,2,3,6,9]{1}[1-9]{0,1}$ - specimen_anatomic_location: + submitter_treatment_id: + maxLength: 64 + title: Submitter Treatment Id type: string - nullable: true - maxLength: 32 - pattern: ^[C][0-9]{2}(.[0-9]{1})?$ - reference_pathology_confirmed_diagnosis: - nullable: true - oneOf: - - $ref: '#/components/schemas/ReferencePathologyEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - reference_pathology_confirmed_tumour_presence: - nullable: true - oneOf: - - $ref: '#/components/schemas/ReferencePathologyEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - tumour_grading_system: - nullable: true - oneOf: - - $ref: '#/components/schemas/TumourGradingSystemEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - tumour_grade: - nullable: true - oneOf: - - $ref: '#/components/schemas/TumourGradeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - percent_tumour_cells_range: - nullable: true - oneOf: - - $ref: '#/components/schemas/PercentTumourCellsRangeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - percent_tumour_cells_measurement_method: - nullable: true - oneOf: - - $ref: '#/components/schemas/PercentTumourCellsMeasurementMethodEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - specimen_processing: - nullable: true - oneOf: - - $ref: '#/components/schemas/SpecimenProcessingEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - specimen_laterality: - nullable: true - oneOf: - - $ref: '#/components/schemas/SpecimenLateralityEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' + treatment_end_date: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Treatment End Date + treatment_intent: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Treatment Intent + treatment_setting: + anyOf: + - maxLength: 128 + type: string + - type: 'null' + title: Treatment Setting + treatment_start_date: + anyOf: + - maxLength: 32 + type: string + - type: 'null' + title: Treatment Start Date + treatment_type: + anyOf: + - items: {} + type: array + - type: 'null' + title: Treatment Type + uuid: + anyOf: + - type: string + - type: 'null' + title: Uuid + required: + - program_id + - submitter_treatment_id + - submitter_donor_id + - submitter_primary_diagnosis_id + title: TreatmentIngestSchema + type: object + TreatmentIntentEnum: + enum: + - Curative + - Palliative + - Supportive + - Diagnostic + - Preventive + - Guidance + - Screening + - Forensic + title: TreatmentIntentEnum + type: string + TreatmentModelSchema: + properties: + days_per_cycle: + anyOf: + - type: integer + - type: 'null' + title: Days Per Cycle + is_primary_treatment: + anyOf: + - $ref: '#/components/schemas/uBooleanEnum' + - type: 'null' + line_of_treatment: + anyOf: + - type: integer + - type: 'null' + title: Line Of Treatment + number_of_cycles: + anyOf: + - type: integer + - type: 'null' + title: Number Of Cycles program_id: + title: Program Id type: string + response_to_treatment: + anyOf: + - $ref: '#/components/schemas/TreatmentResponseEnum' + - type: 'null' + response_to_treatment_criteria_method: + anyOf: + - $ref: '#/components/schemas/TreatmentResponseMethodEnum' + - type: 'null' + status_of_treatment: + anyOf: + - $ref: '#/components/schemas/TreatmentStatusEnum' + - type: 'null' submitter_donor_id: + maxLength: 64 + title: Submitter Donor Id type: string submitter_primary_diagnosis_id: + maxLength: 64 + title: Submitter Primary Diagnosis Id + type: string + submitter_treatment_id: + maxLength: 64 + pattern: ^[A-Za-z0-9\-\._]{1,64} + title: Submitter Treatment Id type: string + treatment_end_date: + anyOf: + - maxLength: 32 + pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? + type: string + - type: 'null' + title: Treatment End Date + treatment_intent: + anyOf: + - $ref: '#/components/schemas/TreatmentIntentEnum' + - type: 'null' + treatment_setting: + anyOf: + - $ref: '#/components/schemas/TreatmentSettingEnum' + - type: 'null' + treatment_start_date: + anyOf: + - maxLength: 32 + pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? + type: string + - type: 'null' + title: Treatment Start Date + treatment_type: + anyOf: + - items: + $ref: '#/components/schemas/TreatmentTypeEnum' + type: array + - type: 'null' + title: Treatment Type required: + - submitter_treatment_id - program_id - submitter_donor_id - submitter_primary_diagnosis_id - - submitter_specimen_id - SpecimenLateralityEnum: - enum: - - Left - - Not applicable - - Right - - Unknown - type: string - description: |- - * `Left` - Left - * `Not applicable` - Not applicable - * `Right` - Right - * `Unknown` - Unknown - SpecimenProcessingEnum: - enum: - - Cryopreservation in liquid nitrogen (dead tissue) - - Cryopreservation in dry ice (dead tissue) - - Cryopreservation of live cells in liquid nitrogen - - Cryopreservation - other - - Formalin fixed & paraffin embedded - - Formalin fixed - buffered - - Formalin fixed - unbuffered - - Fresh - - Other - - Unknown - type: string - description: |- - * `Cryopreservation in liquid nitrogen (dead tissue)` - Cryopreservation in liquid nitrogen (dead tissue) - * `Cryopreservation in dry ice (dead tissue)` - Cryopreservation in dry ice (dead tissue) - * `Cryopreservation of live cells in liquid nitrogen` - Cryopreservation of live cells in liquid nitrogen - * `Cryopreservation - other` - Cryopreservation - other - * `Formalin fixed & paraffin embedded` - Formalin fixed & paraffin embedded - * `Formalin fixed - buffered` - Formalin fixed - buffered - * `Formalin fixed - unbuffered` - Formalin fixed - unbuffered - * `Fresh` - Fresh - * `Other` - Other - * `Unknown` - Unknown - SpecimenStorageEnum: - enum: - - Cut slide - - Frozen in -70 freezer - - Frozen in liquid nitrogen - - Frozen in vapour phase - - Not Applicable - - Other - - Paraffin block - - RNA later frozen - - Unknown - type: string - description: |- - * `Cut slide` - Cut slide - * `Frozen in -70 freezer` - Frozen in -70 freezer - * `Frozen in liquid nitrogen` - Frozen in liquid nitrogen - * `Frozen in vapour phase` - Frozen in vapour phase - * `Not Applicable` - Not Applicable - * `Other` - Other - * `Paraffin block` - Paraffin block - * `RNA later frozen` - RNA later frozen - * `Unknown` - Unknown - SpecimenTissueSourceEnum: + title: TreatmentModelSchema + type: object + TreatmentResponseEnum: enum: - - Abdominal fluid - - Amniotic fluid - - Arterial blood - - Bile - - Blood derived - bone marrow - - Blood derived - peripheral blood - - Bone marrow fluid - - Bone marrow derived mononuclear cells - - Buccal cell - - Buffy coat - - Cerebrospinal fluid - - Cervical mucus - - Convalescent plasma - - Cord blood - - Duodenal fluid - - Female genital fluid - - Fetal blood - - Hydrocele fluid - - Male genital fluid - - Pancreatic fluid - - Pericardial effusion - - Pleural fluid - - Renal cyst fluid - - Saliva - - Seminal fluid - - Serum - - Solid tissue - - Sputum - - Synovial fluid - - Urine - - Venous blood - - Vitreous fluid - - Whole blood - - Wound + - Complete response + - Partial response + - Progressive disease + - Stable disease + - Immune complete response (iCR) + - Immune partial response (iPR) + - Immune uncomfirmed progressive disease (iUPD) + - Immune confirmed progressive disease (iCPD) + - Immune stable disease (iSD) + - Complete remission + - Partial remission + - Minor response + - Complete remission without measurable residual disease (CR MRD-) + - Complete remission with incomplete hematologic recovery (CRi) + - Morphologic leukemia-free state + - Primary refractory disease + - Hematologic relapse (after CR MRD-, CR, CRi) + - Molecular relapse (after CR MRD-) + - Physician assessed complete response + - Physician assessed partial response + - Physician assessed stable disease + - No evidence of disease (NED) + - Major response + title: TreatmentResponseEnum type: string - description: |- - * `Abdominal fluid` - Abdominal fluid - * `Amniotic fluid` - Amniotic fluid - * `Arterial blood` - Arterial blood - * `Bile` - Bile - * `Blood derived - bone marrow` - Blood derived - bone marrow - * `Blood derived - peripheral blood` - Blood derived - peripheral blood - * `Bone marrow fluid` - Bone marrow fluid - * `Bone marrow derived mononuclear cells` - Bone marrow derived mononuclear cells - * `Buccal cell` - Buccal cell - * `Buffy coat` - Buffy coat - * `Cerebrospinal fluid` - Cerebrospinal fluid - * `Cervical mucus` - Cervical mucus - * `Convalescent plasma` - Convalescent plasma - * `Cord blood` - Cord blood - * `Duodenal fluid` - Duodenal fluid - * `Female genital fluid` - Female genital fluid - * `Fetal blood` - Fetal blood - * `Hydrocele fluid` - Hydrocele fluid - * `Male genital fluid` - Male genital fluid - * `Pancreatic fluid` - Pancreatic fluid - * `Pericardial effusion` - Pericardial effusion - * `Pleural fluid` - Pleural fluid - * `Renal cyst fluid` - Renal cyst fluid - * `Saliva` - Saliva - * `Seminal fluid` - Seminal fluid - * `Serum` - Serum - * `Solid tissue` - Solid tissue - * `Sputum` - Sputum - * `Synovial fluid` - Synovial fluid - * `Urine` - Urine - * `Venous blood` - Venous blood - * `Vitreous fluid` - Vitreous fluid - * `Whole blood` - Whole blood - * `Wound` - Wound - SpecimenTypeEnum: + TreatmentResponseMethodEnum: enum: - - Cell line - derived from normal - - Cell line - derived from primary tumour - - Cell line - derived from metastatic tumour - - Cell line - derived from xenograft tumour - - Metastatic tumour - additional metastatic - - Metastatic tumour - metastasis local to lymph node - - Metastatic tumour - metastasis to distant location - - Metastatic tumour - - Normal - tissue adjacent to primary tumour - - Normal - - Primary tumour - additional new primary - - Primary tumour - adjacent to normal - - Primary tumour - - Recurrent tumour - - Tumour - unknown if derived from primary or metastatic tumour - - Xenograft - derived from primary tumour - - Xenograft - derived from metastatic tumour - - Xenograft - derived from tumour cell line + - RECIST 1.1 + - iRECIST + - Cheson CLL 2012 Oncology Response Criteria + - Response Assessment in Neuro-Oncology (RANO) + - AML Response Criteria + - Physician Assessed Response Criteria + - Blazer score + title: TreatmentResponseMethodEnum type: string - description: |- - * `Cell line - derived from normal` - Cell line - derived from normal - * `Cell line - derived from primary tumour` - Cell line - derived from primary tumour - * `Cell line - derived from metastatic tumour` - Cell line - derived from metastatic tumour - * `Cell line - derived from xenograft tumour` - Cell line - derived from xenograft tumour - * `Metastatic tumour - additional metastatic` - Metastatic tumour - additional metastatic - * `Metastatic tumour - metastasis local to lymph node` - Metastatic tumour - metastasis local to lymph node - * `Metastatic tumour - metastasis to distant location` - Metastatic tumour - metastasis to distant location - * `Metastatic tumour` - Metastatic tumour - * `Normal - tissue adjacent to primary tumour` - Normal - tissue adjacent to primary tumour - * `Normal` - Normal - * `Primary tumour - additional new primary` - Primary tumour - additional new primary - * `Primary tumour - adjacent to normal` - Primary tumour - adjacent to normal - * `Primary tumour` - Primary tumour - * `Recurrent tumour` - Recurrent tumour - * `Tumour - unknown if derived from primary or metastatic tumour` - Tumour - unknown if derived from primary or metastatic tumour - * `Xenograft - derived from primary tumour` - Xenograft - derived from primary tumour - * `Xenograft - derived from metastatic tumour` - Xenograft - derived from metastatic tumour - * `Xenograft - derived from tumour cell line` - Xenograft - derived from tumour cell line - StageGroupEnum: + TreatmentSettingEnum: enum: - - Stage 0 - - Stage 0a - - Stage 0is - - Stage 1 - - Stage 1A - - Stage 1B - - Stage A - - Stage B - - Stage C - - Stage I - - Stage IA - - Stage IA1 - - Stage IA2 - - Stage IA3 - - Stage IAB - - Stage IAE - - Stage IAES - - Stage IAS - - Stage IB - - Stage IB1 - - Stage IB2 - - Stage IBE - - Stage IBES - - Stage IBS - - Stage IC - - Stage IE - - Stage IEA - - Stage IEB - - Stage IES - - Stage II - - Stage II bulky - - Stage IIA - - Stage IIA1 - - Stage IIA2 - - Stage IIAE - - Stage IIAES - - Stage IIAS - - Stage IIB - - Stage IIBE - - Stage IIBES - - Stage IIBS - - Stage IIC - - Stage IIE - - Stage IIEA - - Stage IIEB - - Stage IIES - - Stage III - - Stage IIIA - - Stage IIIA1 - - Stage IIIA2 - - Stage IIIAE - - Stage IIIAES - - Stage IIIAS - - Stage IIIB - - Stage IIIBE - - Stage IIIBES - - Stage IIIBS - - Stage IIIC - - Stage IIIC1 - - Stage IIIC2 - - Stage IIID - - Stage IIIE - - Stage IIIES - - Stage IIIS - - Stage IIS - - Stage IS - - Stage IV - - Stage IVA - - Stage IVA1 - - Stage IVA2 - - Stage IVAE - - Stage IVAES - - Stage IVAS - - Stage IVB - - Stage IVBE - - Stage IVBES - - Stage IVBS - - Stage IVC - - Stage IVE - - Stage IVES - - Stage IVS - - In situ - - Localized - - Regionalized - - Distant - - Stage L1 - - Stage L2 - - Stage M - - Stage Ms - - Stage 2A - - Stage 2B - - Stage 3 - - Stage 4 - - Stage 4S - - Occult Carcinoma + - Adjuvant + - Advanced/Metastatic + - Neoadjuvant + - Conditioning + - Induction + - Locally advanced + - Maintenance + - Mobilization + - Preventative + - Radiosensitization + - Salvage + title: TreatmentSettingEnum + type: string + TreatmentStatusEnum: + enum: + - Treatment completed as prescribed + - Treatment incomplete due to technical or organizational problems + - Treatment incomplete because patient died + - Patient choice (stopped or interrupted treatment) + - Physician decision (stopped or interrupted treatment) + - Treatment stopped due to lack of efficacy (disease progression) + - Treatment stopped due to acute toxicity + - Other + - Not applicable + - Unknown + title: TreatmentStatusEnum + type: string + TreatmentTypeEnum: + enum: + - Bone marrow transplant + - Chemotherapy + - Hormonal therapy + - Immunotherapy + - No treatment + - Other targeting molecular therapy + - Photodynamic therapy + - Radiation therapy + - Stem cell transplant + - Surgery + title: TreatmentTypeEnum + type: string + TumourClassificationEnum: + enum: + - Not applicable + - RX + - R0 + - R1 + - R2 + - Unknown + title: TumourClassificationEnum + type: string + TumourDesginationEnum: + enum: + - Normal + - Tumour + title: TumourDesginationEnum + type: string + TumourFocalityEnum: + enum: + - Cannot be assessed + - Multifocal + - Not applicable + - Unifocal + - Unknown + title: TumourFocalityEnum + type: string + TumourGradeEnum: + enum: + - Low grade + - High grade + - GX + - G1 + - G2 + - G3 + - G4 + - Low + - High + - Grade 1 + - Grade 2 + - Grade 3 + - Grade 4 + - Grade I + - Grade II + - Grade III + - Grade IV + - Grade Group 1 + - Grade Group 2 + - Grade Group 3 + - Grade Group 4 + - Grade Group 5 + title: TumourGradeEnum + type: string + TumourGradingSystemEnum: + enum: + - FNCLCC grading system + - Four-tier grading system + - Gleason grade group system + - Grading system for GISTs + - Grading system for GNETs + - IASLC grading system + - ISUP grading system + - Nottingham grading system + - Nuclear grading system for DCIS + - Scarff-Bloom-Richardson grading system + - Three-tier grading system + - Two-tier grading system + - WHO grading system for CNS tumours + title: TumourGradingSystemEnum type: string - description: |- - * `Stage 0` - Stage 0 - * `Stage 0a` - Stage 0a - * `Stage 0is` - Stage 0is - * `Stage 1` - Stage 1 - * `Stage 1A` - Stage 1A - * `Stage 1B` - Stage 1B - * `Stage A` - Stage A - * `Stage B` - Stage B - * `Stage C` - Stage C - * `Stage I` - Stage I - * `Stage IA` - Stage IA - * `Stage IA1` - Stage IA1 - * `Stage IA2` - Stage IA2 - * `Stage IA3` - Stage IA3 - * `Stage IAB` - Stage IAB - * `Stage IAE` - Stage IAE - * `Stage IAES` - Stage IAES - * `Stage IAS` - Stage IAS - * `Stage IB` - Stage IB - * `Stage IB1` - Stage IB1 - * `Stage IB2` - Stage IB2 - * `Stage IBE` - Stage IBE - * `Stage IBES` - Stage IBES - * `Stage IBS` - Stage IBS - * `Stage IC` - Stage IC - * `Stage IE` - Stage IE - * `Stage IEA` - Stage IEA - * `Stage IEB` - Stage IEB - * `Stage IES` - Stage IES - * `Stage II` - Stage II - * `Stage II bulky` - Stage II bulky - * `Stage IIA` - Stage IIA - * `Stage IIA1` - Stage IIA1 - * `Stage IIA2` - Stage IIA2 - * `Stage IIAE` - Stage IIAE - * `Stage IIAES` - Stage IIAES - * `Stage IIAS` - Stage IIAS - * `Stage IIB` - Stage IIB - * `Stage IIBE` - Stage IIBE - * `Stage IIBES` - Stage IIBES - * `Stage IIBS` - Stage IIBS - * `Stage IIC` - Stage IIC - * `Stage IIE` - Stage IIE - * `Stage IIEA` - Stage IIEA - * `Stage IIEB` - Stage IIEB - * `Stage IIES` - Stage IIES - * `Stage III` - Stage III - * `Stage IIIA` - Stage IIIA - * `Stage IIIA1` - Stage IIIA1 - * `Stage IIIA2` - Stage IIIA2 - * `Stage IIIAE` - Stage IIIAE - * `Stage IIIAES` - Stage IIIAES - * `Stage IIIAS` - Stage IIIAS - * `Stage IIIB` - Stage IIIB - * `Stage IIIBE` - Stage IIIBE - * `Stage IIIBES` - Stage IIIBES - * `Stage IIIBS` - Stage IIIBS - * `Stage IIIC` - Stage IIIC - * `Stage IIIC1` - Stage IIIC1 - * `Stage IIIC2` - Stage IIIC2 - * `Stage IIID` - Stage IIID - * `Stage IIIE` - Stage IIIE - * `Stage IIIES` - Stage IIIES - * `Stage IIIS` - Stage IIIS - * `Stage IIS` - Stage IIS - * `Stage IS` - Stage IS - * `Stage IV` - Stage IV - * `Stage IVA` - Stage IVA - * `Stage IVA1` - Stage IVA1 - * `Stage IVA2` - Stage IVA2 - * `Stage IVAE` - Stage IVAE - * `Stage IVAES` - Stage IVAES - * `Stage IVAS` - Stage IVAS - * `Stage IVB` - Stage IVB - * `Stage IVBE` - Stage IVBE - * `Stage IVBES` - Stage IVBES - * `Stage IVBS` - Stage IVBS - * `Stage IVC` - Stage IVC - * `Stage IVE` - Stage IVE - * `Stage IVES` - Stage IVES - * `Stage IVS` - Stage IVS - * `In situ` - In situ - * `Localized` - Localized - * `Regionalized` - Regionalized - * `Distant` - Distant - * `Stage L1` - Stage L1 - * `Stage L2` - Stage L2 - * `Stage M` - Stage M - * `Stage Ms` - Stage Ms - * `Stage 2A` - Stage 2A - * `Stage 2B` - Stage 2B - * `Stage 3` - Stage 3 - * `Stage 4` - Stage 4 - * `Stage 4S` - Stage 4S - * `Occult Carcinoma` - Occult Carcinoma - StagingSystemEnum: + TumourStagingSystemEnum: enum: - AJCC 8th edition - AJCC 7th edition @@ -6190,745 +5618,2689 @@ components: - Revised International staging system (RISS) - SEER staging system - St Jude staging system + title: TumourStagingSystemEnum type: string - description: |- - * `AJCC 8th edition` - AJCC 8th edition - * `AJCC 7th edition` - AJCC 7th edition - * `AJCC 6th edition` - AJCC 6th edition - * `Ann Arbor staging system` - Ann Arbor staging system - * `Binet staging system` - Binet staging system - * `Durie-Salmon staging system` - Durie-Salmon staging system - * `FIGO staging system` - FIGO staging system - * `International Neuroblastoma Risk Group Staging System` - International Neuroblastoma Risk Group Staging System - * `International Neuroblastoma Staging System` - International Neuroblastoma Staging System - * `Lugano staging system` - Lugano staging system - * `Rai staging system` - Rai staging system - * `Revised International staging system (RISS)` - Revised International staging system (RISS) - * `SEER staging system` - SEER staging system - * `St Jude staging system` - St Jude staging system - StatusOfTreatmentEnum: + uBooleanEnum: enum: - - Treatment completed as prescribed - - Treatment incomplete due to technical or organizational problems - - Treatment incomplete because patient died - - Patient choice (stopped or interrupted treatment) - - Physician decision (stopped or interrupted treatment) - - Treatment stopped due to lack of efficacy (disease progression) - - Treatment stopped due to acute toxicity - - Other - - Not applicable + - 'Yes' + - 'No' - Unknown + title: uBooleanEnum type: string - description: |- - * `Treatment completed as prescribed` - Treatment completed as prescribed - * `Treatment incomplete due to technical or organizational problems` - Treatment incomplete due to technical or organizational problems - * `Treatment incomplete because patient died` - Treatment incomplete because patient died - * `Patient choice (stopped or interrupted treatment)` - Patient choice (stopped or interrupted treatment) - * `Physician decision (stopped or interrupted treatment)` - Physician decision (stopped or interrupted treatment) - * `Treatment stopped due to lack of efficacy (disease progression)` - Treatment stopped due to lack of efficacy (disease progression) - * `Treatment stopped due to acute toxicity` - Treatment stopped due to acute toxicity - * `Other` - Other - * `Not applicable` - Not applicable - * `Unknown` - Unknown - Surgery: - type: object - properties: - id: + securitySchemes: + LocalAuth: + scheme: bearer + type: http +info: + description: This is the RESTful API for the MoH Service. Based on https://raw.githubusercontent.com/CanDIG/katsu/29caaa0842abd9b6b422f77ad9362c61fabb8e13/chord_metadata_service/mohpackets/docs/schema.json + title: MoH Service API + version: 3.0.0 +openapi: 3.1.0 +paths: + /v2/authorized/biomarkers/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_biomarkers + parameters: + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: submitter_specimen_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Specimen Id + - in: query + name: submitter_primary_diagnosis_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + - in: query + name: submitter_treatment_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + - in: query + name: submitter_follow_up_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Follow Up Id + - in: query + name: test_date + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Test Date + - in: query + name: psa_level + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Psa Level + - in: query + name: ca125 + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Ca125 + - in: query + name: cea + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Cea + - in: query + name: er_status + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Er Status + - in: query + name: er_percent_positive + required: false + schema: + anyOf: + - type: number + - type: 'null' + title: Er Percent Positive + - in: query + name: pr_status + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Pr Status + - in: query + name: pr_percent_positive + required: false + schema: + anyOf: + - type: number + - type: 'null' + title: Pr Percent Positive + - in: query + name: her2_ihc_status + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Her2 Ihc Status + - in: query + name: her2_ish_status + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Her2 Ish Status + - in: query + name: hpv_ihc_status + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Hpv Ihc Status + - in: query + name: hpv_pcr_status + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Hpv Pcr Status + - in: query + name: hpv_strain + required: false + schema: + items: + type: string + q: hpv_strain__overlap + title: Hpv Strain + type: array + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page + type: integer + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedBiomarkerModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Biomarkers + tags: + - authorized + /v2/authorized/chemotherapies/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_chemotherapies + parameters: + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: submitter_treatment_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + - in: query + name: drug_reference_database + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Drug Reference Database + - in: query + name: drug_name + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Drug Name + - in: query + name: drug_reference_identifier + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Drug Reference Identifier + - in: query + name: chemotherapy_drug_dose_units + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Chemotherapy Drug Dose Units + - in: query + name: prescribed_cumulative_drug_dose + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + - in: query + name: actual_cumulative_drug_dose + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page + type: integer + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedChemotherapyModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Chemotherapies + tags: + - authorized + /v2/authorized/comorbidities/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_comorbidities + parameters: + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: prior_malignancy + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Prior Malignancy + - in: query + name: laterality_of_prior_malignancy + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Laterality Of Prior Malignancy + - in: query + name: age_at_comorbidity_diagnosis + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Age At Comorbidity Diagnosis + - in: query + name: comorbidity_type_code + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Comorbidity Type Code + - in: query + name: comorbidity_treatment_status + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Comorbidity Treatment Status + - in: query + name: comorbidity_treatment + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Comorbidity Treatment + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page + type: integer + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedComorbidityModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Comorbidities + tags: + - authorized + /v2/authorized/donor_with_clinical_data/program/{program_id}/donor/{donor_id}: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_get_donor_with_clinical_data + parameters: + - in: path + name: program_id + required: true + schema: + title: Program Id type: string - format: uuid - surgery_type: - nullable: true - oneOf: - - $ref: '#/components/schemas/SurgeryTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - surgery_site: + - in: path + name: donor_id + required: true + schema: + title: Donor Id type: string - nullable: true - maxLength: 255 - pattern: ^[C][0-9]{2}(.[0-9]{1})?$ - surgery_location: - nullable: true - oneOf: - - $ref: '#/components/schemas/SurgeryLocationEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - tumour_focality: - nullable: true - oneOf: - - $ref: '#/components/schemas/TumourFocalityEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - residual_tumour_classification: - nullable: true - oneOf: - - $ref: '#/components/schemas/ResidualTumourClassificationEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - margin_types_involved: + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DonorWithClinicalDataSchema' + description: OK + '404': + content: + application/json: + schema: + additionalProperties: + type: string + title: Response + type: object + description: Not Found + security: + - LocalAuth: [] + summary: Get Donor With Clinical Data + tags: + - authorized + /v2/authorized/donors/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_donors + parameters: + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: gender + required: false + schema: + anyOf: + - type: string + - type: 'null' + q: gender__icontains + title: Gender + - in: query + name: sex_at_birth + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Sex At Birth + - in: query + name: is_deceased + required: false + schema: + anyOf: + - type: boolean + - type: 'null' + title: Is Deceased + - in: query + name: lost_to_followup_after_clinical_event_identifier + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Lost To Followup After Clinical Event Identifier + - in: query + name: lost_to_followup_reason + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Lost To Followup Reason + - in: query + name: date_alive_after_lost_to_followup + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Date Alive After Lost To Followup + - in: query + name: cause_of_death + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Cause Of Death + - in: query + name: date_of_birth + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Date Of Birth + - in: query + name: date_of_death + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Date Of Death + - in: query + name: primary_site + required: false + schema: + items: + type: string + q: primary_site__overlap + title: Primary Site type: array + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page + type: integer + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedDonorModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Donors + tags: + - authorized + /v2/authorized/exposures/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_exposures + parameters: + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: tobacco_smoking_status + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Tobacco Smoking Status + - in: query + name: tobacco_type + required: false + schema: items: - nullable: true - oneOf: - - $ref: '#/components/schemas/MarginTypesEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - margin_types_not_involved: + type: string + q: tobacco_type__overlap + title: Tobacco Type type: array + - in: query + name: pack_years_smoked + required: false + schema: + anyOf: + - type: number + - type: 'null' + title: Pack Years Smoked + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page + type: integer + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedExposureModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Exposures + tags: + - authorized + /v2/authorized/follow_ups/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_follow_ups + parameters: + - in: query + name: submitter_follow_up_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Follow Up Id + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: submitter_primary_diagnosis_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + - in: query + name: submitter_treatment_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + - in: query + name: date_of_followup + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Date Of Followup + - in: query + name: disease_status_at_followup + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Disease Status At Followup + - in: query + name: relapse_type + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Relapse Type + - in: query + name: date_of_relapse + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Date Of Relapse + - in: query + name: method_of_progression_status + required: false + schema: items: - nullable: true - oneOf: - - $ref: '#/components/schemas/MarginTypesEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - margin_types_not_assessed: + type: string + q: method_of_progression_status__overlap + title: Method Of Progression Status type: array + - in: query + name: anatomic_site_progression_or_recurrence + required: false + schema: items: - nullable: true - oneOf: - - $ref: '#/components/schemas/MarginTypesEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - lymphovascular_invasion: - nullable: true - oneOf: - - $ref: '#/components/schemas/LymphovascularInvasionEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - perineural_invasion: - nullable: true - oneOf: - - $ref: '#/components/schemas/PerineuralInvasionEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - submitter_specimen_id: - type: string - nullable: true - maxLength: 64 - tumour_length: + type: string + q: anatomic_site_progression_or_recurrence__overlap + title: Anatomic Site Progression Or Recurrence + type: array + - in: query + name: recurrence_tumour_staging_system + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Recurrence Tumour Staging System + - in: query + name: recurrence_t_category + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Recurrence T Category + - in: query + name: recurrence_n_category + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Recurrence N Category + - in: query + name: recurrence_m_category + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Recurrence M Category + - in: query + name: recurrence_stage_group + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Recurrence Stage Group + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page type: integer - maximum: 32767 - minimum: 0 - nullable: true - tumour_width: + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size type: integer - maximum: 32767 - minimum: 0 - nullable: true - greatest_dimension_tumour: + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedFollowUpModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Follow Ups + tags: + - authorized + /v2/authorized/hormone_therapies/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_hormone_therapies + parameters: + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: submitter_treatment_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + - in: query + name: drug_reference_database + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Drug Reference Database + - in: query + name: drug_name + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Drug Name + - in: query + name: drug_reference_identifier + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Drug Reference Identifier + - in: query + name: hormone_drug_dose_units + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Hormone Drug Dose Units + - in: query + name: prescribed_cumulative_drug_dose + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + - in: query + name: actual_cumulative_drug_dose + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page type: integer - maximum: 32767 - minimum: 0 - nullable: true - program_id: - type: string - submitter_donor_id: - type: string - submitter_treatment_id: - type: string - required: - - program_id - - submitter_donor_id - - submitter_treatment_id - SurgeryLocationEnum: - enum: - - Local recurrence - - Metastatic - - Primary - type: string - description: |- - * `Local recurrence` - Local recurrence - * `Metastatic` - Metastatic - * `Primary` - Primary - SurgeryTypeEnum: - enum: - - Ablation - - Axillary Clearance - - Axillary lymph nodes sampling - - Bilateral complete salpingo-oophorectomy - - Biopsy - - Bypass Gastrojejunostomy - - Cholecystectomy - - Cholecystojejunostomy - - Completion Gastrectomy - - Debridement of pancreatic and peripancreatic necrosis - - Distal subtotal pancreatectomy - - Drainage of abscess - - Duodenal preserving pancreatic head resection - - Endoscopic biopsy - - Endoscopic brushings of gastrointestinal tract - - Enucleation - - Esophageal bypass surgery/jejunostomy only - - Exploratory laparotomy - - Fine needle aspiration biopsy - - Gastric Antrectomy - - Glossectomy - - Hepatojejunostomy - - Hysterectomy - - Incision of thorax - - Ivor Lewis subtotal esophagectomy - - Laparotomy - - Left thoracoabdominal incision - - Lobectomy - - Mammoplasty - - Mastectomy - - McKeown esophagectomy - - Merendino procedure - - Minimally invasive esophagectomy - - Omentectomy - - Ovariectomy - - Pancreaticoduodenectomy (Whipple procedure) - - Pancreaticojejunostomy, side-to-side anastomosis - - Partial pancreatectomy - - Pneumonectomy - - Prostatectomy - - Proximal subtotal gastrectomy - - Pylorus-sparing Whipple operation - - Radical pancreaticoduodenectomy - - Radical prostatectomy - - Reexcision - - Segmentectomy - - Sentinal Lymph Node Biopsy - - Spleen preserving distal pancreatectomy - - Splenectomy - - Total gastrectomy - - Total gastrectomy with extended lymphadenectomy - - Total pancreatectomy - - Transhiatal esophagectomy - - Triple bypass of pancreas - - Tumor Debulking - - Wedge/localised gastric resection - - Wide Local Excision - type: string - description: |- - * `Ablation` - Ablation - * `Axillary Clearance` - Axillary Clearance - * `Axillary lymph nodes sampling` - Axillary lymph nodes sampling - * `Bilateral complete salpingo-oophorectomy` - Bilateral complete salpingo-oophorectomy - * `Biopsy` - Biopsy - * `Bypass Gastrojejunostomy` - Bypass Gastrojejunostomy - * `Cholecystectomy` - Cholecystectomy - * `Cholecystojejunostomy` - Cholecystojejunostomy - * `Completion Gastrectomy` - Completion Gastrectomy - * `Debridement of pancreatic and peripancreatic necrosis` - Debridement of pancreatic and peripancreatic necrosis - * `Distal subtotal pancreatectomy` - Distal subtotal pancreatectomy - * `Drainage of abscess` - Drainage of abscess - * `Duodenal preserving pancreatic head resection` - Duodenal preserving pancreatic head resection - * `Endoscopic biopsy` - Endoscopic biopsy - * `Endoscopic brushings of gastrointestinal tract` - Endoscopic brushings of gastrointestinal tract - * `Enucleation` - Enucleation - * `Esophageal bypass surgery/jejunostomy only` - Esophageal bypass surgery/jejunostomy only - * `Exploratory laparotomy` - Exploratory laparotomy - * `Fine needle aspiration biopsy` - Fine needle aspiration biopsy - * `Gastric Antrectomy` - Gastric Antrectomy - * `Glossectomy` - Glossectomy - * `Hepatojejunostomy` - Hepatojejunostomy - * `Hysterectomy` - Hysterectomy - * `Incision of thorax` - Incision of thorax - * `Ivor Lewis subtotal esophagectomy` - Ivor Lewis subtotal esophagectomy - * `Laparotomy` - Laparotomy - * `Left thoracoabdominal incision` - Left thoracoabdominal incision - * `Lobectomy` - Lobectomy - * `Mammoplasty` - Mammoplasty - * `Mastectomy` - Mastectomy - * `McKeown esophagectomy` - McKeown esophagectomy - * `Merendino procedure` - Merendino procedure - * `Minimally invasive esophagectomy` - Minimally invasive esophagectomy - * `Omentectomy` - Omentectomy - * `Ovariectomy` - Ovariectomy - * `Pancreaticoduodenectomy (Whipple procedure)` - Pancreaticoduodenectomy (Whipple procedure) - * `Pancreaticojejunostomy, side-to-side anastomosis` - Pancreaticojejunostomy, side-to-side anastomosis - * `Partial pancreatectomy` - Partial pancreatectomy - * `Pneumonectomy` - Pneumonectomy - * `Prostatectomy` - Prostatectomy - * `Proximal subtotal gastrectomy` - Proximal subtotal gastrectomy - * `Pylorus-sparing Whipple operation` - Pylorus-sparing Whipple operation - * `Radical pancreaticoduodenectomy` - Radical pancreaticoduodenectomy - * `Radical prostatectomy` - Radical prostatectomy - * `Reexcision` - Reexcision - * `Segmentectomy` - Segmentectomy - * `Sentinal Lymph Node Biopsy` - Sentinal Lymph Node Biopsy - * `Spleen preserving distal pancreatectomy` - Spleen preserving distal pancreatectomy - * `Splenectomy` - Splenectomy - * `Total gastrectomy` - Total gastrectomy - * `Total gastrectomy with extended lymphadenectomy` - Total gastrectomy with extended lymphadenectomy - * `Total pancreatectomy` - Total pancreatectomy - * `Transhiatal esophagectomy` - Transhiatal esophagectomy - * `Triple bypass of pancreas` - Triple bypass of pancreas - * `Tumor Debulking` - Tumor Debulking - * `Wedge/localised gastric resection` - Wedge/localised gastric resection - * `Wide Local Excision` - Wide Local Excision - TCategoryEnum: - enum: - - T0 - - T1 - - T1a - - T1a1 - - T1a2 - - T1a(s) - - T1a(m) - - T1b - - T1b1 - - T1b2 - - T1b(s) - - T1b(m) - - T1c - - T1d - - T1mi - - T2 - - T2(s) - - T2(m) - - T2a - - T2a1 - - T2a2 - - T2b - - T2c - - T2d - - T3 - - T3(s) - - T3(m) - - T3a - - T3b - - T3c - - T3d - - T3e - - T4 - - T4a - - T4a(s) - - T4a(m) - - T4b - - T4b(s) - - T4b(m) - - T4c - - T4d - - T4e - - Ta - - Tis - - Tis(DCIS) - - Tis(LAMN) - - Tis(LCIS) - - Tis(Paget) - - Tis(Paget's) - - Tis pu - - Tis pd - - TX - type: string - description: |- - * `T0` - T0 - * `T1` - T1 - * `T1a` - T1a - * `T1a1` - T1a1 - * `T1a2` - T1a2 - * `T1a(s)` - T1a(s) - * `T1a(m)` - T1a(m) - * `T1b` - T1b - * `T1b1` - T1b1 - * `T1b2` - T1b2 - * `T1b(s)` - T1b(s) - * `T1b(m)` - T1b(m) - * `T1c` - T1c - * `T1d` - T1d - * `T1mi` - T1mi - * `T2` - T2 - * `T2(s)` - T2(s) - * `T2(m)` - T2(m) - * `T2a` - T2a - * `T2a1` - T2a1 - * `T2a2` - T2a2 - * `T2b` - T2b - * `T2c` - T2c - * `T2d` - T2d - * `T3` - T3 - * `T3(s)` - T3(s) - * `T3(m)` - T3(m) - * `T3a` - T3a - * `T3b` - T3b - * `T3c` - T3c - * `T3d` - T3d - * `T3e` - T3e - * `T4` - T4 - * `T4a` - T4a - * `T4a(s)` - T4a(s) - * `T4a(m)` - T4a(m) - * `T4b` - T4b - * `T4b(s)` - T4b(s) - * `T4b(m)` - T4b(m) - * `T4c` - T4c - * `T4d` - T4d - * `T4e` - T4e - * `Ta` - Ta - * `Tis` - Tis - * `Tis(DCIS)` - Tis(DCIS) - * `Tis(LAMN)` - Tis(LAMN) - * `Tis(LCIS)` - Tis(LCIS) - * `Tis(Paget)` - Tis(Paget) - * `Tis(Paget's)` - Tis(Paget's) - * `Tis pu` - Tis pu - * `Tis pd` - Tis pd - * `TX` - TX - TobaccoSmokingStatusEnum: - enum: - - Current reformed smoker for <= 15 years - - Current reformed smoker for > 15 years - - Current reformed smoker, duration not specified - - Current smoker - - Lifelong non-smoker (<100 cigarettes smoked in lifetime) - - Not applicable - - Smoking history not documented - type: string - description: |- - * `Current reformed smoker for <= 15 years` - Current reformed smoker for <= 15 years - * `Current reformed smoker for > 15 years` - Current reformed smoker for > 15 years - * `Current reformed smoker, duration not specified` - Current reformed smoker, duration not specified - * `Current smoker` - Current smoker - * `Lifelong non-smoker (<100 cigarettes smoked in lifetime)` - Lifelong non-smoker (<100 cigarettes smoked in lifetime) - * `Not applicable` - Not applicable - * `Smoking history not documented` - Smoking history not documented - TobaccoTypeEnum: - enum: - - Chewing Tobacco - - Cigar - - Cigarettes - - Electronic cigarettes - - Not applicable - - Pipe - - Roll-ups - - Snuff - - Unknown - - Waterpipe - type: string - description: |- - * `Chewing Tobacco` - Chewing Tobacco - * `Cigar` - Cigar - * `Cigarettes` - Cigarettes - * `Electronic cigarettes` - Electronic cigarettes - * `Not applicable` - Not applicable - * `Pipe` - Pipe - * `Roll-ups` - Roll-ups - * `Snuff` - Snuff - * `Unknown` - Unknown - * `Waterpipe` - Waterpipe - Treatment: - type: object - properties: - submitter_treatment_id: - type: string - maxLength: 64 - pattern: ^[A-Za-z0-9\-\._]{1,64} - treatment_type: - type: array - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/TreatmentTypeEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - nullable: true - is_primary_treatment: - nullable: true - oneOf: - - $ref: '#/components/schemas/uBooleanEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - treatment_start_date: - type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - treatment_end_date: + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedHormoneTherapyModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Hormone Therapies + tags: + - authorized + /v2/authorized/immunotherapies/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_immunotherapies + parameters: + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: submitter_treatment_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + - in: query + name: drug_reference_database + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Drug Reference Database + - in: query + name: immunotherapy_type + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Immunotherapy Type + - in: query + name: drug_name + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Drug Name + - in: query + name: drug_reference_identifier + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Drug Reference Identifier + - in: query + name: immunotherapy_drug_dose_units + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Immunotherapy Drug Dose Units + - in: query + name: prescribed_cumulative_drug_dose + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Prescribed Cumulative Drug Dose + - in: query + name: actual_cumulative_drug_dose + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Actual Cumulative Drug Dose + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page + type: integer + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedImmunotherapyModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Immunotherapies + tags: + - authorized + /v2/authorized/primary_diagnoses/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_primary_diagnoses + parameters: + - in: query + name: submitter_primary_diagnosis_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: date_of_diagnosis + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Date Of Diagnosis + - in: query + name: cancer_type_code + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Cancer Type Code + - in: query + name: basis_of_diagnosis + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Basis Of Diagnosis + - in: query + name: laterality + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Laterality + - in: query + name: lymph_nodes_examined_status + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Lymph Nodes Examined Status + - in: query + name: lymph_nodes_examined_method + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Lymph Nodes Examined Method + - in: query + name: number_lymph_nodes_positive + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Number Lymph Nodes Positive + - in: query + name: clinical_tumour_staging_system + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Clinical Tumour Staging System + - in: query + name: clinical_t_category + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Clinical T Category + - in: query + name: clinical_n_category + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Clinical N Category + - in: query + name: clinical_m_category + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Clinical M Category + - in: query + name: clinical_stage_group + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Clinical Stage Group + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page + type: integer + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedPrimaryDiagnosisModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Primary Diagnoses + tags: + - authorized + /v2/authorized/program/{program_id}/: + delete: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_delete_program + parameters: + - in: path + name: program_id + required: true + schema: + title: Program Id type: string - nullable: true - maxLength: 32 - pattern: ^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)? - treatment_setting: - nullable: true - oneOf: - - $ref: '#/components/schemas/TreatmentSettingEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - treatment_intent: - nullable: true - oneOf: - - $ref: '#/components/schemas/TreatmentIntentEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - response_to_treatment_criteria_method: - nullable: true - oneOf: - - $ref: '#/components/schemas/ResponseToTreatmentCriteriaMethodEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - response_to_treatment: - nullable: true - oneOf: - - $ref: '#/components/schemas/ResponseToTreatmentEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - status_of_treatment: - nullable: true - oneOf: - - $ref: '#/components/schemas/StatusOfTreatmentEnum' - - $ref: '#/components/schemas/BlankEnum' - - $ref: '#/components/schemas/NullEnum' - line_of_treatment: + responses: + '204': + description: No Content + '404': + content: + application/json: + schema: + additionalProperties: + type: string + title: Response + type: object + description: Not Found + security: + - LocalAuth: [] + summary: Delete Program + tags: + - authorized + /v2/authorized/programs/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_programs + parameters: + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page type: integer - maximum: 2147483647 - minimum: -2147483648 - nullable: true - days_per_cycle: + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size type: integer - maximum: 32767 - minimum: 0 - nullable: true - number_of_cycles: + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedProgramModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Programs + tags: + - authorized + /v2/authorized/radiations/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_radiations + parameters: + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: submitter_treatment_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + - in: query + name: radiation_therapy_modality + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Radiation Therapy Modality + - in: query + name: radiation_therapy_type + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Radiation Therapy Type + - in: query + name: radiation_therapy_fractions + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Radiation Therapy Fractions + - in: query + name: radiation_therapy_dosage + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Radiation Therapy Dosage + - in: query + name: anatomical_site_irradiated + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Anatomical Site Irradiated + - in: query + name: radiation_boost + required: false + schema: + anyOf: + - type: boolean + - type: 'null' + title: Radiation Boost + - in: query + name: reference_radiation_treatment_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Reference Radiation Treatment Id + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page + type: integer + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedRadiationModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Radiations + tags: + - authorized + /v2/authorized/sample_registrations/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_sample_registrations + parameters: + - in: query + name: submitter_sample_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Sample Id + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: submitter_specimen_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Specimen Id + - in: query + name: specimen_tissue_source + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Specimen Tissue Source + - in: query + name: tumour_normal_designation + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Tumour Normal Designation + - in: query + name: specimen_type + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Specimen Type + - in: query + name: sample_type + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Sample Type + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page type: integer - maximum: 32767 - minimum: 0 - nullable: true - program_id: - type: string - submitter_donor_id: - type: string - submitter_primary_diagnosis_id: - type: string - required: - - program_id - - submitter_donor_id - - submitter_primary_diagnosis_id - - submitter_treatment_id - TreatmentIntentEnum: - enum: - - Curative - - Palliative - - Supportive - - Diagnostic - - Preventive - - Guidance - - Screening - - Forensic - type: string - description: |- - * `Curative` - Curative - * `Palliative` - Palliative - * `Supportive` - Supportive - * `Diagnostic` - Diagnostic - * `Preventive` - Preventive - * `Guidance` - Guidance - * `Screening` - Screening - * `Forensic` - Forensic - TreatmentSettingEnum: - enum: - - Adjuvant - - Advanced/Metastatic - - Neoadjuvant - - Conditioning - - Induction - - Locally advanced - - Maintenance - - Mobilization - - Preventative - - Radiosensitization - - Salvage - type: string - description: |- - * `Adjuvant` - Adjuvant - * `Advanced/Metastatic` - Advanced/Metastatic - * `Neoadjuvant` - Neoadjuvant - * `Conditioning` - Conditioning - * `Induction` - Induction - * `Locally advanced` - Locally advanced - * `Maintenance` - Maintenance - * `Mobilization` - Mobilization - * `Preventative` - Preventative - * `Radiosensitization` - Radiosensitization - * `Salvage` - Salvage - TreatmentTypeEnum: - enum: - - Bone marrow transplant - - Chemotherapy - - Hormonal therapy - - Immunotherapy - - No treatment - - Other targeting molecular therapy - - Photodynamic therapy - - Radiation therapy - - Stem cell transplant - - Surgery - type: string - description: |- - * `Bone marrow transplant` - Bone marrow transplant - * `Chemotherapy` - Chemotherapy - * `Hormonal therapy` - Hormonal therapy - * `Immunotherapy` - Immunotherapy - * `No treatment` - No treatment - * `Other targeting molecular therapy` - Other targeting molecular therapy - * `Photodynamic therapy` - Photodynamic therapy - * `Radiation therapy` - Radiation therapy - * `Stem cell transplant` - Stem cell transplant - * `Surgery` - Surgery - TumourFocalityEnum: - enum: - - Cannot be assessed - - Multifocal - - Not applicable - - Unifocal - - Unknown - type: string - description: |- - * `Cannot be assessed` - Cannot be assessed - * `Multifocal` - Multifocal - * `Not applicable` - Not applicable - * `Unifocal` - Unifocal - * `Unknown` - Unknown - TumourGradeEnum: - enum: - - Low grade - - High grade - - GX - - G1 - - G2 - - G3 - - G4 - - Low - - High - - Grade 1 - - Grade 2 - - Grade 3 - - Grade 4 - - Grade I - - Grade II - - Grade III - - Grade IV - - Grade Group 1 - - Grade Group 2 - - Grade Group 3 - - Grade Group 4 - - Grade Group 5 - type: string - description: |- - * `Low grade` - Low grade - * `High grade` - High grade - * `GX` - GX - * `G1` - G1 - * `G2` - G2 - * `G3` - G3 - * `G4` - G4 - * `Low` - Low - * `High` - High - * `Grade 1` - Grade 1 - * `Grade 2` - Grade 2 - * `Grade 3` - Grade 3 - * `Grade 4` - Grade 4 - * `Grade I` - Grade I - * `Grade II` - Grade II - * `Grade III` - Grade III - * `Grade IV` - Grade IV - * `Grade Group 1` - Grade Group 1 - * `Grade Group 2` - Grade Group 2 - * `Grade Group 3` - Grade Group 3 - * `Grade Group 4` - Grade Group 4 - * `Grade Group 5` - Grade Group 5 - TumourGradingSystemEnum: - enum: - - FNCLCC grading system - - Four-tier grading system - - Gleason grade group system - - Grading system for GISTs - - Grading system for GNETs - - IASLC grading system - - ISUP grading system - - Nottingham grading system - - Nuclear grading system for DCIS - - Scarff-Bloom-Richardson grading system - - Three-tier grading system - - Two-tier grading system - - WHO grading system for CNS tumours - type: string - description: |- - * `FNCLCC grading system` - FNCLCC grading system - * `Four-tier grading system` - Four-tier grading system - * `Gleason grade group system` - Gleason grade group system - * `Grading system for GISTs` - Grading system for GISTs - * `Grading system for GNETs` - Grading system for GNETs - * `IASLC grading system` - IASLC grading system - * `ISUP grading system` - ISUP grading system - * `Nottingham grading system` - Nottingham grading system - * `Nuclear grading system for DCIS` - Nuclear grading system for DCIS - * `Scarff-Bloom-Richardson grading system` - Scarff-Bloom-Richardson grading system - * `Three-tier grading system` - Three-tier grading system - * `Two-tier grading system` - Two-tier grading system - * `WHO grading system for CNS tumours` - WHO grading system for CNS tumours - TumourNormalDesignationEnum: - enum: - - Normal - - Tumour - type: string - description: |- - * `Normal` - Normal - * `Tumour` - Tumour - moh_overview_cancer_type_count_response: - type: object - properties: - cancer_type_count: + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size type: integer - required: - - cancer_type_count - moh_overview_cohort_count_response: - type: object - properties: - cohort_count: + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedSampleRegistrationModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Sample Registrations + tags: + - authorized + /v2/authorized/specimens/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_specimens + parameters: + - in: query + name: submitter_specimen_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Specimen Id + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: submitter_primary_diagnosis_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + - in: query + name: pathological_tumour_staging_system + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Pathological Tumour Staging System + - in: query + name: pathological_t_category + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Pathological T Category + - in: query + name: pathological_n_category + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Pathological N Category + - in: query + name: pathological_m_category + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Pathological M Category + - in: query + name: pathological_stage_group + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Pathological Stage Group + - in: query + name: specimen_collection_date + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Specimen Collection Date + - in: query + name: specimen_storage + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Specimen Storage + - in: query + name: specimen_processing + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Specimen Processing + - in: query + name: tumour_histological_type + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Tumour Histological Type + - in: query + name: specimen_anatomic_location + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Specimen Anatomic Location + - in: query + name: specimen_laterality + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Specimen Laterality + - in: query + name: reference_pathology_confirmed_diagnosis + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Reference Pathology Confirmed Diagnosis + - in: query + name: reference_pathology_confirmed_tumour_presence + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Reference Pathology Confirmed Tumour Presence + - in: query + name: tumour_grading_system + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Tumour Grading System + - in: query + name: tumour_grade + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Tumour Grade + - in: query + name: percent_tumour_cells_range + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Percent Tumour Cells Range + - in: query + name: percent_tumour_cells_measurement_method + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Percent Tumour Cells Measurement Method + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page type: integer - required: - - cohort_count - moh_overview_diagnosis_age_count_response: - type: object - properties: - age_range_count: + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size type: integer - required: - - age_range_count - moh_overview_gender_count_response: - type: object - properties: - gender_count: + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedSpecimenModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Specimens + tags: + - authorized + /v2/authorized/surgeries/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_surgeries + parameters: + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: submitter_treatment_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + - in: query + name: submitter_specimen_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Specimen Id + - in: query + name: surgery_type + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Surgery Type + - in: query + name: surgery_site + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Surgery Site + - in: query + name: surgery_location + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Surgery Location + - in: query + name: tumour_length + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Tumour Length + - in: query + name: tumour_width + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Tumour Width + - in: query + name: greatest_dimension_tumour + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Greatest Dimension Tumour + - in: query + name: tumour_focality + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Tumour Focality + - in: query + name: residual_tumour_classification + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Residual Tumour Classification + - in: query + name: margin_types_involved + required: false + schema: + items: + type: string + q: margin_types_involved__overlap + title: Margin Types Involved + type: array + - in: query + name: margin_types_not_involved + required: false + schema: + items: + type: string + q: margin_types_not_involved__overlap + title: Margin Types Not Involved + type: array + - in: query + name: margin_types_not_assessed + required: false + schema: + items: + type: string + q: margin_types_not_assessed__overlap + title: Margin Types Not Assessed + type: array + - in: query + name: lymphovascular_invasion + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Lymphovascular Invasion + - in: query + name: perineural_invasion + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Perineural Invasion + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page type: integer - required: - - gender_count - moh_overview_individual_count_response: - type: object - properties: - individual_count: + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size type: integer - required: - - individual_count - moh_overview_patient_per_cohort_response: - type: object - properties: - patients_per_cohort_count: + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedSurgeryModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Surgeries + tags: + - authorized + /v2/authorized/treatments/: + get: + operationId: chord_metadata_service_mohpackets_apis_clinical_data_list_treatments + parameters: + - in: query + name: submitter_treatment_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Treatment Id + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: submitter_primary_diagnosis_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Primary Diagnosis Id + - in: query + name: treatment_type + required: false + schema: + items: + type: string + q: treatment_type__overlap + title: Treatment Type + type: array + - in: query + name: is_primary_treatment + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Is Primary Treatment + - in: query + name: line_of_treatment + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Line Of Treatment + - in: query + name: treatment_start_date + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Treatment Start Date + - in: query + name: treatment_end_date + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Treatment End Date + - in: query + name: treatment_setting + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Treatment Setting + - in: query + name: treatment_intent + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Treatment Intent + - in: query + name: days_per_cycle + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Days Per Cycle + - in: query + name: number_of_cycles + required: false + schema: + anyOf: + - type: integer + - type: 'null' + title: Number Of Cycles + - in: query + name: response_to_treatment_criteria_method + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Response To Treatment Criteria Method + - in: query + name: response_to_treatment + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Response To Treatment + - in: query + name: status_of_treatment + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Status Of Treatment + - in: query + name: page + required: false + schema: + minimum: 1 + title: Page type: integer - required: - - patients_per_cohort_count - moh_overview_treatment_type_count_response: - type: object - properties: - treatment_type_count: + - in: query + name: page_size + required: false + schema: + minimum: 1 + title: Page Size type: integer - required: - - treatment_type_count - uBooleanEnum: - enum: - - 'Yes' - - 'No' - - Unknown - type: string - description: |- - * `Yes` - Yes - * `No` - No - * `Unknown` - Unknown - securitySchemes: - localAuth: - type: http - scheme: bearer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedTreatmentModelSchema' + description: OK + security: + - LocalAuth: [] + summary: List Treatments + tags: + - authorized + /v2/discovery/biomarkers/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_biomarkers + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Biomarkers + tags: + - discovery + /v2/discovery/chemotherapies/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_chemotherapies + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Chemotherapies + tags: + - discovery + /v2/discovery/comorbidities/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_comorbidities + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Comorbidities + tags: + - discovery + /v2/discovery/donors/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_donors + parameters: + - in: query + name: submitter_donor_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Submitter Donor Id + - in: query + name: program_id + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Program Id + - in: query + name: gender + required: false + schema: + anyOf: + - type: string + - type: 'null' + q: gender__icontains + title: Gender + - in: query + name: sex_at_birth + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Sex At Birth + - in: query + name: is_deceased + required: false + schema: + anyOf: + - type: boolean + - type: 'null' + title: Is Deceased + - in: query + name: lost_to_followup_after_clinical_event_identifier + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Lost To Followup After Clinical Event Identifier + - in: query + name: lost_to_followup_reason + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Lost To Followup Reason + - in: query + name: date_alive_after_lost_to_followup + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Date Alive After Lost To Followup + - in: query + name: cause_of_death + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Cause Of Death + - in: query + name: date_of_birth + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Date Of Birth + - in: query + name: date_of_death + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Date Of Death + - in: query + name: primary_site + required: false + schema: + items: + type: string + q: primary_site__overlap + title: Primary Site + type: array + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Donors + tags: + - discovery + /v2/discovery/exposures/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_exposures + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Exposures + tags: + - discovery + /v2/discovery/follow_ups/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_follow_ups + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Follow Ups + tags: + - discovery + /v2/discovery/hormone_therapies/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_hormone_therapies + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Hormone Therapies + tags: + - discovery + /v2/discovery/immunotherapies/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_immunotherapies + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Immunotherapies + tags: + - discovery + /v2/discovery/overview/cancer_type_count/: + get: + description: Return the count for every cancer type in the database. + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_cancer_type_count + parameters: [] + responses: + '200': + content: + application/json: + schema: + additionalProperties: + type: integer + title: Response + type: object + description: OK + summary: Discover Cancer Type Count + tags: + - overview + /v2/discovery/overview/cohort_count/: + get: + description: Return the number of cohorts in the database. + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_cohort_count + parameters: [] + responses: + '200': + content: + application/json: + schema: + additionalProperties: + type: integer + title: Response + type: object + description: OK + summary: Discover Cohort Count + tags: + - overview + /v2/discovery/overview/diagnosis_age_count/: + get: + description: 'Return the count for age of diagnosis in the database. + + If there are multiple date_of_diagnosis, get the earliest' + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_diagnosis_age_count + parameters: [] + responses: + '200': + content: + application/json: + schema: + additionalProperties: + type: integer + title: Response + type: object + description: OK + summary: Discover Diagnosis Age Count + tags: + - overview + /v2/discovery/overview/gender_count/: + get: + description: Return the count for every gender in the database. + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_gender_count + parameters: [] + responses: + '200': + content: + application/json: + schema: + additionalProperties: + type: integer + title: Response + type: object + description: OK + summary: Discover Gender Count + tags: + - overview + /v2/discovery/overview/individual_count/: + get: + description: Return the number of individuals in the database. + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_individual_count + parameters: [] + responses: + '200': + content: + application/json: + schema: + additionalProperties: + type: integer + title: Response + type: object + description: OK + summary: Discover Individual Count + tags: + - overview + /v2/discovery/overview/patients_per_cohort/: + get: + description: Return the number of patients per cohort in the database. + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_patients_per_cohort + parameters: [] + responses: + '200': + content: + application/json: + schema: + additionalProperties: + type: integer + title: Response + type: object + description: OK + summary: Discover Patients Per Cohort + tags: + - overview + /v2/discovery/overview/treatment_type_count/: + get: + description: Return the count for every treatment type in the database. + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_treatment_type_count + parameters: [] + responses: + '200': + content: + application/json: + schema: + additionalProperties: + type: integer + title: Response + type: object + description: OK + summary: Discover Treatment Type Count + tags: + - overview + /v2/discovery/primary_diagnoses/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_primary_diagnoses + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Primary Diagnoses + tags: + - discovery + /v2/discovery/programs/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_programs + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ProgramDiscoverySchema' + description: OK + summary: Discover Programs + tags: + - discovery + /v2/discovery/radiations/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_radiations + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Radiations + tags: + - discovery + /v2/discovery/sample_registrations/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_sample_registrations + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Sample Registrations + tags: + - discovery + /v2/discovery/sidebar_list/: + get: + description: 'Retrieve the list of available values for all fields (including + for + + datasets that the user is not authorized to view)' + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_sidebar_list + parameters: [] + responses: + '200': + content: + application/json: + schema: + title: Response + type: object + description: OK + summary: Discover Sidebar List + tags: + - discovery + /v2/discovery/specimen/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_specimens + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Specimens + tags: + - discovery + /v2/discovery/surgeries/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_surgeries + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Surgeries + tags: + - discovery + /v2/discovery/treatments/: + get: + operationId: chord_metadata_service_mohpackets_apis_discovery_discover_treatments + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverySchema' + description: OK + summary: Discover Treatments + tags: + - discovery + /v2/ingest/biomarker/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_biomarker + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BiomarkerIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Biomarker + tags: + - ingest + /v2/ingest/chemotherapy/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_chemotherapy + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChemotherapyIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Chemotherapy + tags: + - ingest + /v2/ingest/comorbidity/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_comorbidity + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ComorbidityIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Comorbidity + tags: + - ingest + /v2/ingest/donor/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_donor + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DonorIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Donor + tags: + - ingest + /v2/ingest/exposure/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_exposure + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ExposureIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Exposure + tags: + - ingest + /v2/ingest/follow_up/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_follow_up + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FollowUpIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Follow Up + tags: + - ingest + /v2/ingest/hormone_therapy/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_hormone_therapy + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/HormoneTherapyIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Hormone Therapy + tags: + - ingest + /v2/ingest/immunotherapy/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_immunotherapy + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ImmunotherapyIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Immunotherapy + tags: + - ingest + /v2/ingest/primary_diagnosis/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_primary_diagnosis + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PrimaryDiagnosisIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Primary Diagnosis + tags: + - ingest + /v2/ingest/program/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_program + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProgramModelSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Program + tags: + - ingest + /v2/ingest/radiation/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_radiation + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RadiationIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Radiation + tags: + - ingest + /v2/ingest/sample_registration/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_sample_registration + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SampleRegistrationIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Sample Registration + tags: + - ingest + /v2/ingest/specimen/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_specimen + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SpecimenIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Specimen + tags: + - ingest + /v2/ingest/surgery/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_surgery + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SurgeryIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Surgery + tags: + - ingest + /v2/ingest/treatment/: + post: + operationId: chord_metadata_service_mohpackets_apis_ingestion_create_treatment + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TreatmentIngestSchema' + required: true + responses: + '200': + description: OK + security: + - LocalAuth: [] + summary: Create Treatment + tags: + - ingest + /v2/service-info: + get: + operationId: chord_metadata_service_mohpackets_apis_core_service_info + parameters: [] + responses: + '200': + description: OK + summary: Service Info +servers: [] + diff --git a/chord_metadata_service/mohpackets/filters.py b/chord_metadata_service/mohpackets/filters.py deleted file mode 100644 index 3899d3269..000000000 --- a/chord_metadata_service/mohpackets/filters.py +++ /dev/null @@ -1,249 +0,0 @@ -import datetime -import functools - -from django.db.models import Q -from django_filters import rest_framework as filters - -from chord_metadata_service.mohpackets.models import ( - Biomarker, - Chemotherapy, - Comorbidity, - Donor, - Exposure, - FollowUp, - HormoneTherapy, - Immunotherapy, - PrimaryDiagnosis, - Program, - Radiation, - SampleRegistration, - Specimen, - Surgery, - Treatment, -) - -""" - This module contains the FILTERS for the models in the mohpackets app. - Filtering data changes queryset that is used to build a custom API response. - For example, we can filter the results by "male" or "female". - - We use the FilterSet class, which can automatically pick up fields from - a model and allow simple equality-based filtering, and we can add custom - fields with more complex rules. For reference, see: - https://django-filter.readthedocs.io/en/stable/ref/filterset.html -""" - - -class ProgramFilter(filters.FilterSet): - class Meta: - model = Program - fields = ["program_id"] - - -class DonorFilter(filters.FilterSet): - # custom filters - # NOTE: DonorFilter class is a special case that is allowed to be filtered by multiple ids - # with case-insensitive matching since most of the queries happen here. - # For example, writing either ID TREATMENT_1 or treatment_1 is acceptable. - # Other class filters are not allowed to do this. - - primary_site = filters.CharFilter(lookup_expr="icontains") - age = filters.NumberFilter(field_name="date_of_birth", method="filter_age") - max_age = filters.NumberFilter(field_name="date_of_birth", method="filter_age__lt") - min_age = filters.NumberFilter(field_name="date_of_birth", method="filter_age__gt") - donors = filters.CharFilter(method="filter_donors") - primary_diagnosis = filters.CharFilter(method="filter_primary_diagnosis") - speciman = filters.CharFilter(method="filter_specimen") - treatment = filters.CharFilter(method="filter_treatment") - chemotherapy = filters.CharFilter(method="filter_chemotherapy") - hormone_therapy = filters.CharFilter(method="filter_hormone_therapy") - radiation = filters.CharFilter(method="filter_radiation") - immunotherapy = filters.CharFilter(method="filter_immunotherapy") - surgery = filters.CharFilter(method="filter_surgery") - follow_up = filters.CharFilter(method="filter_follow_up") - biomarker = filters.CharFilter(method="filter_biomarker") - comorbidity = filters.CharFilter(method="filter_comorbidity") - exposure = filters.CharFilter(method="filter_exposure") - - def filter_donors(self, queryset, name, value): - """ - This function allows us to filter by multiple donor ids. - Since we cannot use "iexact" together with "in" filter, - we have to convert it to a list of Q objects like this: - MyModel.objects.filter(Q(name__iexact='Alpha') | Q(name__iexact='bEtA') | ...) - """ - donor_ids_list = [x.strip() for x in value.split(",")] - q_list = map(lambda n: Q(pk__iexact=n), donor_ids_list) - q_list = functools.reduce(lambda a, b: a | b, q_list) - return queryset.filter(q_list) - - def filter_primary_diagnosis(self, queryset, name, value): - return queryset.filter(primarydiagnosis__pk__iexact=value) - - def filter_specimen(self, queryset, name, value): - return queryset.filter(specimen__pk__iexact=value) - - def filter_treatment(self, queryset, name, value): - return queryset.filter(treatment__pk__iexact=value) - - def filter_chemotherapy(self, queryset, name, value): - return queryset.filter(chemotherapy__pk__iexact=value) - - def filter_hormone_therapy(self, queryset, name, value): - return queryset.filter(hormonetherapy__pk__iexact=value) - - def filter_radiation(self, queryset, name, value): - return queryset.filter(radiation__pk__iexact=value) - - def filter_immunotherapy(self, queryset, name, value): - return queryset.filter(immunotherapy__pk__iexact=value) - - def filter_surgery(self, queryset, name, value): - return queryset.filter(surgery__pk__iexact=value) - - def filter_follow_up(self, queryset, name, value): - return queryset.filter(followup__pk__iexact=value) - - def filter_biomarker(self, queryset, name, value): - return queryset.filter(biomarker__pk__iexact=value) - - def filter_comorbidity(self, queryset, name, value): - return queryset.filter(comorbidity__pk__iexact=value) - - def filter_exposure(self, queryset, name, value): - return queryset.filter(exposure__pk__iexact=value) - - def filter_age(self, queryset, name, value): - """ - Since date_of_birth is a CharField, we can't use the built-in filter. - We do it by looking up if date_of_birth contains a particular year. eg 1971 - """ - year = datetime.datetime.now().year - int(value) - return queryset.filter(date_of_birth__icontains=year) - - def filter_age__lt(self, queryset, name, value): - """ - Since date_of_birth is a CharField, we can't use the built-in filter. - We do it by looking up if date_of_birth contains any year in the range - from the current year to the specified year. eg [1971,1972,1973,...] - """ - year = datetime.datetime.now().year - int(value) - years = [year for year in range(year, datetime.datetime.now().year)] - # this is a fancy way to write - # Q(name__contains=list[0]) | Q(name__contains=list[1]) | ... | Q(name__contains=list[-1]) - query = functools.reduce( - lambda x, y: x | y, [Q(date_of_birth__icontains=year) for year in years] - ) - - return queryset.filter(query) - - def filter_age__gt(self, queryset, name, value): - """ - Since date_of_birth is a CharField, we can't use the built-in filter. - We do it by looking up if date_of_birth contains any year in the range - from 1900 to the specified year. eg [1900,1901,1902,...] - """ - year = datetime.datetime.now().year - int(value) - years = [year for year in range(1900, year)] - query = functools.reduce( - lambda x, y: x | y, [Q(date_of_birth__icontains=year) for year in years] - ) - - return queryset.filter(query) - - class Meta: - model = Donor - fields = "__all__" - - -class SpecimenFilter(filters.FilterSet): - class Meta: - model = Specimen - fields = "__all__" - - -class SampleRegistrationFilter(filters.FilterSet): - class Meta: - model = SampleRegistration - fields = "__all__" - - -class PrimaryDiagnosisFilter(filters.FilterSet): - class Meta: - model = PrimaryDiagnosis - fields = "__all__" - - -class TreatmentFilter(filters.FilterSet): - treatment_type = filters.CharFilter(lookup_expr="icontains") - - class Meta: - model = Treatment - fields = "__all__" - - -class ChemotherapyFilter(filters.FilterSet): - class Meta: - model = Chemotherapy - fields = "__all__" - - -class HormoneTherapyFilter(filters.FilterSet): - class Meta: - model = HormoneTherapy - fields = "__all__" - - -class RadiationFilter(filters.FilterSet): - class Meta: - model = Radiation - fields = "__all__" - - -class ImmunotherapyFilter(filters.FilterSet): - class Meta: - model = Immunotherapy - fields = "__all__" - - -class SurgeryFilter(filters.FilterSet): - margin_types_involved = filters.CharFilter(lookup_expr="icontains") - margin_types_not_involved = filters.CharFilter(lookup_expr="icontains") - margin_types_not_assessed = filters.CharFilter(lookup_expr="icontains") - - class Meta: - model = Surgery - fields = "__all__" - - -class FollowUpFilter(filters.FilterSet): - method_of_progression_status = filters.CharFilter(lookup_expr="icontains") - anatomic_site_progression_or_recurrence = filters.CharFilter( - lookup_expr="icontains" - ) - - class Meta: - model = FollowUp - fields = "__all__" - - -class BiomarkerFilter(filters.FilterSet): - hpv_strain = filters.CharFilter(lookup_expr="icontains") - - class Meta: - model = Biomarker - fields = "__all__" - - -class ComorbidityFilter(filters.FilterSet): - class Meta: - model = Comorbidity - fields = "__all__" - - -class ExposureFilter(filters.FilterSet): - tobacco_type = filters.CharFilter(lookup_expr="icontains") - - class Meta: - model = Exposure - fields = "__all__" diff --git a/chord_metadata_service/mohpackets/migrations/0001_initial.py b/chord_metadata_service/mohpackets/migrations/0001_initial.py index c347b7345..d4d616a0e 100644 --- a/chord_metadata_service/mohpackets/migrations/0001_initial.py +++ b/chord_metadata_service/mohpackets/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.3 on 2023-09-08 17:08 +# Generated by Django 4.2.3 on 2023-11-23 16:26 import chord_metadata_service.mohpackets.models import django.contrib.postgres.fields @@ -19,7 +19,8 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Donor', fields=[ - ('submitter_donor_id', models.CharField(max_length=64, primary_key=True, serialize=False)), + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_donor_id', models.CharField(max_length=64)), ('gender', models.CharField(blank=True, max_length=32, null=True)), ('sex_at_birth', models.CharField(blank=True, max_length=32, null=True)), ('is_deceased', models.BooleanField(blank=True, null=True)), @@ -38,7 +39,9 @@ class Migration(migrations.Migration): migrations.CreateModel( name='PrimaryDiagnosis', fields=[ - ('submitter_primary_diagnosis_id', models.CharField(max_length=64, primary_key=True, serialize=False)), + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_primary_diagnosis_id', models.CharField(blank=True, max_length=64, null=True)), + ('submitter_donor_id', models.CharField(blank=True, max_length=64, null=True)), ('date_of_diagnosis', models.CharField(blank=True, max_length=32, null=True)), ('cancer_type_code', models.CharField(blank=True, max_length=64, null=True)), ('basis_of_diagnosis', models.CharField(blank=True, max_length=128, null=True)), @@ -51,6 +54,7 @@ class Migration(migrations.Migration): ('clinical_n_category', models.CharField(blank=True, max_length=64, null=True)), ('clinical_m_category', models.CharField(blank=True, max_length=64, null=True)), ('clinical_stage_group', models.CharField(blank=True, max_length=64, null=True)), + ('donor_uuid', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), ], options={ 'ordering': ['submitter_primary_diagnosis_id'], @@ -71,7 +75,10 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Treatment', fields=[ - ('submitter_treatment_id', models.CharField(max_length=64, primary_key=True, serialize=False)), + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_treatment_id', models.CharField(max_length=64)), + ('submitter_donor_id', models.CharField(max_length=64)), + ('submitter_primary_diagnosis_id', models.CharField(max_length=64)), ('treatment_type', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=255), blank=True, null=True, size=None)), ('is_primary_treatment', models.CharField(blank=True, max_length=32, null=True)), ('line_of_treatment', models.IntegerField(blank=True, null=True)), @@ -84,18 +91,21 @@ class Migration(migrations.Migration): ('response_to_treatment_criteria_method', models.CharField(blank=True, max_length=255, null=True)), ('response_to_treatment', models.CharField(blank=True, max_length=255, null=True)), ('status_of_treatment', models.CharField(blank=True, max_length=255, null=True)), + ('donor_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), + ('primary_diagnosis_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.primarydiagnosis')), ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), - ('submitter_donor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), - ('submitter_primary_diagnosis_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.primarydiagnosis')), ], options={ 'ordering': ['submitter_treatment_id'], + 'unique_together': {('program_id', 'submitter_treatment_id')}, }, ), migrations.CreateModel( name='Surgery', fields=[ - ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_donor_id', models.CharField(max_length=64)), + ('submitter_treatment_id', models.CharField(max_length=64)), ('submitter_specimen_id', models.CharField(blank=True, max_length=64, null=True)), ('surgery_type', models.CharField(blank=True, max_length=255, null=True)), ('surgery_site', models.CharField(blank=True, max_length=255, null=True)), @@ -110,18 +120,21 @@ class Migration(migrations.Migration): ('margin_types_not_assessed', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=128, null=True), blank=True, null=True, size=None)), ('lymphovascular_invasion', models.CharField(blank=True, max_length=255, null=True)), ('perineural_invasion', models.CharField(blank=True, max_length=128, null=True)), + ('donor_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), - ('submitter_donor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), - ('submitter_treatment_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.treatment')), + ('treatment_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.treatment')), ], options={ - 'ordering': ['id'], + 'ordering': ['uuid'], }, ), migrations.CreateModel( name='Specimen', fields=[ - ('submitter_specimen_id', models.CharField(max_length=64, primary_key=True, serialize=False)), + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_specimen_id', models.CharField(max_length=64)), + ('submitter_donor_id', models.CharField(max_length=64)), + ('submitter_primary_diagnosis_id', models.CharField(max_length=64)), ('pathological_tumour_staging_system', models.CharField(blank=True, max_length=255, null=True)), ('pathological_t_category', models.CharField(blank=True, max_length=64, null=True)), ('pathological_n_category', models.CharField(blank=True, max_length=64, null=True)), @@ -139,34 +152,21 @@ class Migration(migrations.Migration): ('tumour_grade', models.CharField(blank=True, max_length=64, null=True)), ('percent_tumour_cells_range', models.CharField(blank=True, max_length=64, null=True)), ('percent_tumour_cells_measurement_method', models.CharField(blank=True, max_length=64, null=True)), + ('donor_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), + ('primary_diagnosis_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.primarydiagnosis')), ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), - ('submitter_donor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), - ('submitter_primary_diagnosis_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.primarydiagnosis')), ], options={ 'ordering': ['submitter_specimen_id'], - }, - ), - migrations.CreateModel( - name='SampleRegistration', - fields=[ - ('submitter_sample_id', models.CharField(max_length=64, primary_key=True, serialize=False)), - ('specimen_tissue_source', models.CharField(blank=True, max_length=255, null=True)), - ('tumour_normal_designation', models.CharField(blank=True, max_length=32, null=True)), - ('specimen_type', models.CharField(blank=True, max_length=255, null=True)), - ('sample_type', models.CharField(blank=True, max_length=128, null=True)), - ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), - ('submitter_donor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), - ('submitter_specimen_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.specimen')), - ], - options={ - 'ordering': ['submitter_sample_id'], + 'unique_together': {('program_id', 'submitter_specimen_id')}, }, ), migrations.CreateModel( name='Radiation', fields=[ - ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_donor_id', models.CharField(max_length=64)), + ('submitter_treatment_id', models.CharField(max_length=64)), ('radiation_therapy_modality', models.CharField(blank=True, max_length=255, null=True)), ('radiation_therapy_type', models.CharField(blank=True, max_length=64, null=True)), ('radiation_therapy_fractions', models.PositiveSmallIntegerField(blank=True, null=True)), @@ -174,12 +174,12 @@ class Migration(migrations.Migration): ('anatomical_site_irradiated', models.CharField(blank=True, max_length=255, null=True)), ('radiation_boost', models.BooleanField(blank=True, null=True)), ('reference_radiation_treatment_id', models.CharField(blank=True, max_length=64, null=True)), + ('donor_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), - ('submitter_donor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), - ('submitter_treatment_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.treatment')), + ('treatment_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.treatment')), ], options={ - 'ordering': ['id'], + 'ordering': ['uuid'], }, ), migrations.AddField( @@ -187,15 +187,12 @@ class Migration(migrations.Migration): name='program_id', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program'), ), - migrations.AddField( - model_name='primarydiagnosis', - name='submitter_donor_id', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor'), - ), migrations.CreateModel( name='Immunotherapy', fields=[ - ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_donor_id', models.CharField(max_length=64)), + ('submitter_treatment_id', models.CharField(max_length=64)), ('drug_reference_database', models.CharField(blank=True, max_length=64, null=True)), ('immunotherapy_type', models.CharField(blank=True, max_length=255, null=True)), ('drug_name', models.CharField(blank=True, max_length=255, null=True)), @@ -203,66 +200,48 @@ class Migration(migrations.Migration): ('immunotherapy_drug_dose_units', models.CharField(blank=True, max_length=64, null=True)), ('prescribed_cumulative_drug_dose', models.PositiveSmallIntegerField(blank=True, null=True)), ('actual_cumulative_drug_dose', models.PositiveSmallIntegerField(blank=True, null=True)), + ('donor_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), - ('submitter_donor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), - ('submitter_treatment_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.treatment')), + ('treatment_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.treatment')), ], options={ - 'ordering': ['id'], + 'ordering': ['uuid'], }, ), migrations.CreateModel( name='HormoneTherapy', fields=[ - ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_donor_id', models.CharField(max_length=64)), + ('submitter_treatment_id', models.CharField(max_length=64)), ('drug_reference_database', models.CharField(blank=True, max_length=64, null=True)), ('drug_name', models.CharField(blank=True, max_length=255, null=True)), ('drug_reference_identifier', models.CharField(blank=True, max_length=64, null=True)), ('hormone_drug_dose_units', models.CharField(blank=True, max_length=64, null=True)), ('prescribed_cumulative_drug_dose', models.PositiveSmallIntegerField(blank=True, null=True)), ('actual_cumulative_drug_dose', models.PositiveSmallIntegerField(blank=True, null=True)), + ('donor_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), - ('submitter_donor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), - ('submitter_treatment_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.treatment')), - ], - options={ - 'ordering': ['id'], - }, - ), - migrations.CreateModel( - name='FollowUp', - fields=[ - ('submitter_follow_up_id', models.CharField(max_length=64, primary_key=True, serialize=False)), - ('date_of_followup', models.CharField(blank=True, max_length=32, null=True)), - ('disease_status_at_followup', models.CharField(blank=True, max_length=255, null=True)), - ('relapse_type', models.CharField(blank=True, max_length=128, null=True)), - ('date_of_relapse', models.CharField(blank=True, max_length=32, null=True)), - ('method_of_progression_status', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=255, null=True), blank=True, null=True, size=None)), - ('anatomic_site_progression_or_recurrence', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=255, null=True), blank=True, null=True, size=None)), - ('recurrence_tumour_staging_system', models.CharField(blank=True, max_length=255, null=True)), - ('recurrence_t_category', models.CharField(blank=True, max_length=32, null=True)), - ('recurrence_n_category', models.CharField(blank=True, max_length=32, null=True)), - ('recurrence_m_category', models.CharField(blank=True, max_length=32, null=True)), - ('recurrence_stage_group', models.CharField(blank=True, max_length=64, null=True)), - ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), - ('submitter_donor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), - ('submitter_primary_diagnosis_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='mohpackets.primarydiagnosis')), - ('submitter_treatment_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='mohpackets.treatment')), + ('treatment_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.treatment')), ], options={ - 'ordering': ['submitter_follow_up_id'], + 'ordering': ['uuid'], }, ), migrations.CreateModel( name='Exposure', fields=[ - ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_donor_id', models.CharField(max_length=64)), ('tobacco_smoking_status', models.CharField(blank=True, max_length=255, null=True)), ('tobacco_type', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=128, null=True), blank=True, null=True, size=None)), ('pack_years_smoked', models.FloatField(blank=True, null=True)), + ('donor_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), - ('submitter_donor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), ], + options={ + 'ordering': ['uuid'], + }, ), migrations.AddField( model_name='donor', @@ -272,42 +251,46 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Comorbidity', fields=[ - ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_donor_id', models.CharField(max_length=64)), ('prior_malignancy', models.CharField(blank=True, max_length=32, null=True)), ('laterality_of_prior_malignancy', models.CharField(blank=True, max_length=64, null=True)), ('age_at_comorbidity_diagnosis', models.PositiveSmallIntegerField(blank=True, null=True)), ('comorbidity_type_code', models.CharField(blank=True, max_length=64, null=True)), ('comorbidity_treatment_status', models.CharField(blank=True, max_length=32, null=True)), ('comorbidity_treatment', models.CharField(blank=True, max_length=255, null=True)), + ('donor_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), - ('submitter_donor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), ], options={ - 'ordering': ['id'], + 'ordering': ['uuid'], }, ), migrations.CreateModel( name='Chemotherapy', fields=[ - ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_donor_id', models.CharField(max_length=64)), + ('submitter_treatment_id', models.CharField(max_length=64)), ('drug_reference_database', models.CharField(blank=True, max_length=64, null=True)), ('drug_name', models.CharField(blank=True, max_length=255, null=True)), ('drug_reference_identifier', models.CharField(blank=True, max_length=64, null=True)), ('chemotherapy_drug_dose_units', models.CharField(blank=True, max_length=64, null=True)), ('prescribed_cumulative_drug_dose', models.PositiveSmallIntegerField(blank=True, null=True)), ('actual_cumulative_drug_dose', models.PositiveSmallIntegerField(blank=True, null=True)), + ('donor_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), - ('submitter_donor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), - ('submitter_treatment_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.treatment')), + ('treatment_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.treatment')), ], options={ - 'ordering': ['id'], + 'ordering': ['uuid'], }, ), migrations.CreateModel( name='Biomarker', fields=[ - ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_donor_id', models.CharField(max_length=64)), ('submitter_specimen_id', models.CharField(blank=True, max_length=64, null=True)), ('submitter_primary_diagnosis_id', models.CharField(blank=True, max_length=64, null=True)), ('submitter_treatment_id', models.CharField(blank=True, max_length=64, null=True)), @@ -325,11 +308,68 @@ class Migration(migrations.Migration): ('hpv_ihc_status', models.CharField(blank=True, max_length=64, null=True)), ('hpv_pcr_status', models.CharField(blank=True, max_length=64, null=True)), ('hpv_strain', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=32, null=True), blank=True, null=True, size=None)), + ('donor_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), + ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), + ], + options={ + 'ordering': ['uuid'], + }, + ), + migrations.CreateModel( + name='SampleRegistration', + fields=[ + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_sample_id', models.CharField(max_length=64)), + ('submitter_donor_id', models.CharField(max_length=64)), + ('submitter_specimen_id', models.CharField(max_length=64)), + ('specimen_tissue_source', models.CharField(blank=True, max_length=255, null=True)), + ('tumour_normal_designation', models.CharField(blank=True, max_length=32, null=True)), + ('specimen_type', models.CharField(blank=True, max_length=255, null=True)), + ('sample_type', models.CharField(blank=True, max_length=128, null=True)), + ('donor_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), + ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), + ('specimen_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.specimen')), + ], + options={ + 'ordering': ['submitter_sample_id'], + 'unique_together': {('program_id', 'submitter_sample_id')}, + }, + ), + migrations.AlterUniqueTogether( + name='primarydiagnosis', + unique_together={('program_id', 'submitter_primary_diagnosis_id')}, + ), + migrations.CreateModel( + name='FollowUp', + fields=[ + ('uuid', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), + ('submitter_follow_up_id', models.CharField(max_length=64)), + ('submitter_donor_id', models.CharField(max_length=64)), + ('submitter_primary_diagnosis_id', models.CharField(blank=True, max_length=64, null=True)), + ('submitter_treatment_id', models.CharField(blank=True, max_length=64, null=True)), + ('date_of_followup', models.CharField(blank=True, max_length=32, null=True)), + ('disease_status_at_followup', models.CharField(blank=True, max_length=255, null=True)), + ('relapse_type', models.CharField(blank=True, max_length=128, null=True)), + ('date_of_relapse', models.CharField(blank=True, max_length=32, null=True)), + ('method_of_progression_status', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=255, null=True), blank=True, null=True, size=None)), + ('anatomic_site_progression_or_recurrence', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=255, null=True), blank=True, null=True, size=None)), + ('recurrence_tumour_staging_system', models.CharField(blank=True, max_length=255, null=True)), + ('recurrence_t_category', models.CharField(blank=True, max_length=32, null=True)), + ('recurrence_n_category', models.CharField(blank=True, max_length=32, null=True)), + ('recurrence_m_category', models.CharField(blank=True, max_length=32, null=True)), + ('recurrence_stage_group', models.CharField(blank=True, max_length=64, null=True)), + ('donor_uuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), + ('primary_diagnosis_uuid', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='mohpackets.primarydiagnosis')), ('program_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.program')), - ('submitter_donor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mohpackets.donor')), + ('treatment_uuid', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='mohpackets.treatment')), ], options={ - 'ordering': ['id'], + 'ordering': ['submitter_follow_up_id'], + 'unique_together': {('program_id', 'submitter_follow_up_id')}, }, ), + migrations.AlterUniqueTogether( + name='donor', + unique_together={('program_id', 'submitter_donor_id')}, + ), ] diff --git a/chord_metadata_service/mohpackets/models.py b/chord_metadata_service/mohpackets/models.py index 1d900a1f5..f6e552cee 100644 --- a/chord_metadata_service/mohpackets/models.py +++ b/chord_metadata_service/mohpackets/models.py @@ -5,19 +5,16 @@ from django.utils import timezone """ - This module contains the MODELS for the Marathon of Hope app. - -------------------------------- - MOHCCN Clinical Data Model V2: Data Standards Sub-Committee (DSC) - Model Schema (Excel): https://www.marathonofhopecancercentres.ca/docs/default-source/policies-and-guidelines/moh-clinical-data-model-v2---feb-202381759e70b6034dcfa0b7bde4174e9822.xlsx?Status=Master&sfvrsn=2932cab_7 # noqa: E501 + Marathon of Hope MODELS module containing MOHCCN Clinical Data Model V2. + + Model Schema: https://www.marathonofhopecancercentres.ca/docs/default-source/policies-and-guidelines/moh-clinical-data-model-v2---feb-202381759e70b6034dcfa0b7bde4174e9822.xlsx?Status=Master&sfvrsn=2932cab_7 # noqa: E501 ER Diagram: https://www.marathonofhopecancercentres.ca/docs/default-source/policies-and-guidelines/mohccn_data_standard_er_diagram_endorsed6oct22.pdf?Status=Master&sfvrsn=dd57a75e_5 # noqa: E501 - Schema last updated: Feb 15, 2023 - -------------------------------- - NOTES: - - Permissible values are not enforced in the model. - They are checked in the serializer and ingest process. - - - It is important to have a __str__ method to return just the ID as - the validator regex relies on this for primary key validation. + + Note: UUID and FK fields are added to the original Model Schema. + For the list of changes, see "Notes on the changes from the Entity Model (ER)" + on Confluence page. + + Author: Son Chau """ @@ -45,7 +42,8 @@ def __str__(self): class Donor(models.Model): - submitter_donor_id = models.CharField(max_length=64, primary_key=True) + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) + submitter_donor_id = models.CharField(max_length=64, null=False, blank=False) program_id = models.ForeignKey( Program, on_delete=models.CASCADE, null=False, blank=False ) @@ -67,20 +65,25 @@ class Donor(models.Model): ) class Meta: + unique_together = ["program_id", "submitter_donor_id"] ordering = ["submitter_donor_id"] def __str__(self): - return f"{self.submitter_donor_id}" + return f"{self.program_id}: {self.submitter_donor_id}" class PrimaryDiagnosis(models.Model): - submitter_primary_diagnosis_id = models.CharField(max_length=64, primary_key=True) + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) program_id = models.ForeignKey( Program, on_delete=models.CASCADE, null=False, blank=False ) - submitter_donor_id = models.ForeignKey( - Donor, on_delete=models.CASCADE, null=False, blank=False + donor_uuid = models.ForeignKey( + Donor, on_delete=models.CASCADE, null=True, blank=True ) + submitter_primary_diagnosis_id = models.CharField( + max_length=64, null=True, blank=True + ) + submitter_donor_id = models.CharField(max_length=64, null=True, blank=True) date_of_diagnosis = models.CharField(max_length=32, null=True, blank=True) cancer_type_code = models.CharField(max_length=64, null=True, blank=True) basis_of_diagnosis = models.CharField(max_length=128, null=True, blank=True) @@ -101,23 +104,29 @@ class PrimaryDiagnosis(models.Model): clinical_stage_group = models.CharField(max_length=64, null=True, blank=True) class Meta: + unique_together = ["program_id", "submitter_primary_diagnosis_id"] ordering = ["submitter_primary_diagnosis_id"] def __str__(self): - return f"{self.submitter_primary_diagnosis_id}" + return f"{self.program_id}: {self.submitter_primary_diagnosis_id}" class Specimen(models.Model): - submitter_specimen_id = models.CharField(max_length=64, primary_key=True) - program_id = models.ForeignKey( - Program, on_delete=models.CASCADE, null=False, blank=False - ) - submitter_donor_id = models.ForeignKey( + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) + donor_uuid = models.ForeignKey( Donor, on_delete=models.CASCADE, null=False, blank=False ) - submitter_primary_diagnosis_id = models.ForeignKey( + primary_diagnosis_uuid = models.ForeignKey( PrimaryDiagnosis, on_delete=models.CASCADE, null=False, blank=False ) + submitter_specimen_id = models.CharField(max_length=64, null=False, blank=False) + program_id = models.ForeignKey( + Program, on_delete=models.CASCADE, null=False, blank=False + ) + submitter_donor_id = models.CharField(max_length=64, null=False, blank=False) + submitter_primary_diagnosis_id = models.CharField( + max_length=64, null=False, blank=False + ) pathological_tumour_staging_system = models.CharField( max_length=255, null=True, blank=True ) @@ -145,46 +154,56 @@ class Specimen(models.Model): ) class Meta: + unique_together = ["program_id", "submitter_specimen_id"] ordering = ["submitter_specimen_id"] def __str__(self): - return f"{self.submitter_specimen_id}" + return f"{self.program_id}: {self.submitter_specimen_id}" class SampleRegistration(models.Model): - submitter_sample_id = models.CharField(max_length=64, primary_key=True) - program_id = models.ForeignKey( - Program, on_delete=models.CASCADE, null=False, blank=False - ) - submitter_donor_id = models.ForeignKey( + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) + donor_uuid = models.ForeignKey( Donor, on_delete=models.CASCADE, null=False, blank=False ) - submitter_specimen_id = models.ForeignKey( + specimen_uuid = models.ForeignKey( Specimen, on_delete=models.CASCADE, null=False, blank=False ) + submitter_sample_id = models.CharField(max_length=64, null=False, blank=False) + program_id = models.ForeignKey( + Program, on_delete=models.CASCADE, null=False, blank=False + ) + submitter_donor_id = models.CharField(max_length=64, null=False, blank=False) + submitter_specimen_id = models.CharField(max_length=64, null=False, blank=False) specimen_tissue_source = models.CharField(max_length=255, null=True, blank=True) tumour_normal_designation = models.CharField(max_length=32, null=True, blank=True) specimen_type = models.CharField(max_length=255, null=True, blank=True) sample_type = models.CharField(max_length=128, null=True, blank=True) class Meta: + unique_together = ["program_id", "submitter_sample_id"] ordering = ["submitter_sample_id"] def __str__(self): - return f"{self.submitter_sample_id}" + return f"{self.program_id}: {self.submitter_sample_id}" class Treatment(models.Model): - submitter_treatment_id = models.CharField(max_length=64, primary_key=True) - program_id = models.ForeignKey( - Program, on_delete=models.CASCADE, null=False, blank=False - ) - submitter_donor_id = models.ForeignKey( + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) + donor_uuid = models.ForeignKey( Donor, on_delete=models.CASCADE, null=False, blank=False ) - submitter_primary_diagnosis_id = models.ForeignKey( + primary_diagnosis_uuid = models.ForeignKey( PrimaryDiagnosis, on_delete=models.CASCADE, null=False, blank=False ) + submitter_treatment_id = models.CharField(max_length=64, null=False, blank=False) + program_id = models.ForeignKey( + Program, on_delete=models.CASCADE, null=False, blank=False + ) + submitter_donor_id = models.CharField(max_length=64, null=False, blank=False) + submitter_primary_diagnosis_id = models.CharField( + max_length=64, null=False, blank=False + ) treatment_type = ArrayField(models.CharField(max_length=255), null=True, blank=True) is_primary_treatment = models.CharField(max_length=32, null=True, blank=True) line_of_treatment = models.IntegerField(null=True, blank=True) @@ -201,23 +220,26 @@ class Treatment(models.Model): status_of_treatment = models.CharField(max_length=255, null=True, blank=True) class Meta: + unique_together = ["program_id", "submitter_treatment_id"] ordering = ["submitter_treatment_id"] def __str__(self): - return f"{self.submitter_treatment_id}" + return f"{self.program_id}: {self.submitter_treatment_id}" class Chemotherapy(models.Model): - id = models.UUIDField(primary_key=True, default=uuid.uuid4) - program_id = models.ForeignKey( - Program, on_delete=models.CASCADE, null=False, blank=False - ) - submitter_donor_id = models.ForeignKey( + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) + donor_uuid = models.ForeignKey( Donor, on_delete=models.CASCADE, null=False, blank=False ) - submitter_treatment_id = models.ForeignKey( + treatment_uuid = models.ForeignKey( Treatment, on_delete=models.CASCADE, null=False, blank=False ) + program_id = models.ForeignKey( + Program, on_delete=models.CASCADE, null=False, blank=False + ) + submitter_donor_id = models.CharField(max_length=64, null=False, blank=False) + submitter_treatment_id = models.CharField(max_length=64, null=False, blank=False) drug_reference_database = models.CharField(max_length=64, null=True, blank=True) drug_name = models.CharField(max_length=255, null=True, blank=True) drug_reference_identifier = models.CharField(max_length=64, null=True, blank=True) @@ -232,23 +254,25 @@ class Chemotherapy(models.Model): ) class Meta: - ordering = ["id"] + ordering = ["uuid"] def __str__(self): - return f"{self.id}" + return f"{self.program_id}: {self.submitter_treatment_id}" class HormoneTherapy(models.Model): - id = models.UUIDField(primary_key=True, default=uuid.uuid4) - program_id = models.ForeignKey( - Program, on_delete=models.CASCADE, null=False, blank=False - ) - submitter_donor_id = models.ForeignKey( + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) + donor_uuid = models.ForeignKey( Donor, on_delete=models.CASCADE, null=False, blank=False ) - submitter_treatment_id = models.ForeignKey( + treatment_uuid = models.ForeignKey( Treatment, on_delete=models.CASCADE, null=False, blank=False ) + program_id = models.ForeignKey( + Program, on_delete=models.CASCADE, null=False, blank=False + ) + submitter_donor_id = models.CharField(max_length=64, null=False, blank=False) + submitter_treatment_id = models.CharField(max_length=64, null=False, blank=False) drug_reference_database = models.CharField(max_length=64, null=True, blank=True) drug_name = models.CharField(max_length=255, null=True, blank=True) drug_reference_identifier = models.CharField(max_length=64, null=True, blank=True) @@ -261,23 +285,25 @@ class HormoneTherapy(models.Model): ) class Meta: - ordering = ["id"] + ordering = ["uuid"] def __str__(self): - return f"{self.id}" + return f"{self.program_id}: {self.submitter_treatment_id}" class Radiation(models.Model): - id = models.UUIDField(primary_key=True, default=uuid.uuid4) - program_id = models.ForeignKey( - Program, on_delete=models.CASCADE, null=False, blank=False - ) - submitter_donor_id = models.ForeignKey( + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) + donor_uuid = models.ForeignKey( Donor, on_delete=models.CASCADE, null=False, blank=False ) - submitter_treatment_id = models.ForeignKey( + treatment_uuid = models.ForeignKey( Treatment, on_delete=models.CASCADE, null=False, blank=False ) + program_id = models.ForeignKey( + Program, on_delete=models.CASCADE, null=False, blank=False + ) + submitter_donor_id = models.CharField(max_length=64, null=False, blank=False) + submitter_treatment_id = models.CharField(max_length=64, null=False, blank=False) radiation_therapy_modality = models.CharField(max_length=255, null=True, blank=True) radiation_therapy_type = models.CharField(max_length=64, null=True, blank=True) radiation_therapy_fractions = models.PositiveSmallIntegerField( @@ -291,23 +317,25 @@ class Radiation(models.Model): ) class Meta: - ordering = ["id"] + ordering = ["uuid"] def __str__(self): - return f"{self.id}" + return f"{self.program_id}: {self.submitter_treatment_id}" class Immunotherapy(models.Model): - id = models.UUIDField(primary_key=True, default=uuid.uuid4) - program_id = models.ForeignKey( - Program, on_delete=models.CASCADE, null=False, blank=False - ) - submitter_donor_id = models.ForeignKey( + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) + donor_uuid = models.ForeignKey( Donor, on_delete=models.CASCADE, null=False, blank=False ) - submitter_treatment_id = models.ForeignKey( + treatment_uuid = models.ForeignKey( Treatment, on_delete=models.CASCADE, null=False, blank=False ) + program_id = models.ForeignKey( + Program, on_delete=models.CASCADE, null=False, blank=False + ) + submitter_donor_id = models.CharField(max_length=64, null=False, blank=False) + submitter_treatment_id = models.CharField(max_length=64, null=False, blank=False) drug_reference_database = models.CharField(max_length=64, null=True, blank=True) immunotherapy_type = models.CharField(max_length=255, null=True, blank=True) drug_name = models.CharField(max_length=255, null=True, blank=True) @@ -323,23 +351,25 @@ class Immunotherapy(models.Model): ) class Meta: - ordering = ["id"] + ordering = ["uuid"] def __str__(self): - return f"{self.id}" + return f"{self.program_id}: {self.submitter_treatment_id}" class Surgery(models.Model): - id = models.UUIDField(primary_key=True, default=uuid.uuid4) - program_id = models.ForeignKey( - Program, on_delete=models.CASCADE, null=False, blank=False - ) - submitter_donor_id = models.ForeignKey( + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) + donor_uuid = models.ForeignKey( Donor, on_delete=models.CASCADE, null=False, blank=False ) - submitter_treatment_id = models.ForeignKey( + treatment_uuid = models.ForeignKey( Treatment, on_delete=models.CASCADE, null=False, blank=False ) + program_id = models.ForeignKey( + Program, on_delete=models.CASCADE, null=False, blank=False + ) + submitter_donor_id = models.CharField(max_length=64, null=False, blank=False) + submitter_treatment_id = models.CharField(max_length=64, null=False, blank=False) submitter_specimen_id = models.CharField(max_length=64, null=True, blank=True) surgery_type = models.CharField(max_length=255, null=True, blank=True) surgery_site = models.CharField(max_length=255, null=True, blank=True) @@ -364,26 +394,32 @@ class Surgery(models.Model): perineural_invasion = models.CharField(max_length=128, null=True, blank=True) class Meta: - ordering = ["id"] + ordering = ["uuid"] def __str__(self): - return f"{self.id}" + return f"{self.program_id}: {self.submitter_treatment_id}" class FollowUp(models.Model): - submitter_follow_up_id = models.CharField(max_length=64, primary_key=True) - program_id = models.ForeignKey( - Program, on_delete=models.CASCADE, null=False, blank=False - ) - submitter_donor_id = models.ForeignKey( + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) + donor_uuid = models.ForeignKey( Donor, on_delete=models.CASCADE, null=False, blank=False ) - submitter_primary_diagnosis_id = models.ForeignKey( - PrimaryDiagnosis, on_delete=models.SET_NULL, blank=True, null=True + treatment_uuid = models.ForeignKey( + Treatment, on_delete=models.CASCADE, null=True, blank=True + ) + primary_diagnosis_uuid = models.ForeignKey( + PrimaryDiagnosis, on_delete=models.CASCADE, null=True, blank=True + ) + submitter_follow_up_id = models.CharField(max_length=64, null=False, blank=False) + program_id = models.ForeignKey( + Program, on_delete=models.CASCADE, null=False, blank=False ) - submitter_treatment_id = models.ForeignKey( - Treatment, on_delete=models.SET_NULL, blank=True, null=True + submitter_donor_id = models.CharField(max_length=64, null=False, blank=False) + submitter_primary_diagnosis_id = models.CharField( + max_length=64, null=True, blank=True ) + submitter_treatment_id = models.CharField(max_length=64, null=True, blank=True) date_of_followup = models.CharField(max_length=32, null=True, blank=True) disease_status_at_followup = models.CharField(max_length=255, null=True, blank=True) relapse_type = models.CharField(max_length=128, null=True, blank=True) @@ -403,20 +439,22 @@ class FollowUp(models.Model): recurrence_stage_group = models.CharField(max_length=64, null=True, blank=True) class Meta: + unique_together = ["program_id", "submitter_follow_up_id"] ordering = ["submitter_follow_up_id"] def __str__(self): - return f"{self.submitter_follow_up_id}" + return f"{self.program_id}: {self.submitter_follow_up_id}" class Biomarker(models.Model): - id = models.UUIDField(primary_key=True, default=uuid.uuid4) + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) + donor_uuid = models.ForeignKey( + Donor, on_delete=models.CASCADE, null=False, blank=False + ) program_id = models.ForeignKey( Program, on_delete=models.CASCADE, null=False, blank=False ) - submitter_donor_id = models.ForeignKey( - Donor, on_delete=models.CASCADE, null=False, blank=False - ) + submitter_donor_id = models.CharField(max_length=64, null=False, blank=False) submitter_specimen_id = models.CharField(max_length=64, null=True, blank=True) submitter_primary_diagnosis_id = models.CharField( max_length=64, null=True, blank=True @@ -440,20 +478,21 @@ class Biomarker(models.Model): ) class Meta: - ordering = ["id"] + ordering = ["uuid"] def __str__(self): - return f"{self.id}" + return f"{self.program_id}: {self.submitter_donor_id}" class Comorbidity(models.Model): - id = models.UUIDField(primary_key=True, default=uuid.uuid4) + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) + donor_uuid = models.ForeignKey( + Donor, on_delete=models.CASCADE, null=False, blank=False + ) program_id = models.ForeignKey( Program, on_delete=models.CASCADE, null=False, blank=False ) - submitter_donor_id = models.ForeignKey( - Donor, on_delete=models.CASCADE, null=False, blank=False - ) + submitter_donor_id = models.CharField(max_length=64, null=False, blank=False) prior_malignancy = models.CharField(max_length=32, null=True, blank=True) laterality_of_prior_malignancy = models.CharField( max_length=64, null=True, blank=True @@ -468,22 +507,29 @@ class Comorbidity(models.Model): comorbidity_treatment = models.CharField(max_length=255, null=True, blank=True) class Meta: - ordering = ["id"] + ordering = ["uuid"] def __str__(self): - return f"{self.id}" + return f"{self.program_id}: {self.donor_uuid}" class Exposure(models.Model): - id = models.UUIDField(primary_key=True, default=uuid.uuid4) + uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) + donor_uuid = models.ForeignKey( + Donor, on_delete=models.CASCADE, null=False, blank=False + ) program_id = models.ForeignKey( Program, on_delete=models.CASCADE, null=False, blank=False ) - submitter_donor_id = models.ForeignKey( - Donor, on_delete=models.CASCADE, null=False, blank=False - ) + submitter_donor_id = models.CharField(max_length=64, null=False, blank=False) tobacco_smoking_status = models.CharField(max_length=255, null=True, blank=True) tobacco_type = ArrayField( models.CharField(max_length=128, null=True, blank=True), null=True, blank=True ) pack_years_smoked = models.FloatField(null=True, blank=True) + + class Meta: + ordering = ["uuid"] + + def __str__(self): + return f"{self.program_id}: {self.donor_uuid}" diff --git a/chord_metadata_service/mohpackets/pagination.py b/chord_metadata_service/mohpackets/pagination.py index ffeab0da3..a3207cca8 100644 --- a/chord_metadata_service/mohpackets/pagination.py +++ b/chord_metadata_service/mohpackets/pagination.py @@ -1,4 +1,10 @@ -from rest_framework.pagination import PageNumberPagination +from typing import Any, List, Optional + +from ninja import Field, Schema +from ninja.pagination import ( + PaginationBase, + RouterPaginated, +) """ This module contains the PAGINATION classes. It is used to @@ -10,16 +16,47 @@ The default page size is 100, and the maximum page size is 1000. + Author: Son Chau """ +DEFAULT_PAGE = 1 +DEFAULT_PAGE_SIZE = 100 + + +class CustomPagination(PaginationBase): + class Input(Schema): + page: int = Field(None, ge=1) + page_size: int = Field(None, ge=1) + + class Output(Schema): + items: List[Any] = [] + count: Optional[int] + next_page: Optional[int] + previous_page: Optional[int] + + def paginate_queryset(self, queryset, pagination: Input, **params): + pagination.page = pagination.page or DEFAULT_PAGE + pagination.page_size = pagination.page_size or DEFAULT_PAGE_SIZE + + offset = (pagination.page - 1) * pagination.page_size + + total_items = queryset.count() + items = list(queryset[offset : offset + pagination.page_size]) # noqa: E203 + + next_page = ( + pagination.page + 1 if offset + pagination.page_size < total_items else None + ) + previous_page = pagination.page - 1 if pagination.page > 1 else None -class StandardResultsSetPagination(PageNumberPagination): - page_size = 100 - page_size_query_param = "page_size" - max_page_size = 1000 + return { + "items": items, + "count": len(items), + "next_page": next_page, + "previous_page": previous_page, + } -class SmallResultsSetPagination(PageNumberPagination): - page_size = 10 - page_size_query_param = "page_size" - max_page_size = 1000 +class CustomRouterPaginated(RouterPaginated): + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + self.pagination_class = CustomPagination diff --git a/chord_metadata_service/mohpackets/permissible_values.py b/chord_metadata_service/mohpackets/permissible_values.py index ced1c36ca..41839f5ae 100644 --- a/chord_metadata_service/mohpackets/permissible_values.py +++ b/chord_metadata_service/mohpackets/permissible_values.py @@ -4,6 +4,8 @@ """ # Unknown + Boolean +from chord_metadata_service.mohpackets.utils import list_to_enum + UBOOLEAN = ["Yes", "No", "Unknown"] CAUSE_OF_DEATH = ["Died of cancer", "Died of other reasons", "Unknown"] @@ -1081,6 +1083,8 @@ "Unknown", "Waterpipe", ] +TUMOUR_DESIGNATION = ["Normal", "Tumour"] +THERAPY_TYPE = ["External", "Internal"] REGEX_PATTERNS = { # ID format @@ -1101,3 +1105,105 @@ # Examples: E10, C50.1, I11, M06 "COMORBIDITY": r"^[A-Z][0-9]{2}(.[0-9]{1,3}[A-Z]{0,1})?$", } + +# ID format +# Examples: 90234, BLD_donor_89, AML-90 +ID_REGEX_PATTERNS = r"^[A-Za-z0-9\-\._]{1,64}" + +# Date format +# A date, or partial date (e.g. just year or year + month) as used in +# human communication. The format is YYYY, YYYY-MM, or YYYY-MM-DD, +# e.g. 2018, 1973-06, or 1905-08-23. There SHALL be no time zone. +DATE_REGEX_PATTERNS = r"^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?" # noqa: E501 + +# ICD-O-3 morphology codes +# Examples: 8260/3, 9691/36 +MORPHOLOGY_REGEX_PATTERNS = r"^[8,9]{1}[0-9]{3}/[0,1,2,3,6,9]{1}[1-9]{0,1}$" + +# ICD-O-3 topography codes +# Examples: C50.1, C18 +TOPOGRAPHY_REGEX_PATTERNS = r"^[C][0-9]{2}(.[0-9]{1})?$" + +# WHO ICD-10 codes +# Examples: E10, C50.1, I11, M06 +COMORBIDITY_REGEX_PATTERNS = r"^[A-Z][0-9]{2}(.[0-9]{1,3}[A-Z]{0,1})?$" + +CauseOfDeathEnum = list_to_enum("CauseOfDeathEnum", CAUSE_OF_DEATH) +PrimarySiteEnum = list_to_enum("PrimarySiteEnum", PRIMARY_SITE) +uBooleanEnum = list_to_enum("uBooleanEnum", UBOOLEAN) +LostToFollowupReasonEnum = list_to_enum( + "LostToFollowupReasonEnum", LOST_TO_FOLLOWUP_REASON +) +TumourStagingSystemEnum = list_to_enum("TumourStagingSystemEnum", TUMOUR_STAGING_SYSTEM) +TCategoryEnum = list_to_enum("TCategoryEnum", T_CATEGORY) +NCategoryEnum = list_to_enum("NCategoryEnum", N_CATEGORY) +MCategoryEnum = list_to_enum("MCategoryEnum", M_CATEGORY) +StageGroupEnum = list_to_enum("StageGroupEnum", STAGE_GROUP) +StorageEnum = list_to_enum("StorageEnum", STORAGE) +SpecimenProcessingEnum = list_to_enum("SpecimenProcessingEnum", SPECIMEN_PROCESSING) +SpecimenLateralityEnum = list_to_enum("SpecimenLateralityEnum", SPECIMEN_LATERALITY) +PrimaryDiagnosisLateralityEnum = list_to_enum( + "PrimaryDiagnosisLateralityEnum", PRIMARY_DIAGNOSIS_LATERALITY +) +ConfirmedDiagnosisTumourEnum = list_to_enum( + "ConfirmedDiagnosisTumourEnum", CONFIRMED_DIAGNOSIS_TUMOUR +) +TumourGradingSystemEnum = list_to_enum("TumourGradingSystemEnum", TUMOUR_GRADING_SYSTEM) +TumourGradeEnum = list_to_enum("TumourGradeEnum", TUMOUR_GRADE) +PercentCellsRangeEnum = list_to_enum("PercentCellsRangeEnum", PERCENT_CELLS_RANGE) +CellsMeasureMethodEnum = list_to_enum("CellsMeasureMethodEnum", CELLS_MEASURE_METHOD) +GenderEnum = list_to_enum("GenderEnum", GENDER) +SexAtBirthEnum = list_to_enum("SexAtBirthEnum", SEX_AT_BIRTH) +SpecimenTissueSourceEnum = list_to_enum( + "SpecimenTissueSourceEnum", SPECIMEN_TISSUE_SOURCE +) +SpecimenTypeEnum = list_to_enum("SpecimenTypeEnum", SPECIMEN_TYPE) +SampleTypeEnum = list_to_enum("SampleTypeEnum", SAMPLE_TYPE) +BasisOfDiagnosisEnum = list_to_enum("BasisOfDiagnosisEnum", BASIS_OF_DIAGNOSIS) +LymphNodeStatusEnum = list_to_enum("LymphNodeStatusEnum", LYMPH_NODE_STATUS) +LymphNodeMethodEnum = list_to_enum("LymphNodeMethodEnum", LYMPH_NODE_METHOD) +TreatmentTypeEnum = list_to_enum("TreatmentTypeEnum", TREATMENT_TYPE) +TreatmentSettingEnum = list_to_enum("TreatmentSettingEnum", TREATMENT_SETTING) +TreatmentIntentEnum = list_to_enum("TreatmentIntentEnum", TREATMENT_INTENT) +TreatmentResponseMethodEnum = list_to_enum( + "TreatmentResponseMethodEnum", TREATMENT_RESPONSE_METHOD +) +TreatmentResponseEnum = list_to_enum("TreatmentResponseEnum", TREATMENT_RESPONSE) +TreatmentStatusEnum = list_to_enum("TreatmentStatusEnum", TREATMENT_STATUS) +DrugReferenceDbEnum = list_to_enum("DrugReferenceDbEnum", DRUG_REFERENCE_DB) +DosageUnitsEnum = list_to_enum("DosageUnitsEnum", DOSAGE_UNITS) +RadiationTherapyModalityEnum = list_to_enum( + "RadiationTherapyModalityEnum", RADIATION_THERAPY_MODALITY +) +RadiationAnatomicalSiteEnum = list_to_enum( + "RadiationAnatomicalSiteEnum", RADIATION_ANATOMICAL_SITE +) +ImmunotherapyTypeEnum = list_to_enum("ImmunotherapyTypeEnum", IMMUNOTHERAPY_TYPE) +SurgeryTypeEnum = list_to_enum("SurgeryTypeEnum", SURGERY_TYPE) +SurgeryLocationEnum = list_to_enum("SurgeryLocationEnum", SURGERY_LOCATION) +TumourFocalityEnum = list_to_enum("TumourFocalityEnum", TUMOUR_FOCALITY) +TumourClassificationEnum = list_to_enum( + "TumourClassificationEnum", TUMOUR_CLASSIFICATION +) +MarginTypesEnum = list_to_enum("MarginTypesEnum", MARGIN_TYPES) +LymphovascularInvasionEnum = list_to_enum( + "LymphovascularInvasionEnum", LYMPHOVACULAR_INVASION +) +PerineuralInvasionEnum = list_to_enum("PerineuralInvasionEnum", PERINEURAL_INVASION) +DiseaseStatusFollowupEnum = list_to_enum( + "DiseaseStatusFollowupEnum", DISEASE_STATUS_FOLLOWUP +) +RelapseTypeEnum = list_to_enum("RelapseTypeEnum", RELAPSE_TYPE) +ProgressionStatusMethodEnum = list_to_enum( + "ProgressionStatusMethodEnum", PROGRESSION_STATUS_METHOD +) +MalignancyLateralityEnum = list_to_enum( + "MalignancyLateralityEnum", MALIGNANCY_LATERALITY +) +ErPrHpvStatusEnum = list_to_enum("ErPrHpvStatusEnum", ER_PR_HPV_STATUS) +Her2StatusEnum = list_to_enum("Her2StatusEnum", HER2_STATUS) +HpvStrainEnum = list_to_enum("HpvStrainEnum", HPV_STRAIN) +SmokingStatusEnum = list_to_enum("SmokingStatusEnum", SMOKING_STATUS) +TobaccoTypeEnum = list_to_enum("TobaccoTypeEnum", TOBACCO_TYPE) +TumourDesginationEnum = list_to_enum("TumourDesginationEnum", TUMOUR_DESIGNATION) +TherapyTypeEnum = list_to_enum("TherapyTypeEnum", THERAPY_TYPE) diff --git a/chord_metadata_service/mohpackets/permissions.py b/chord_metadata_service/mohpackets/permissions.py deleted file mode 100644 index 999be1404..000000000 --- a/chord_metadata_service/mohpackets/permissions.py +++ /dev/null @@ -1,56 +0,0 @@ -import logging -import os - -from authx.auth import is_site_admin -from django.conf import settings -from rest_framework.authentication import get_authorization_header -from rest_framework.exceptions import AuthenticationFailed -from rest_framework.permissions import SAFE_METHODS, BasePermission - -logger = logging.getLogger(__name__) -""" - This module contains custom permission classes for the API. - By default, only allow superusers (site_admin) to make changes, and - non-superusers to only read. -""" - - -class CanDIGAdminOrReadOnly(BasePermission): - """ - The has_permission method determines if the user has permission to perform - the requested operation. - - If the requested is a safe method (GET, HEAD or OPTIONS), returns True. - If dev or prod environment, it checks if the user is a site admin. - Local environment always returns True. - """ - - def has_permission(self, request, view): - if request.method in SAFE_METHODS: - return True - else: - settings_module = os.environ.get("DJANGO_SETTINGS_MODULE") - if "dev" in settings_module or "prod" in settings_module: - opa_secret = settings.CANDIG_OPA_SECRET - try: - is_admin = is_site_admin( - request, - admin_secret=opa_secret, - ) - return is_admin - except Exception as e: - logger.exception(f"An error occurred in OPA is_site_admin: {e}") - raise Exception("Error checking roles from OPA.") - elif "local" in settings_module: - auth = get_authorization_header(request).split() - if not auth: - raise AuthenticationFailed("Authorization required") - token = auth[1].decode("utf-8") - is_admin = None - for d in settings.LOCAL_AUTHORIZED_DATASET: - if d["token"] == token: - is_admin = d["is_admin"] - break - if is_admin: - return True - return False diff --git a/chord_metadata_service/mohpackets/schemas/discovery.py b/chord_metadata_service/mohpackets/schemas/discovery.py new file mode 100644 index 000000000..b8c104e99 --- /dev/null +++ b/chord_metadata_service/mohpackets/schemas/discovery.py @@ -0,0 +1,17 @@ +from typing import Dict, List + +from ninja import Schema + +""" +Module with schema used for discovery response + +Author: Son Chau +""" + + +class ProgramDiscoverySchema(Schema): + cohort_list: List[str] + + +class DiscoverySchema(Schema): + donors_by_cohort: Dict[str, int] diff --git a/chord_metadata_service/mohpackets/schemas/filter.py b/chord_metadata_service/mohpackets/schemas/filter.py new file mode 100644 index 000000000..6467ac95a --- /dev/null +++ b/chord_metadata_service/mohpackets/schemas/filter.py @@ -0,0 +1,248 @@ +from typing import List, Optional + +from ninja import Field, FilterSchema + +""" +Module with schema used for filtering + +Author: Son Chau +""" + + +######################################## +# # +# FILTER SCHEMA # +# # +######################################## +class ProgramFilterSchema(FilterSchema): + program_id: Optional[str] = Field(None) + + +class DonorFilterSchema(FilterSchema): + submitter_donor_id: Optional[str] = Field(None) + program_id: Optional[str] = Field(None) + gender: Optional[str] = Field(None, q="gender__icontains") + sex_at_birth: Optional[str] = Field(None) + is_deceased: Optional[bool] = Field(None) + lost_to_followup_after_clinical_event_identifier: Optional[str] = Field(None) + lost_to_followup_reason: Optional[str] = Field(None) + date_alive_after_lost_to_followup: Optional[str] = Field(None) + cause_of_death: Optional[str] = Field(None) + date_of_birth: Optional[str] = Field(None) + date_of_death: Optional[str] = Field(None) + primary_site: List[str] = Field(None, q="primary_site__overlap") + + +class PrimaryDiagnosisFilterSchema(FilterSchema): + submitter_primary_diagnosis_id: Optional[str] = Field(None) + program_id: Optional[str] = Field(None) + submitter_donor_id: Optional[str] = Field(None) + date_of_diagnosis: Optional[str] = Field(None) + cancer_type_code: Optional[str] = Field(None) + basis_of_diagnosis: Optional[str] = Field(None) + laterality: Optional[str] = Field(None) + lymph_nodes_examined_status: Optional[str] = Field(None) + lymph_nodes_examined_method: Optional[str] = Field(None) + number_lymph_nodes_positive: Optional[int] = Field(None) + clinical_tumour_staging_system: Optional[str] = Field(None) + clinical_t_category: Optional[str] = Field(None) + clinical_n_category: Optional[str] = Field(None) + clinical_m_category: Optional[str] = Field(None) + clinical_stage_group: Optional[str] = Field(None) + + +class SpecimenFilterSchema(FilterSchema): + submitter_specimen_id: Optional[str] = Field(None) + program_id: Optional[str] = Field(None) + submitter_donor_id: Optional[str] = Field(None) + submitter_primary_diagnosis_id: Optional[str] = Field(None) + pathological_tumour_staging_system: Optional[str] = Field(None) + pathological_t_category: Optional[str] = Field(None) + pathological_n_category: Optional[str] = Field(None) + pathological_m_category: Optional[str] = Field(None) + pathological_stage_group: Optional[str] = Field(None) + specimen_collection_date: Optional[str] = Field(None) + specimen_storage: Optional[str] = Field(None) + specimen_processing: Optional[str] = Field(None) + tumour_histological_type: Optional[str] = Field(None) + specimen_anatomic_location: Optional[str] = Field(None) + specimen_laterality: Optional[str] = Field(None) + reference_pathology_confirmed_diagnosis: Optional[str] = Field(None) + reference_pathology_confirmed_tumour_presence: Optional[str] = Field(None) + tumour_grading_system: Optional[str] = Field(None) + tumour_grade: Optional[str] = Field(None) + percent_tumour_cells_range: Optional[str] = Field(None) + percent_tumour_cells_measurement_method: Optional[str] = Field(None) + + +class SampleRegistrationFilterSchema(FilterSchema): + submitter_sample_id: Optional[str] = Field(None) + program_id: Optional[str] = Field(None) + submitter_donor_id: Optional[str] = Field(None) + submitter_specimen_id: Optional[str] = Field(None) + specimen_tissue_source: Optional[str] = Field(None) + tumour_normal_designation: Optional[str] = Field(None) + specimen_type: Optional[str] = Field(None) + sample_type: Optional[str] = Field(None) + + +class TreatmentFilterSchema(FilterSchema): + submitter_treatment_id: Optional[str] = Field(None) + program_id: Optional[str] = Field(None) + submitter_donor_id: Optional[str] = Field(None) + submitter_primary_diagnosis_id: Optional[str] = Field(None) + treatment_type: List[str] = Field(None, q="treatment_type__overlap") + is_primary_treatment: Optional[str] = Field(None) + line_of_treatment: Optional[int] = Field(None) + treatment_start_date: Optional[str] = Field(None) + treatment_end_date: Optional[str] = Field(None) + treatment_setting: Optional[str] = Field(None) + treatment_intent: Optional[str] = Field(None) + days_per_cycle: Optional[int] = Field(None) + number_of_cycles: Optional[int] = Field(None) + response_to_treatment_criteria_method: Optional[str] = Field(None) + response_to_treatment: Optional[str] = Field(None) + status_of_treatment: Optional[str] = Field(None) + + +class ChemotherapyFilterSchema(FilterSchema): + program_id: Optional[str] = Field(None) + submitter_donor_id: Optional[str] = Field(None) + submitter_treatment_id: Optional[str] = Field(None) + drug_reference_database: Optional[str] = Field(None) + drug_name: Optional[str] = Field(None) + drug_reference_identifier: Optional[str] = Field(None) + chemotherapy_drug_dose_units: Optional[str] = Field(None) + prescribed_cumulative_drug_dose: Optional[int] = Field(None) + actual_cumulative_drug_dose: Optional[int] = Field(None) + + +class HormoneTherapyFilterSchema(FilterSchema): + program_id: Optional[str] = Field(None) + submitter_donor_id: Optional[str] = Field(None) + submitter_treatment_id: Optional[str] = Field(None) + drug_reference_database: Optional[str] = Field(None) + drug_name: Optional[str] = Field(None) + drug_reference_identifier: Optional[str] = Field(None) + hormone_drug_dose_units: Optional[str] = Field(None) + prescribed_cumulative_drug_dose: Optional[int] = Field(None) + actual_cumulative_drug_dose: Optional[int] = Field(None) + + +class RadiationFilterSchema(FilterSchema): + program_id: Optional[str] = Field(None) + submitter_donor_id: Optional[str] = Field(None) + submitter_treatment_id: Optional[str] = Field(None) + radiation_therapy_modality: Optional[str] = Field(None) + radiation_therapy_type: Optional[str] = Field(None) + radiation_therapy_fractions: Optional[int] = Field(None) + radiation_therapy_dosage: Optional[int] = Field(None) + anatomical_site_irradiated: Optional[str] = Field(None) + radiation_boost: Optional[bool] = Field(None) + reference_radiation_treatment_id: Optional[str] = Field(None) + + +class ImmunotherapyFilterSchema(FilterSchema): + program_id: Optional[str] = Field(None) + submitter_donor_id: Optional[str] = Field(None) + submitter_treatment_id: Optional[str] = Field(None) + drug_reference_database: Optional[str] = Field(None) + immunotherapy_type: Optional[str] = Field(None) + drug_name: Optional[str] = Field(None) + drug_reference_identifier: Optional[str] = Field(None) + immunotherapy_drug_dose_units: Optional[str] = Field(None) + prescribed_cumulative_drug_dose: Optional[int] = Field(None) + actual_cumulative_drug_dose: Optional[int] = Field(None) + + +class SurgeryFilterSchema(FilterSchema): + program_id: Optional[str] = Field(None) + submitter_donor_id: Optional[str] = Field(None) + submitter_treatment_id: Optional[str] = Field(None) + submitter_specimen_id: Optional[str] = Field(None) + surgery_type: Optional[str] = Field(None) + surgery_site: Optional[str] = Field(None) + surgery_location: Optional[str] = Field(None) + tumour_length: Optional[int] = Field(None) + tumour_width: Optional[int] = Field(None) + greatest_dimension_tumour: Optional[int] = Field(None) + tumour_focality: Optional[str] = Field(None) + residual_tumour_classification: Optional[str] = Field(None) + margin_types_involved: List[str] = Field(None, q="margin_types_involved__overlap") + margin_types_not_involved: List[str] = Field( + None, q="margin_types_not_involved__overlap" + ) + margin_types_not_assessed: List[str] = Field( + None, q="margin_types_not_assessed__overlap" + ) + lymphovascular_invasion: Optional[str] = Field(None) + perineural_invasion: Optional[str] = Field(None) + + +class FollowUpFilterSchema(FilterSchema): + submitter_follow_up_id: Optional[str] = Field(None) + program_id: Optional[str] = Field(None) + submitter_donor_id: Optional[str] = Field(None) + submitter_primary_diagnosis_id: Optional[str] = Field(None) + submitter_treatment_id: Optional[str] = Field(None) + date_of_followup: Optional[str] = Field(None) + disease_status_at_followup: Optional[str] = Field(None) + relapse_type: Optional[str] = Field(None) + date_of_relapse: Optional[str] = Field(None) + method_of_progression_status: List[str] = Field( + None, q="method_of_progression_status__overlap" + ) + anatomic_site_progression_or_recurrence: List[str] = Field( + None, q="anatomic_site_progression_or_recurrence__overlap" + ) + recurrence_tumour_staging_system: Optional[str] = Field(None) + recurrence_t_category: Optional[str] = Field(None) + recurrence_n_category: Optional[str] = Field(None) + recurrence_m_category: Optional[str] = Field(None) + recurrence_stage_group: Optional[str] = Field(None) + + +class BiomarkerFilterSchema(FilterSchema): + program_id: Optional[str] = Field(None) + submitter_donor_id: Optional[str] = Field(None) + submitter_specimen_id: Optional[str] = Field(None) + submitter_primary_diagnosis_id: Optional[str] = Field(None) + submitter_treatment_id: Optional[str] = Field(None) + submitter_follow_up_id: Optional[str] = Field(None) + test_date: Optional[str] = Field(None) + psa_level: Optional[int] = Field(None) + ca125: Optional[int] = Field(None) + cea: Optional[int] = Field(None) + er_status: Optional[str] = Field(None) + er_percent_positive: Optional[float] = Field(None) + pr_status: Optional[str] = Field(None) + pr_percent_positive: Optional[float] = Field(None) + her2_ihc_status: Optional[str] = Field(None) + her2_ish_status: Optional[str] = Field(None) + hpv_ihc_status: Optional[str] = Field(None) + hpv_pcr_status: Optional[str] = Field(None) + hpv_strain: List[str] = Field(None, q="hpv_strain__overlap") + + +class ComorbidityFilterSchema(FilterSchema): + program_id: Optional[str] = Field(None) + submitter_donor_id: Optional[str] = Field(None) + prior_malignancy: Optional[str] = Field(None) + laterality_of_prior_malignancy: Optional[str] = Field(None) + age_at_comorbidity_diagnosis: Optional[int] = Field(None) + comorbidity_type_code: Optional[str] = Field(None) + comorbidity_treatment_status: Optional[str] = Field(None) + comorbidity_treatment: Optional[str] = Field(None) + + +class ExposureFilterSchema(FilterSchema): + program_id: Optional[str] = Field(None) + submitter_donor_id: Optional[str] = Field(None) + tobacco_smoking_status: Optional[str] = Field(None) + tobacco_type: List[str] = Field(None, q="tobacco_type__overlap") + pack_years_smoked: Optional[float] = Field(None) + + +class DonorWithClinicalDataFilterSchema(FilterSchema): + submitter_donor_id: str + program_id: str diff --git a/chord_metadata_service/mohpackets/schemas/ingestion.py b/chord_metadata_service/mohpackets/schemas/ingestion.py new file mode 100644 index 000000000..1c734832c --- /dev/null +++ b/chord_metadata_service/mohpackets/schemas/ingestion.py @@ -0,0 +1,219 @@ +from typing import Optional + +from ninja import Field, ModelSchema + +from chord_metadata_service.mohpackets.models import ( + Biomarker, + Chemotherapy, + Comorbidity, + Donor, + Exposure, + FollowUp, + HormoneTherapy, + Immunotherapy, + PrimaryDiagnosis, + Radiation, + SampleRegistration, + Specimen, + Surgery, + Treatment, +) + +""" +Module with schema used for ingesting + +All fields are derived from the model, with the fix for FK and uuid + +Author: Son Chau +""" + + +######################################## +# # +# INGEST SCHEMA # +# # +######################################## +class DonorIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = Donor + model_exclude = ["uuid", "program_id"] + + +class PrimaryDiagnosisIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = PrimaryDiagnosis + model_exclude = [ + "uuid", + "program_id", + "donor_uuid", + ] + + +class BiomarkerIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = Biomarker + model_exclude = [ + "uuid", + "program_id", + "donor_uuid", + ] + + +class ChemotherapyIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = Chemotherapy + model_exclude = [ + "uuid", + "program_id", + "donor_uuid", + "treatment_uuid", + ] + + +class ComorbidityIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = Comorbidity + model_exclude = [ + "uuid", + "program_id", + "donor_uuid", + ] + + +class ExposureIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = Exposure + model_exclude = [ + "uuid", + "program_id", + "donor_uuid", + ] + + +class FollowUpIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = FollowUp + model_exclude = [ + "uuid", + "program_id", + "donor_uuid", + ] + + +class HormoneTherapyIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = HormoneTherapy + model_exclude = [ + "uuid", + "program_id", + "donor_uuid", + "treatment_uuid", + ] + + +class ImmunotherapyIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = Immunotherapy + model_exclude = [ + "uuid", + "program_id", + "donor_uuid", + "treatment_uuid", + ] + + +class RadiationIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = Radiation + model_exclude = [ + "uuid", + "program_id", + "donor_uuid", + "treatment_uuid", + ] + + +class SampleRegistrationIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = SampleRegistration + model_exclude = [ + "uuid", + "program_id", + "donor_uuid", + "specimen_uuid", + ] + + +class SpecimenIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = Specimen + model_exclude = [ + "uuid", + "program_id", + "donor_uuid", + "primary_diagnosis_uuid", + ] + + +class SurgeryIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = Surgery + model_exclude = [ + "uuid", + "program_id", + "donor_uuid", + "treatment_uuid", + ] + + +class TreatmentIngestSchema(ModelSchema): + program_id_id: str = Field(..., alias="program_id") + uuid: Optional[str] = None + + class Config: + model = Treatment + model_exclude = [ + "uuid", + "program_id", + "donor_uuid", + "primary_diagnosis_uuid", + ] diff --git a/chord_metadata_service/mohpackets/schemas/model.py b/chord_metadata_service/mohpackets/schemas/model.py new file mode 100644 index 000000000..c97778423 --- /dev/null +++ b/chord_metadata_service/mohpackets/schemas/model.py @@ -0,0 +1,336 @@ +from typing import List, Optional + +from ninja import Field, ModelSchema + +from chord_metadata_service.mohpackets.models import ( + Biomarker, + Chemotherapy, + Comorbidity, + Donor, + Exposure, + FollowUp, + HormoneTherapy, + Immunotherapy, + PrimaryDiagnosis, + Program, + Radiation, + SampleRegistration, + Specimen, + Surgery, + Treatment, +) +from chord_metadata_service.mohpackets.permissible_values import ( + COMORBIDITY_REGEX_PATTERNS, + DATE_REGEX_PATTERNS, + ID_REGEX_PATTERNS, + MORPHOLOGY_REGEX_PATTERNS, + TOPOGRAPHY_REGEX_PATTERNS, + BasisOfDiagnosisEnum, + CauseOfDeathEnum, + CellsMeasureMethodEnum, + ConfirmedDiagnosisTumourEnum, + DiseaseStatusFollowupEnum, + DosageUnitsEnum, + DrugReferenceDbEnum, + ErPrHpvStatusEnum, + GenderEnum, + Her2StatusEnum, + HpvStrainEnum, + ImmunotherapyTypeEnum, + LostToFollowupReasonEnum, + LymphNodeMethodEnum, + LymphNodeStatusEnum, + LymphovascularInvasionEnum, + MalignancyLateralityEnum, + MarginTypesEnum, + MCategoryEnum, + NCategoryEnum, + PercentCellsRangeEnum, + PerineuralInvasionEnum, + PrimaryDiagnosisLateralityEnum, + PrimarySiteEnum, + ProgressionStatusMethodEnum, + RadiationAnatomicalSiteEnum, + RadiationTherapyModalityEnum, + RelapseTypeEnum, + SampleTypeEnum, + SexAtBirthEnum, + SmokingStatusEnum, + SpecimenLateralityEnum, + SpecimenProcessingEnum, + SpecimenTissueSourceEnum, + SpecimenTypeEnum, + StageGroupEnum, + StorageEnum, + SurgeryLocationEnum, + SurgeryTypeEnum, + TCategoryEnum, + TherapyTypeEnum, + TobaccoTypeEnum, + TreatmentIntentEnum, + TreatmentResponseEnum, + TreatmentResponseMethodEnum, + TreatmentSettingEnum, + TreatmentStatusEnum, + TreatmentTypeEnum, + TumourClassificationEnum, + TumourDesginationEnum, + TumourFocalityEnum, + TumourGradeEnum, + TumourGradingSystemEnum, + TumourStagingSystemEnum, + uBooleanEnum, +) + +""" +Module containing schemas for clinical data models. + +All fields are derived from the model, excluding 'uuid'. +Custom validations, such as regex and permissible choices, have been included. + +Author: Son Chau +""" + +######################################## +# # +# MODEL SCHEMA # +# # +######################################## + + +class ProgramModelSchema(ModelSchema): + program_id: str = Field(pattern=ID_REGEX_PATTERNS, max_length=64) + + class Config: + model = Program + model_fields = "__all__" + + +class ExposureModelSchema(ModelSchema): + tobacco_smoking_status: Optional[SmokingStatusEnum] = None + tobacco_type: Optional[List[TobaccoTypeEnum]] = None + + class Config: + model = Exposure + model_exclude = ["uuid", "donor_uuid"] + + +class ComorbidityModelSchema(ModelSchema): + prior_malignancy: Optional[uBooleanEnum] = None + laterality_of_prior_malignancy: Optional[MalignancyLateralityEnum] = None + comorbidity_type_code: Optional[str] = Field( + None, pattern=COMORBIDITY_REGEX_PATTERNS, max_length=64 + ) + comorbidity_treatment_status: Optional[uBooleanEnum] = None + comorbidity_treatment: Optional[str] = Field(None, max_length=255) + + class Config: + model = Comorbidity + model_exclude = ["uuid", "donor_uuid"] + + +class BiomarkerModelSchema(ModelSchema): + er_status: Optional[ErPrHpvStatusEnum] = None + pr_status: Optional[ErPrHpvStatusEnum] = None + her2_ihc_status: Optional[Her2StatusEnum] = None + her2_ish_status: Optional[Her2StatusEnum] = None + hpv_ihc_status: Optional[ErPrHpvStatusEnum] = None + hpv_pcr_status: Optional[ErPrHpvStatusEnum] = None + hpv_strain: Optional[List[HpvStrainEnum]] = None + + class Config: + model = Biomarker + model_exclude = ["uuid", "donor_uuid"] + + +class FollowUpModelSchema(ModelSchema): + submitter_follow_up_id: str = Field(pattern=ID_REGEX_PATTERNS, max_length=64) + disease_status_at_followup: Optional[DiseaseStatusFollowupEnum] = None + relapse_type: Optional[RelapseTypeEnum] = None + date_of_followup: Optional[str] = Field( + None, pattern=DATE_REGEX_PATTERNS, max_length=32 + ) + date_of_relapse: Optional[str] = Field( + None, pattern=DATE_REGEX_PATTERNS, max_length=32 + ) + method_of_progression_status: Optional[List[ProgressionStatusMethodEnum]] = None + anatomic_site_progression_or_recurrence: Optional[List[str]] = None + recurrence_tumour_staging_system: Optional[TumourStagingSystemEnum] = None + recurrence_t_category: Optional[TCategoryEnum] = None + recurrence_n_category: Optional[NCategoryEnum] = None + recurrence_m_category: Optional[MCategoryEnum] = None + recurrence_stage_group: Optional[StageGroupEnum] = None + + class Config: + model = FollowUp + model_exclude = ["uuid", "donor_uuid"] + + +class SurgeryModelSchema(ModelSchema): + surgery_type: Optional[SurgeryTypeEnum] = None + surgery_site: Optional[str] = Field( + None, pattern=TOPOGRAPHY_REGEX_PATTERNS, max_length=255 + ) + surgery_location: Optional[SurgeryLocationEnum] = None + tumour_focality: Optional[TumourFocalityEnum] = None + residual_tumour_classification: Optional[TumourClassificationEnum] = None + margin_types_involved: Optional[List[MarginTypesEnum]] = None + margin_types_not_involved: Optional[List[MarginTypesEnum]] = None + margin_types_not_assessed: Optional[List[MarginTypesEnum]] = None + lymphovascular_invasion: Optional[LymphovascularInvasionEnum] = None + perineural_invasion: Optional[PerineuralInvasionEnum] = None + + class Config: + model = Surgery + model_exclude = ["uuid", "donor_uuid", "treatment_uuid"] + + +class ImmunotherapyModelSchema(ModelSchema): + immunotherapy_type: Optional[ImmunotherapyTypeEnum] = None + drug_reference_database: Optional[DrugReferenceDbEnum] = None + immunotherapy_drug_dose_units: Optional[DosageUnitsEnum] = None + + class Config: + model = Immunotherapy + model_exclude = ["uuid", "donor_uuid", "treatment_uuid"] + + +class RadiationModelSchema(ModelSchema): + radiation_therapy_modality: Optional[RadiationTherapyModalityEnum] = None + radiation_therapy_type: Optional[TherapyTypeEnum] = None + anatomical_site_irradiated: Optional[RadiationAnatomicalSiteEnum] = None + + class Config: + model = Radiation + model_exclude = ["uuid", "donor_uuid", "treatment_uuid"] + + +class HormoneTherapyModelSchema(ModelSchema): + hormone_drug_dose_units: Optional[DosageUnitsEnum] = None + drug_reference_database: Optional[DrugReferenceDbEnum] = None + + class Config: + model = HormoneTherapy + model_exclude = ["uuid", "donor_uuid", "treatment_uuid"] + + +class ChemotherapyModelSchema(ModelSchema): + chemotherapy_drug_dose_units: Optional[DosageUnitsEnum] = None + drug_reference_database: Optional[DrugReferenceDbEnum] = None + + class Config: + model = Chemotherapy + model_exclude = ["uuid", "donor_uuid", "treatment_uuid"] + + +class TreatmentModelSchema(ModelSchema): + submitter_treatment_id: str = Field(pattern=ID_REGEX_PATTERNS, max_length=64) + treatment_type: Optional[List[TreatmentTypeEnum]] = None + is_primary_treatment: Optional[uBooleanEnum] = None + treatment_start_date: Optional[str] = Field( + None, pattern=DATE_REGEX_PATTERNS, max_length=32 + ) + treatment_end_date: Optional[str] = Field( + None, pattern=DATE_REGEX_PATTERNS, max_length=32 + ) + treatment_setting: Optional[TreatmentSettingEnum] = None + treatment_intent: Optional[TreatmentIntentEnum] = None + response_to_treatment_criteria_method: Optional[TreatmentResponseMethodEnum] = None + response_to_treatment: Optional[TreatmentResponseEnum] = None + status_of_treatment: Optional[TreatmentStatusEnum] = None + + class Config: + model = Treatment + model_exclude = ["uuid", "donor_uuid", "primary_diagnosis_uuid"] + + +class PrimaryDiagnosisModelSchema(ModelSchema): + submitter_primary_diagnosis_id: str = Field( + pattern=ID_REGEX_PATTERNS, max_length=64 + ) + date_of_diagnosis: Optional[str] = Field( + None, pattern=DATE_REGEX_PATTERNS, max_length=32 + ) + + basis_of_diagnosis: Optional[BasisOfDiagnosisEnum] = None + lymph_nodes_examined_status: Optional[LymphNodeStatusEnum] = None + lymph_nodes_examined_method: Optional[LymphNodeMethodEnum] = None + clinical_tumour_staging_system: Optional[TumourStagingSystemEnum] = None + clinical_t_category: Optional[TCategoryEnum] = None + clinical_n_category: Optional[NCategoryEnum] = None + clinical_m_category: Optional[MCategoryEnum] = None + clinical_stage_group: Optional[StageGroupEnum] = None + laterality: Optional[PrimaryDiagnosisLateralityEnum] = None + + class Config: + model = PrimaryDiagnosis + model_exclude = ["uuid", "donor_uuid"] + + +class SampleRegistrationModelSchema(ModelSchema): + submitter_sample_id: str = Field(pattern=ID_REGEX_PATTERNS, max_length=64) + specimen_tissue_source: Optional[SpecimenTissueSourceEnum] = None + tumour_normal_designation: Optional[TumourDesginationEnum] = None + specimen_type: Optional[SpecimenTypeEnum] = None + sample_type: Optional[SampleTypeEnum] = None + + class Config: + model = SampleRegistration + model_exclude = ["uuid", "donor_uuid", "specimen_uuid"] + + +class SpecimenModelSchema(ModelSchema): + submitter_specimen_id: str = Field(pattern=ID_REGEX_PATTERNS, max_length=64) + pathological_tumour_staging_system: Optional[TumourStagingSystemEnum] = None + pathological_t_category: Optional[TCategoryEnum] = None + pathological_n_category: Optional[NCategoryEnum] = None + pathological_m_category: Optional[MCategoryEnum] = None + pathological_stage_group: Optional[StageGroupEnum] = None + specimen_collection_date: Optional[str] = Field( + None, pattern=DATE_REGEX_PATTERNS, max_length=32 + ) + specimen_storage: Optional[StorageEnum] = None + tumour_histological_type: Optional[str] = Field( + None, max_length=128, pattern=MORPHOLOGY_REGEX_PATTERNS + ) + specimen_anatomic_location: Optional[str] = Field( + None, max_length=32, pattern=TOPOGRAPHY_REGEX_PATTERNS + ) + reference_pathology_confirmed_diagnosis: Optional[ + ConfirmedDiagnosisTumourEnum + ] = None + reference_pathology_confirmed_tumour_presence: Optional[ + ConfirmedDiagnosisTumourEnum + ] = None + tumour_grading_system: Optional[TumourGradingSystemEnum] = None + tumour_grade: Optional[TumourGradeEnum] = None + percent_tumour_cells_range: Optional[PercentCellsRangeEnum] = None + percent_tumour_cells_measurement_method: Optional[CellsMeasureMethodEnum] = None + specimen_processing: Optional[SpecimenProcessingEnum] = None + specimen_laterality: Optional[SpecimenLateralityEnum] = None + + class Config: + model = Specimen + model_exclude = ["uuid", "donor_uuid", "primary_diagnosis_uuid"] + + +class DonorModelSchema(ModelSchema): + cause_of_death: Optional[CauseOfDeathEnum] = None + submitter_donor_id: str = Field(pattern=ID_REGEX_PATTERNS, max_length=64) + date_of_birth: Optional[str] = Field( + None, pattern=DATE_REGEX_PATTERNS, max_length=32 + ) + date_of_death: Optional[str] = Field( + None, pattern=DATE_REGEX_PATTERNS, max_length=32 + ) + primary_site: Optional[List[PrimarySiteEnum]] = None + gender: Optional[GenderEnum] = None + sex_at_birth: Optional[SexAtBirthEnum] = None + lost_to_followup_reason: Optional[LostToFollowupReasonEnum] = None + date_alive_after_lost_to_followup: Optional[str] = Field( + None, pattern=DATE_REGEX_PATTERNS, max_length=32 + ) + + class Config: + model = Donor + model_exclude = ["uuid"] diff --git a/chord_metadata_service/mohpackets/schemas/nested_data.py b/chord_metadata_service/mohpackets/schemas/nested_data.py new file mode 100644 index 000000000..5fcf91a69 --- /dev/null +++ b/chord_metadata_service/mohpackets/schemas/nested_data.py @@ -0,0 +1,218 @@ +from typing import List + +from ninja import Field, ModelSchema + +from chord_metadata_service.mohpackets.models import ( + Biomarker, + Chemotherapy, + Comorbidity, + Donor, + Exposure, + FollowUp, + HormoneTherapy, + Immunotherapy, + PrimaryDiagnosis, + Radiation, + SampleRegistration, + Specimen, + Surgery, + Treatment, +) + + +##################################################### +# # +# DONOR WITH CLINICAL SCHEMA # +# # +##################################################### +class NestedExposureSchema(ModelSchema): + class Config: + model = Exposure + model_exclude = [ + "uuid", + "donor_uuid", + "submitter_donor_id", + "program_id", + ] + + +class NestedComorbiditySchema(ModelSchema): + class Config: + model = Comorbidity + model_exclude = [ + "uuid", + "donor_uuid", + "submitter_donor_id", + "program_id", + ] + + +class NestedChemotherapySchema(ModelSchema): + class Config: + model = Chemotherapy + model_exclude = [ + "uuid", + "donor_uuid", + "submitter_donor_id", + "program_id", + "submitter_treatment_id", + "treatment_uuid", + ] + + +class NestedImmunotherapySchema(ModelSchema): + class Config: + model = Immunotherapy + model_exclude = [ + "uuid", + "donor_uuid", + "submitter_donor_id", + "program_id", + "submitter_treatment_id", + "treatment_uuid", + ] + + +class NestedHormoneTherapySchema(ModelSchema): + class Config: + model = HormoneTherapy + model_exclude = [ + "uuid", + "donor_uuid", + "submitter_donor_id", + "program_id", + "submitter_treatment_id", + "treatment_uuid", + ] + + +class NestedRadiationSchema(ModelSchema): + class Config: + model = Radiation + model_exclude = [ + "uuid", + "donor_uuid", + "submitter_donor_id", + "program_id", + "submitter_treatment_id", + "treatment_uuid", + ] + + +class NestedSurgerySchema(ModelSchema): + class Config: + model = Surgery + model_exclude = [ + "uuid", + "donor_uuid", + "submitter_donor_id", + "program_id", + "submitter_treatment_id", + "treatment_uuid", + ] + + +class NestedFollowUpSchema(ModelSchema): + class Config: + model = FollowUp + model_exclude = [ + "uuid", + "donor_uuid", + "submitter_donor_id", + "program_id", + "submitter_treatment_id", + "submitter_primary_diagnosis_id", + "primary_diagnosis_uuid", + "treatment_uuid", + ] + + +class NestedBiomarkerSchema(ModelSchema): + class Config: + model = Biomarker + model_exclude = [ + "uuid", + "donor_uuid", + "submitter_donor_id", + "program_id", + ] + + +class NestedSampleRegistrationSchema(ModelSchema): + class Config: + model = SampleRegistration + model_exclude = [ + "uuid", + "donor_uuid", + "submitter_donor_id", + "program_id", + "submitter_specimen_id", + "specimen_uuid", + ] + + +class NestedTreatmentSchema(ModelSchema): + chemotherapies: List[NestedChemotherapySchema] = Field( + None, alias="chemotherapy_set" + ) + immunotherapies: List[NestedImmunotherapySchema] = Field( + None, alias="immunotherapy_set" + ) + hormone_therapies: List[NestedHormoneTherapySchema] = Field( + None, alias="hormonetherapy_set" + ) + radiations: List[NestedRadiationSchema] = Field(None, alias="radiation_set") + surgeries: List[NestedSurgerySchema] = Field(None, alias="surgery_set") + followups: List[NestedFollowUpSchema] = Field(None, alias="followup_set") + + class Config: + model = Treatment + model_exclude = [ + "uuid", + "donor_uuid", + "submitter_donor_id", + "program_id", + "submitter_primary_diagnosis_id", + "primary_diagnosis_uuid", + ] + + +class NestedSpecimenSchema(ModelSchema): + sample_registrations: List[NestedSampleRegistrationSchema] = Field( + None, alias="sampleregistration_set" + ) + + class Config: + model = Specimen + model_exclude = [ + "uuid", + "donor_uuid", + "submitter_donor_id", + "program_id", + "submitter_primary_diagnosis_id", + "primary_diagnosis_uuid", + ] + + +class NestedPrimaryDiagnosisSchema(ModelSchema): + specimens: List[NestedSpecimenSchema] = Field(None, alias="specimen_set") + treatments: List[NestedTreatmentSchema] = Field(None, alias="treatment_set") + followups: List[NestedFollowUpSchema] = Field(None, alias="followup_set") + + class Config: + model = PrimaryDiagnosis + model_exclude = ["uuid", "donor_uuid", "submitter_donor_id", "program_id"] + + +class DonorWithClinicalDataSchema(ModelSchema): + primary_diagnoses: List[NestedPrimaryDiagnosisSchema] = Field( + None, alias="primarydiagnosis_set" + ) + followups: List[NestedFollowUpSchema] = Field(None, alias="followup_set") + biomarkers: List[NestedBiomarkerSchema] = Field(None, alias="biomarker_set") + exposures: List[NestedExposureSchema] = Field(None, alias="exposure_set") + comorbidities: List[NestedComorbiditySchema] = Field(None, alias="comorbidity_set") + + class Config: + model = Donor + model_exclude = ["uuid"] diff --git a/chord_metadata_service/mohpackets/serializers.py b/chord_metadata_service/mohpackets/serializers.py deleted file mode 100644 index 7146c716d..000000000 --- a/chord_metadata_service/mohpackets/serializers.py +++ /dev/null @@ -1,658 +0,0 @@ -from django.utils.translation import gettext_lazy as _ -from rest_framework import serializers -from rest_framework.validators import UniqueValidator - -import chord_metadata_service.mohpackets.permissible_values as val -from chord_metadata_service.mohpackets.permissible_values import REGEX_PATTERNS as regex - -from .models import ( - Biomarker, - Chemotherapy, - Comorbidity, - Donor, - Exposure, - FollowUp, - HormoneTherapy, - Immunotherapy, - PrimaryDiagnosis, - Program, - Radiation, - SampleRegistration, - Specimen, - Surgery, - Treatment, -) - -""" - This module contains the SERIALIZERS for the models in the mohpackets app. - It converting Python objects or Django model instances into a JSON string, - and back again for API transmissions. - - We use the ModelSerializer class, which provides a way to create a Serializer - directly from a Django model. All that needs to be done to create a ModelSerializer - is to specify a model on its Meta attribute. For reference, see: - https://www.django-rest-framework.org/api-guide/serializers/#modelserializer - -""" - - -class CustomChoiceField(serializers.ChoiceField): - """Custom ChoiceField that prints permissible choices when an exception is raised.""" - - default_error_messages = { - "invalid_choice": _( - '"{input}" is not a valid choice. The valid choices are: [{choices}]' - ) - } - - def to_internal_value(self, data): - if data == "" and self.allow_blank: - return "" - - try: - return self.choice_strings_to_values[str(data)] - except KeyError: - choices = [c for c in self.choices] - self.fail("invalid_choice", input=data, choices=choices) - - -########################################## -# # -# MODEL SERIALIZERS # -# # -########################################## - - -class ProgramSerializer(serializers.ModelSerializer): - program_id = serializers.RegexField( - regex=regex["ID"], - max_length=64, - validators=[UniqueValidator(queryset=Program.objects.all())], - ) - - class Meta: - model = Program - fields = "__all__" - - -class DonorSerializer(serializers.ModelSerializer): - submitter_donor_id = serializers.RegexField( - regex=regex["ID"], - max_length=64, - validators=[UniqueValidator(queryset=Donor.objects.all())], - ) - cause_of_death = CustomChoiceField( - choices=val.CAUSE_OF_DEATH, allow_blank=True, allow_null=True, required=False - ) - date_of_birth = serializers.RegexField( - regex=regex["DATE"], - max_length=32, - allow_blank=True, - allow_null=True, - required=False, - ) - date_of_death = serializers.RegexField( - regex=regex["DATE"], - max_length=32, - allow_blank=True, - allow_null=True, - required=False, - ) - primary_site = serializers.ListField( - required=False, - allow_null=True, - allow_empty=True, - child=CustomChoiceField( - choices=val.PRIMARY_SITE, allow_blank=True, allow_null=True, required=False - ), - ) - gender = CustomChoiceField( - choices=val.GENDER, allow_blank=True, allow_null=True, required=False - ) - sex_at_birth = CustomChoiceField( - choices=val.SEX_AT_BIRTH, allow_blank=True, allow_null=True, required=False - ) - lost_to_followup_reason = CustomChoiceField( - choices=val.LOST_TO_FOLLOWUP_REASON, - allow_blank=True, - allow_null=True, - required=False, - ) - date_alive_after_lost_to_followup = serializers.RegexField( - regex=regex["DATE"], - max_length=32, - allow_blank=True, - allow_null=True, - required=False, - ) - - class Meta: - model = Donor - fields = "__all__" - - -class SpecimenSerializer(serializers.ModelSerializer): - submitter_specimen_id = serializers.RegexField( - regex=regex["ID"], - max_length=64, - validators=[UniqueValidator(queryset=Specimen.objects.all())], - ) - pathological_tumour_staging_system = CustomChoiceField( - choices=val.TUMOUR_STAGING_SYSTEM, - allow_blank=True, - allow_null=True, - required=False, - ) - pathological_t_category = CustomChoiceField( - choices=val.T_CATEGORY, allow_blank=True, allow_null=True, required=False - ) - pathological_n_category = CustomChoiceField( - choices=val.N_CATEGORY, allow_blank=True, allow_null=True, required=False - ) - pathological_m_category = CustomChoiceField( - choices=val.M_CATEGORY, allow_blank=True, allow_null=True, required=False - ) - pathological_stage_group = CustomChoiceField( - choices=val.STAGE_GROUP, allow_blank=True, allow_null=True, required=False - ) - specimen_collection_date = serializers.RegexField( - regex=regex["DATE"], - max_length=32, - allow_blank=True, - allow_null=True, - required=False, - ) - specimen_storage = CustomChoiceField( - choices=val.STORAGE, allow_blank=True, allow_null=True, required=False - ) - tumour_histological_type = serializers.RegexField( - max_length=128, - regex=regex["MORPHOLOGY"], - allow_blank=True, - allow_null=True, - required=False, - ) - specimen_anatomic_location = serializers.RegexField( - max_length=32, - regex=regex["TOPOGRAPHY"], - allow_blank=True, - allow_null=True, - required=False, - ) - reference_pathology_confirmed_diagnosis = CustomChoiceField( - choices=val.CONFIRMED_DIAGNOSIS_TUMOUR, - allow_blank=True, - allow_null=True, - required=False, - ) - reference_pathology_confirmed_tumour_presence = CustomChoiceField( - choices=val.CONFIRMED_DIAGNOSIS_TUMOUR, - allow_blank=True, - allow_null=True, - required=False, - ) - tumour_grading_system = CustomChoiceField( - choices=val.TUMOUR_GRADING_SYSTEM, - allow_blank=True, - allow_null=True, - required=False, - ) - tumour_grade = CustomChoiceField( - choices=val.TUMOUR_GRADE, allow_blank=True, allow_null=True, required=False - ) - percent_tumour_cells_range = CustomChoiceField( - choices=val.PERCENT_CELLS_RANGE, - allow_blank=True, - allow_null=True, - required=False, - ) - percent_tumour_cells_measurement_method = CustomChoiceField( - choices=val.CELLS_MEASURE_METHOD, - allow_blank=True, - allow_null=True, - required=False, - ) - specimen_processing = CustomChoiceField( - choices=val.SPECIMEN_PROCESSING, - allow_blank=True, - allow_null=True, - required=False, - ) - specimen_laterality = CustomChoiceField( - choices=val.SPECIMEN_LATERALITY, - allow_blank=True, - allow_null=True, - required=False, - ) - - class Meta: - model = Specimen - fields = "__all__" - - -class SampleRegistrationSerializer(serializers.ModelSerializer): - submitter_sample_id = serializers.RegexField( - regex=regex["ID"], - max_length=64, - validators=[UniqueValidator(queryset=SampleRegistration.objects.all())], - ) - specimen_tissue_source = CustomChoiceField( - choices=val.SPECIMEN_TISSUE_SOURCE, - allow_blank=True, - allow_null=True, - required=False, - ) - tumour_normal_designation = CustomChoiceField( - choices=["Normal", "Tumour"], allow_blank=True, allow_null=True, required=False - ) - specimen_type = CustomChoiceField( - choices=val.SPECIMEN_TYPE, allow_blank=True, allow_null=True, required=False - ) - sample_type = CustomChoiceField( - choices=val.SAMPLE_TYPE, allow_blank=True, allow_null=True, required=False - ) - - class Meta: - model = SampleRegistration - fields = "__all__" - - -class PrimaryDiagnosisSerializer(serializers.ModelSerializer): - submitter_primary_diagnosis_id = serializers.RegexField( - regex=regex["ID"], max_length=64 - ) - date_of_diagnosis = serializers.RegexField( - regex=regex["DATE"], - max_length=32, - allow_blank=True, - allow_null=True, - required=False, - ) - # cancer_type_code = serializers.CharField() # TODO: write regex - basis_of_diagnosis = CustomChoiceField( - choices=val.BASIS_OF_DIAGNOSIS, - allow_blank=True, - allow_null=True, - required=False, - ) - lymph_nodes_examined_status = CustomChoiceField( - choices=val.LYMPH_NODE_STATUS, allow_blank=True, allow_null=True, required=False - ) - lymph_nodes_examined_method = CustomChoiceField( - choices=val.LYMPH_NODE_METHOD, allow_blank=True, allow_null=True, required=False - ) - clinical_tumour_staging_system = CustomChoiceField( - choices=val.TUMOUR_STAGING_SYSTEM, - allow_blank=True, - allow_null=True, - required=False, - ) - clinical_t_category = CustomChoiceField( - choices=val.T_CATEGORY, allow_blank=True, allow_null=True, required=False - ) - clinical_n_category = CustomChoiceField( - choices=val.N_CATEGORY, allow_blank=True, allow_null=True, required=False - ) - clinical_m_category = CustomChoiceField( - choices=val.M_CATEGORY, allow_blank=True, allow_null=True, required=False - ) - clinical_stage_group = CustomChoiceField( - choices=val.STAGE_GROUP, allow_blank=True, allow_null=True, required=False - ) - laterality = CustomChoiceField( - choices=val.PRIMARY_DIAGNOSIS_LATERALITY, - allow_blank=True, - allow_null=True, - required=False, - ) - - class Meta: - model = PrimaryDiagnosis - fields = "__all__" - - -class TreatmentSerializer(serializers.ModelSerializer): - submitter_treatment_id = serializers.RegexField(regex=regex["ID"], max_length=64) - treatment_type = serializers.ListField( - allow_null=True, - allow_empty=True, - required=False, - child=CustomChoiceField( - choices=val.TREATMENT_TYPE, - allow_blank=True, - allow_null=True, - required=False, - ), - ) - is_primary_treatment = CustomChoiceField( - choices=val.UBOOLEAN, allow_blank=True, allow_null=True, required=False - ) - treatment_start_date = serializers.RegexField( - regex=regex["DATE"], - max_length=32, - allow_blank=True, - allow_null=True, - required=False, - ) - treatment_end_date = serializers.RegexField( - regex=regex["DATE"], - max_length=32, - allow_blank=True, - allow_null=True, - required=False, - ) - treatment_setting = CustomChoiceField( - choices=val.TREATMENT_SETTING, allow_blank=True, allow_null=True, required=False - ) - treatment_intent = CustomChoiceField( - choices=val.TREATMENT_INTENT, allow_blank=True, allow_null=True, required=False - ) - response_to_treatment_criteria_method = CustomChoiceField( - choices=val.TREATMENT_RESPONSE_METHOD, - allow_blank=True, - allow_null=True, - required=False, - ) - response_to_treatment = CustomChoiceField( - choices=val.TREATMENT_RESPONSE, - allow_blank=True, - allow_null=True, - required=False, - ) - status_of_treatment = CustomChoiceField( - choices=val.TREATMENT_STATUS, allow_blank=True, allow_null=True, required=False - ) - - class Meta: - model = Treatment - fields = "__all__" - - -class ChemotherapySerializer(serializers.ModelSerializer): - chemotherapy_drug_dose_units = CustomChoiceField( - choices=val.DOSAGE_UNITS, allow_blank=True, allow_null=True, required=False - ) - drug_reference_database = CustomChoiceField( - choices=val.DRUG_REFERENCE_DB, allow_blank=True, allow_null=True, required=False - ) - - class Meta: - model = Chemotherapy - fields = "__all__" - - -class HormoneTherapySerializer(serializers.ModelSerializer): - hormone_drug_dose_units = CustomChoiceField( - choices=val.DOSAGE_UNITS, allow_blank=True, allow_null=True, required=False - ) - drug_reference_database = CustomChoiceField( - choices=val.DRUG_REFERENCE_DB, allow_blank=True, allow_null=True, required=False - ) - - class Meta: - model = HormoneTherapy - fields = "__all__" - - -class RadiationSerializer(serializers.ModelSerializer): - radiation_therapy_modality = CustomChoiceField( - choices=val.RADIATION_THERAPY_MODALITY, - allow_blank=True, - allow_null=True, - required=False, - ) - radiation_therapy_type = CustomChoiceField( - choices=["External", "Internal"], - allow_blank=True, - allow_null=True, - required=False, - ) - anatomical_site_irradiated = CustomChoiceField( - choices=val.RADIATION_ANATOMICAL_SITE, - allow_blank=True, - allow_null=True, - required=False, - ) - - class Meta: - model = Radiation - fields = "__all__" - - -class ImmunotherapySerializer(serializers.ModelSerializer): - immunotherapy_type = CustomChoiceField( - choices=val.IMMUNOTHERAPY_TYPE, - allow_blank=True, - allow_null=True, - required=False, - ) - drug_reference_database = CustomChoiceField( - choices=val.DRUG_REFERENCE_DB, allow_blank=True, allow_null=True, required=False - ) - immunotherapy_drug_dose_units = CustomChoiceField( - choices=val.DOSAGE_UNITS, allow_blank=True, allow_null=True, required=False - ) - - class Meta: - model = Immunotherapy - fields = "__all__" - - -class SurgerySerializer(serializers.ModelSerializer): - surgery_type = CustomChoiceField( - choices=val.SURGERY_TYPE, allow_blank=True, allow_null=True, required=False - ) - surgery_site = serializers.RegexField( - regex=regex["TOPOGRAPHY"], - max_length=255, - allow_blank=True, - allow_null=True, - required=False, - ) - surgery_location = CustomChoiceField( - choices=val.SURGERY_LOCATION, allow_blank=True, allow_null=True, required=False - ) - tumour_focality = CustomChoiceField( - choices=val.TUMOUR_FOCALITY, allow_blank=True, allow_null=True, required=False - ) - residual_tumour_classification = CustomChoiceField( - choices=val.TUMOUR_CLASSIFICATION, - allow_blank=True, - allow_null=True, - required=False, - ) - margin_types_involved = serializers.ListField( - allow_null=True, - allow_empty=True, - required=False, - child=CustomChoiceField( - choices=val.MARGIN_TYPES, allow_blank=True, allow_null=True, required=False - ), - ) - margin_types_not_involved = serializers.ListField( - allow_null=True, - allow_empty=True, - required=False, - child=CustomChoiceField( - choices=val.MARGIN_TYPES, allow_blank=True, allow_null=True, required=False - ), - ) - margin_types_not_assessed = serializers.ListField( - allow_null=True, - allow_empty=True, - required=False, - child=CustomChoiceField( - choices=val.MARGIN_TYPES, allow_blank=True, allow_null=True, required=False - ), - ) - lymphovascular_invasion = CustomChoiceField( - choices=val.LYMPHOVACULAR_INVASION, - allow_blank=True, - allow_null=True, - required=False, - ) - perineural_invasion = CustomChoiceField( - choices=val.PERINEURAL_INVASION, - allow_blank=True, - allow_null=True, - required=False, - ) - - class Meta: - model = Surgery - fields = "__all__" - - -class FollowUpSerializer(serializers.ModelSerializer): - disease_status_at_followup = CustomChoiceField( - choices=val.DISEASE_STATUS_FOLLOWUP, - allow_blank=True, - allow_null=True, - required=False, - ) - relapse_type = CustomChoiceField( - choices=val.RELAPSE_TYPE, allow_blank=True, allow_null=True, required=False - ) - date_of_relapse = serializers.RegexField( - regex=regex["DATE"], - max_length=32, - allow_blank=True, - allow_null=True, - required=False, - ) - method_of_progression_status = serializers.ListField( - allow_null=True, - allow_empty=True, - required=False, - child=CustomChoiceField( - choices=val.PROGRESSION_STATUS_METHOD, - allow_blank=True, - allow_null=True, - required=False, - ), - ) - anatomic_site_progression_or_recurrence = serializers.ListField( - allow_null=True, - allow_empty=True, - required=False, - child=serializers.RegexField( - max_length=32, - regex=regex["TOPOGRAPHY"], - allow_blank=True, - allow_null=True, - required=False, - ), - ) - - recurrence_tumour_staging_system = CustomChoiceField( - choices=val.TUMOUR_STAGING_SYSTEM, - allow_blank=True, - allow_null=True, - required=False, - ) - - recurrence_t_category = CustomChoiceField( - choices=val.T_CATEGORY, allow_blank=True, allow_null=True, required=False - ) - recurrence_n_category = CustomChoiceField( - choices=val.N_CATEGORY, allow_blank=True, allow_null=True, required=False - ) - recurrence_m_category = CustomChoiceField( - choices=val.M_CATEGORY, allow_blank=True, allow_null=True, required=False - ) - recurrence_stage_group = CustomChoiceField( - choices=val.STAGE_GROUP, allow_blank=True, allow_null=True, required=False - ) - - class Meta: - model = FollowUp - fields = "__all__" - - -class BiomarkerSerializer(serializers.ModelSerializer): - er_status = CustomChoiceField( - choices=val.ER_PR_HPV_STATUS, allow_blank=True, allow_null=True, required=False - ) - pr_status = CustomChoiceField( - choices=val.ER_PR_HPV_STATUS, allow_blank=True, allow_null=True, required=False - ) - her2_ihc_status = CustomChoiceField( - choices=val.HER2_STATUS, allow_blank=True, allow_null=True, required=False - ) - her2_ish_status = CustomChoiceField( - choices=val.HER2_STATUS, allow_blank=True, allow_null=True, required=False - ) - hpv_ihc_status = CustomChoiceField( - choices=val.ER_PR_HPV_STATUS, allow_blank=True, allow_null=True, required=False - ) - hpv_pcr_status = CustomChoiceField( - choices=val.ER_PR_HPV_STATUS, allow_blank=True, allow_null=True, required=False - ) - hpv_strain = serializers.ListField( - allow_null=True, - allow_empty=True, - required=False, - child=CustomChoiceField( - choices=val.HPV_STRAIN, allow_blank=True, allow_null=True, required=False - ), - ) - - class Meta: - model = Biomarker - fields = "__all__" - - -class ComorbiditySerializer(serializers.ModelSerializer): - prior_malignancy = CustomChoiceField( - choices=val.UBOOLEAN, allow_blank=True, allow_null=True, required=False - ) - laterality_of_prior_malignancy = CustomChoiceField( - choices=val.MALIGNANCY_LATERALITY, - allow_blank=True, - allow_null=True, - required=False, - ) - comorbidity_type_code = serializers.RegexField( - regex=regex["COMORBIDITY"], - max_length=64, - allow_blank=True, - allow_null=True, - required=False, - ) - comorbidity_treatment_status = CustomChoiceField( - choices=val.UBOOLEAN, allow_blank=True, allow_null=True, required=False - ) - comorbidity_treatment = serializers.CharField( - max_length=255, allow_blank=True, allow_null=True, required=False - ) - - class Meta: - model = Comorbidity - fields = "__all__" - - -class ExposureSerializer(serializers.ModelSerializer): - tobacco_smoking_status = CustomChoiceField( - choices=val.SMOKING_STATUS, allow_blank=True, allow_null=True, required=False - ) - tobacco_type = serializers.ListField( - allow_null=True, - allow_empty=True, - required=False, - child=CustomChoiceField( - choices=val.TOBACCO_TYPE, allow_blank=True, allow_null=True, required=False - ), - ) - - class Meta: - model = Exposure - fields = "__all__" - - -########################################## -# # -# CUSTOM SERIALIZERS # -# # -########################################## -class IngestRequestSerializer(serializers.Serializer): - data = serializers.ListField(child=serializers.JSONField()) diff --git a/chord_metadata_service/mohpackets/serializers_nested.py b/chord_metadata_service/mohpackets/serializers_nested.py deleted file mode 100644 index 5f3fe50a3..000000000 --- a/chord_metadata_service/mohpackets/serializers_nested.py +++ /dev/null @@ -1,319 +0,0 @@ -from drf_spectacular.utils import extend_schema_field -from rest_framework import serializers -from rest_framework.serializers import ListSerializer - -from chord_metadata_service.mohpackets.models import ( - Biomarker, - Chemotherapy, - Comorbidity, - Donor, - Exposure, - FollowUp, - HormoneTherapy, - Immunotherapy, - PrimaryDiagnosis, - Radiation, - SampleRegistration, - Specimen, - Surgery, - Treatment, -) -from chord_metadata_service.mohpackets.serializers import ( - BiomarkerSerializer, - ChemotherapySerializer, - ComorbiditySerializer, - DonorSerializer, - ExposureSerializer, - FollowUpSerializer, - HormoneTherapySerializer, - ImmunotherapySerializer, - PrimaryDiagnosisSerializer, - RadiationSerializer, - SampleRegistrationSerializer, - SpecimenSerializer, - SurgerySerializer, - TreatmentSerializer, -) - -""" - This module provides serializers for the Donor model and its related clinical data. - All the other objects are nested under the Donor model, and foreign keys are - replaced with nested objects. For instance, the DonorSerializer includes a - nested PrimaryDiagnosisSerializer, which in turn includes a nested SpecimenSerializer, and so on. - - BioMarkers have unique relationships that require nesting at multiple levels. -""" - - -class NestedExposureSerializer(ExposureSerializer): - class Meta: - model = Exposure - exclude = ["program_id", "submitter_donor_id", "id"] - - -class NestedComorbiditySerializer(ComorbiditySerializer): - class Meta: - model = Comorbidity - exclude = ["program_id", "submitter_donor_id", "id"] - - -class NestedSampleRegistrationSerializer(SampleRegistrationSerializer): - class Meta: - model = SampleRegistration - exclude = [ - "program_id", - "submitter_donor_id", - "submitter_specimen_id", - ] - - -class NestedChemotherapySerializer(ChemotherapySerializer): - class Meta: - model = Chemotherapy - exclude = ["program_id", "submitter_donor_id", "submitter_treatment_id", "id"] - - -class NestedHormoneTherapySerializer(HormoneTherapySerializer): - class Meta: - model = HormoneTherapy - exclude = ["program_id", "submitter_donor_id", "submitter_treatment_id", "id"] - - -class NestedImmunotherapySerializer(ImmunotherapySerializer): - class Meta: - model = Immunotherapy - exclude = ["program_id", "submitter_donor_id", "submitter_treatment_id", "id"] - - -class NestedRadiationSerializer(RadiationSerializer): - class Meta: - model = Radiation - exclude = ["program_id", "submitter_donor_id", "submitter_treatment_id", "id"] - - -class NestedSurgerySerializer(SurgerySerializer): - class Meta: - model = Surgery - exclude = ["program_id", "submitter_donor_id", "submitter_treatment_id", "id"] - - -class NestedBiomarkerSerializer(BiomarkerSerializer): - class Meta: - model = Biomarker - exclude = [ - "program_id", - "submitter_donor_id", - "id", - ] - - -class NestedFollowUpSerializer(FollowUpSerializer): - class Meta: - model = FollowUp - fields = [ - "submitter_follow_up_id", - "date_of_followup", - "disease_status_at_followup", - "relapse_type", - "date_of_relapse", - "method_of_progression_status", - "anatomic_site_progression_or_recurrence", - "recurrence_tumour_staging_system", - "recurrence_t_category", - "recurrence_n_category", - "recurrence_m_category", - "recurrence_stage_group", - ] - - -class NestedTreatmentSerializer(TreatmentSerializer): - chemotherapies = serializers.SerializerMethodField() - hormone_therapies = serializers.SerializerMethodField() - immunotherapies = serializers.SerializerMethodField() - radiations = serializers.SerializerMethodField() - surgeries = serializers.SerializerMethodField() - followups = serializers.SerializerMethodField() - - @extend_schema_field(ListSerializer(child=NestedChemotherapySerializer())) - def get_chemotherapies(self, obj): - chemotherapies = obj.chemotherapy_set.all() - return NestedChemotherapySerializer(chemotherapies, many=True).data - - @extend_schema_field(ListSerializer(child=NestedHormoneTherapySerializer())) - def get_hormone_therapies(self, obj): - hormone_therapies = obj.hormonetherapy_set.all() - return NestedHormoneTherapySerializer(hormone_therapies, many=True).data - - @extend_schema_field(ListSerializer(child=NestedImmunotherapySerializer())) - def get_immunotherapies(self, obj): - immunotherapies = obj.immunotherapy_set.all() - return NestedImmunotherapySerializer(immunotherapies, many=True).data - - @extend_schema_field(ListSerializer(child=NestedRadiationSerializer())) - def get_radiations(self, obj): - radiations = obj.radiation_set.all() - return NestedRadiationSerializer(radiations, many=True).data - - @extend_schema_field(ListSerializer(child=NestedSurgerySerializer())) - def get_surgeries(self, obj): - surgeries = obj.surgery_set.all() - return NestedSurgerySerializer(surgeries, many=True).data - - @extend_schema_field(ListSerializer(child=NestedFollowUpSerializer())) - def get_followups(self, obj): - followups = obj.followup_set.all() - return NestedFollowUpSerializer(followups, many=True).data - - class Meta: - model = Treatment - fields = [ - "submitter_treatment_id", - "is_primary_treatment", - "treatment_start_date", - "treatment_end_date", - "treatment_setting", - "treatment_intent", - "days_per_cycle", - "number_of_cycles", - "line_of_treatment", - "status_of_treatment", - "treatment_type", - "response_to_treatment_criteria_method", - "response_to_treatment", - "chemotherapies", # nested child - "hormone_therapies", # nested child - "immunotherapies", # nested child - "radiations", # nested child - "surgeries", # nested child - "followups", # nested child - ] - - -class NestedSpecimenSerializer(SpecimenSerializer): - sample_registrations = serializers.SerializerMethodField() - - @extend_schema_field(ListSerializer(child=NestedSampleRegistrationSerializer())) - def get_sample_registrations(self, obj): - sample_registrations = obj.sampleregistration_set.all() - return NestedSampleRegistrationSerializer(sample_registrations, many=True).data - - class Meta: - model = Specimen - fields = [ - "submitter_specimen_id", - "pathological_tumour_staging_system", - "pathological_t_category", - "pathological_n_category", - "pathological_m_category", - "pathological_stage_group", - "specimen_collection_date", - "specimen_storage", - "tumour_histological_type", - "specimen_anatomic_location", - "reference_pathology_confirmed_diagnosis", - "reference_pathology_confirmed_tumour_presence", - "tumour_grading_system", - "tumour_grade", - "percent_tumour_cells_range", - "percent_tumour_cells_measurement_method", - "specimen_processing", - "specimen_laterality", - "sample_registrations", # nested child - ] - - -class NestedPrimaryDiagnosisSerializer(PrimaryDiagnosisSerializer): - specimens = serializers.SerializerMethodField() - treatments = serializers.SerializerMethodField() - followups = serializers.SerializerMethodField() - - @extend_schema_field(ListSerializer(child=NestedSpecimenSerializer())) - def get_specimens(self, obj): - spicemen = obj.specimen_set.all() - return NestedSpecimenSerializer(spicemen, many=True).data - - @extend_schema_field(ListSerializer(child=NestedTreatmentSerializer())) - def get_treatments(self, obj): - treatments = obj.treatment_set.all() - return NestedTreatmentSerializer(treatments, many=True).data - - @extend_schema_field(ListSerializer(child=NestedFollowUpSerializer())) - def get_followups(self, obj): - followups = obj.followup_set.all() - return NestedFollowUpSerializer(followups, many=True).data - - class Meta: - model = PrimaryDiagnosis - fields = [ - "submitter_primary_diagnosis_id", - "date_of_diagnosis", - "cancer_type_code", - "basis_of_diagnosis", - "lymph_nodes_examined_status", - "lymph_nodes_examined_method", - "number_lymph_nodes_positive", - "clinical_tumour_staging_system", - "clinical_t_category", - "clinical_n_category", - "clinical_m_category", - "clinical_stage_group", - "laterality", - "specimens", # nested child - "treatments", # nested child - "followups", # nested child - ] - - -class DonorWithClinicalDataSerializer(DonorSerializer): - primary_diagnoses = serializers.SerializerMethodField() - comorbidities = serializers.SerializerMethodField() - exposures = serializers.SerializerMethodField() - biomarkers = serializers.SerializerMethodField() - followups = serializers.SerializerMethodField() - - @extend_schema_field(ListSerializer(child=NestedPrimaryDiagnosisSerializer())) - def get_primary_diagnoses(self, obj): - primary_diagnoses = obj.primarydiagnosis_set.all() - return NestedPrimaryDiagnosisSerializer(primary_diagnoses, many=True).data - - @extend_schema_field(ListSerializer(child=NestedComorbiditySerializer())) - def get_comorbidities(self, obj): - comorbidities = obj.comorbidity_set.all() - return NestedComorbiditySerializer(comorbidities, many=True).data - - @extend_schema_field(ListSerializer(child=NestedExposureSerializer())) - def get_exposures(self, obj): - exposures = obj.exposure_set.all() - return NestedExposureSerializer(exposures, many=True).data - - @extend_schema_field(ListSerializer(child=NestedBiomarkerSerializer())) - def get_biomarkers(self, obj): - biomarkers = obj.biomarker_set.all() - return NestedBiomarkerSerializer(biomarkers, many=True).data - - @extend_schema_field(ListSerializer(child=NestedFollowUpSerializer())) - def get_followups(self, obj): - followups = obj.followup_set.all() - return NestedFollowUpSerializer(followups, many=True).data - - class Meta: - model = Donor - fields = [ - "submitter_donor_id", - "program_id", - "lost_to_followup_after_clinical_event_identifier", - "lost_to_followup_reason", - "date_alive_after_lost_to_followup", - "is_deceased", - "cause_of_death", - "date_of_birth", - "date_of_death", - "gender", - "sex_at_birth", - "primary_site", - "primary_diagnoses", # nested child - "comorbidities", # nested child - "exposures", # nested child - "biomarkers", # nested child - "followups", # nested child - ] diff --git a/chord_metadata_service/mohpackets/signals.py b/chord_metadata_service/mohpackets/signals.py new file mode 100644 index 000000000..65f3d4532 --- /dev/null +++ b/chord_metadata_service/mohpackets/signals.py @@ -0,0 +1,189 @@ +import logging + +from django.core.exceptions import ObjectDoesNotExist +from django.db.models.signals import pre_save +from django.dispatch import receiver + +from chord_metadata_service.mohpackets.models import ( + Biomarker, + Chemotherapy, + Comorbidity, + Donor, + Exposure, + FollowUp, + HormoneTherapy, + Immunotherapy, + PrimaryDiagnosis, + Radiation, + SampleRegistration, + Specimen, + Surgery, + Treatment, +) + +logger = logging.getLogger(__name__) +""" + This module contains the SIGNALS for the MoH Models. + Due to the change to include UUID in each models, the UUID and FK have to be either provided + upon ingest or in katsu before saving the object + The pre_save signal should check this saving process before saving to the database + to ensure the the FK is properly link: + - If there is no donor_uuid, need to find the Donor and link it + - If donor_uuid exists, continue + + Author: Son Chau +""" + + +# helper function +def set_foreign_key(sender, instance, target_model, submitter_id_field, uuid_id_field): + if not getattr(instance, uuid_id_field) and getattr( + instance, submitter_id_field + ): # and getattr(instance, submitter_id_field) + try: + related_object = target_model.objects.get( + **{ + submitter_id_field: getattr(instance, submitter_id_field), + "program_id": instance.program_id, + } + ) + setattr(instance, uuid_id_field, related_object.uuid) + except ObjectDoesNotExist as e: + logger.error( + f"Error setting foreign key for {sender.__name__} instance: {e}" + ) + + +@receiver(pre_save, sender=Biomarker) +def create_biomarker_foreign_key(sender, instance, **kwargs): + set_foreign_key(sender, instance, Donor, "submitter_donor_id", "donor_uuid_id") + + +@receiver(pre_save, sender=Comorbidity) +def create_comorbidity_foreign_key(sender, instance, **kwargs): + set_foreign_key(sender, instance, Donor, "submitter_donor_id", "donor_uuid_id") + + +@receiver(pre_save, sender=Exposure) +def create_exposure_foreign_key(sender, instance, **kwargs): + set_foreign_key(sender, instance, Donor, "submitter_donor_id", "donor_uuid_id") + + +@receiver(pre_save, sender=PrimaryDiagnosis) +def create_primary_diagnosis_foreign_key(sender, instance, **kwargs): + set_foreign_key(sender, instance, Donor, "submitter_donor_id", "donor_uuid_id") + + +@receiver(pre_save, sender=Specimen) +def create_specimen_foreign_key(sender, instance, **kwargs): + set_foreign_key(sender, instance, Donor, "submitter_donor_id", "donor_uuid_id") + set_foreign_key( + sender, + instance, + PrimaryDiagnosis, + "submitter_primary_diagnosis_id", + "primary_diagnosis_uuid_id", + ) + + +@receiver(pre_save, sender=SampleRegistration) +def create_sample_registration_foreign_key(sender, instance, **kwargs): + set_foreign_key(sender, instance, Donor, "submitter_donor_id", "donor_uuid_id") + set_foreign_key( + sender, + instance, + Specimen, + "submitter_specimen_id", + "specimen_uuid_id", + ) + + +@receiver(pre_save, sender=Treatment) +def create_treatment_foreign_key(sender, instance, **kwargs): + set_foreign_key(sender, instance, Donor, "submitter_donor_id", "donor_uuid_id") + set_foreign_key( + sender, + instance, + PrimaryDiagnosis, + "submitter_primary_diagnosis_id", + "primary_diagnosis_uuid_id", + ) + + +@receiver(pre_save, sender=Chemotherapy) +def create_chemotherapy_foreign_key(sender, instance, **kwargs): + set_foreign_key(sender, instance, Donor, "submitter_donor_id", "donor_uuid_id") + set_foreign_key( + sender, + instance, + Treatment, + "submitter_treatment_id", + "treatment_uuid_id", + ) + + +@receiver(pre_save, sender=HormoneTherapy) +def create_hormone_therapy_foreign_key(sender, instance, **kwargs): + set_foreign_key(sender, instance, Donor, "submitter_donor_id", "donor_uuid_id") + set_foreign_key( + sender, + instance, + Treatment, + "submitter_treatment_id", + "treatment_uuid_id", + ) + + +@receiver(pre_save, sender=Radiation) +def create_radiation_foreign_key(sender, instance, **kwargs): + set_foreign_key(sender, instance, Donor, "submitter_donor_id", "donor_uuid_id") + set_foreign_key( + sender, + instance, + Treatment, + "submitter_treatment_id", + "treatment_uuid_id", + ) + + +@receiver(pre_save, sender=Immunotherapy) +def create_immunotherapy_foreign_key(sender, instance, **kwargs): + set_foreign_key(sender, instance, Donor, "submitter_donor_id", "donor_uuid_id") + set_foreign_key( + sender, + instance, + Treatment, + "submitter_treatment_id", + "treatment_uuid_id", + ) + + +@receiver(pre_save, sender=Surgery) +def create_surgery_foreign_key(sender, instance, **kwargs): + set_foreign_key(sender, instance, Donor, "submitter_donor_id", "donor_uuid_id") + set_foreign_key( + sender, + instance, + Treatment, + "submitter_treatment_id", + "treatment_uuid_id", + ) + + +@receiver(pre_save, sender=FollowUp) +def create_follow_up_foreign_key(sender, instance, **kwargs): + set_foreign_key(sender, instance, Donor, "submitter_donor_id", "donor_uuid_id") + set_foreign_key( + sender, + instance, + Treatment, + "submitter_treatment_id", + "treatment_uuid_id", + ) + set_foreign_key( + sender, + instance, + PrimaryDiagnosis, + "submitter_primary_diagnosis_id", + "primary_diagnosis_uuid_id", + ) diff --git a/chord_metadata_service/mohpackets/tests/endpoints/base.py b/chord_metadata_service/mohpackets/tests/endpoints/base.py index 6d26a9f13..c1d2cdfdb 100644 --- a/chord_metadata_service/mohpackets/tests/endpoints/base.py +++ b/chord_metadata_service/mohpackets/tests/endpoints/base.py @@ -3,11 +3,8 @@ import factory from django.conf import settings -from django.test import TestCase -from rest_framework.test import APIClient +from django.test import Client, TestCase -from chord_metadata_service.mohpackets.api_authorized import AuthorizedMixin -from chord_metadata_service.mohpackets.authentication import LocalAuthentication from chord_metadata_service.mohpackets.tests.endpoints.factories import ( ChemotherapyFactory, DonorFactory, @@ -34,6 +31,8 @@ class MyAPITestCase(BaseTestCase): def test_my_endpoint(self): # Write your test logic here using the initialized data and test users. + + Author: Son Chau """ @@ -54,19 +53,19 @@ def setUpTestData(cls): 4, program_id=factory.Iterator(cls.programs) ) cls.primary_diagnoses = PrimaryDiagnosisFactory.create_batch( - 8, submitter_donor_id=factory.Iterator(cls.donors) + 8, donor_uuid=factory.Iterator(cls.donors) ) cls.specimens = SpecimenFactory.create_batch( - 16, submitter_primary_diagnosis_id=factory.Iterator(cls.primary_diagnoses) + 16, primary_diagnosis_uuid=factory.Iterator(cls.primary_diagnoses) ) cls.sample_registrations = SampleRegistrationFactory.create_batch( - 32, submitter_specimen_id=factory.Iterator(cls.specimens) + 32, specimen_uuid=factory.Iterator(cls.specimens) ) cls.treatments = TreatmentFactory.create_batch( - 16, submitter_primary_diagnosis_id=factory.Iterator(cls.primary_diagnoses) + 16, primary_diagnosis_uuid=factory.Iterator(cls.primary_diagnoses) ) cls.chemotherapies = ChemotherapyFactory.create_batch( - 4, submitter_treatment_id=factory.Iterator(cls.treatments) + 4, treatment_uuid=factory.Iterator(cls.treatments) ) # Define test users with permission and datasets access @@ -109,6 +108,4 @@ def setUpTestData(cls): def setUp(self): logging.disable(logging.WARNING) - # Initialize the client before each test method - self.client = APIClient() - AuthorizedMixin.authentication_classes = [LocalAuthentication] + self.client = Client() diff --git a/chord_metadata_service/mohpackets/tests/endpoints/factories.py b/chord_metadata_service/mohpackets/tests/endpoints/factories.py index 3e52fe4f8..1287bf826 100644 --- a/chord_metadata_service/mohpackets/tests/endpoints/factories.py +++ b/chord_metadata_service/mohpackets/tests/endpoints/factories.py @@ -40,6 +40,7 @@ These factories use the Factory Boy library (https://factoryboy.readthedocs.io/) to generate test data. + Author: Son Chau """ @@ -122,12 +123,15 @@ class Meta: ) # Set the foreign keys - program_id = factory.SelfAttribute("submitter_donor_id.program_id") - submitter_donor_id = factory.SubFactory(DonorFactory) + # program_id = factory.SelfAttribute("submitter_donor_id.program_id") + # submitter_donor_id = factory.SubFactory(DonorFactory) + program_id = factory.SelfAttribute("donor_uuid.program_id") + submitter_donor_id = factory.SelfAttribute("donor_uuid.submitter_donor_id") + donor_uuid = factory.SubFactory(DonorFactory) @factory.post_generation def set_clinical_event_identifier(self, create, extracted, **kwargs): - donor = self.submitter_donor_id + donor = self.donor_uuid if not donor.is_deceased: donor.lost_to_followup_after_clinical_event_identifier = ( self.submitter_primary_diagnosis_id @@ -189,11 +193,20 @@ class Meta: ) # set foregin keys - program_id = factory.SelfAttribute("submitter_primary_diagnosis_id.program_id") + # program_id = factory.SelfAttribute("submitter_primary_diagnosis_id.program_id") + # submitter_donor_id = factory.SelfAttribute( + # "submitter_primary_diagnosis_id.submitter_donor_id" + # ) + # submitter_primary_diagnosis_id = factory.SubFactory(PrimaryDiagnosisFactory) + program_id = factory.SelfAttribute("primary_diagnosis_uuid.program_id") submitter_donor_id = factory.SelfAttribute( - "submitter_primary_diagnosis_id.submitter_donor_id" + "primary_diagnosis_uuid.submitter_donor_id" ) - submitter_primary_diagnosis_id = factory.SubFactory(PrimaryDiagnosisFactory) + donor_uuid = factory.SelfAttribute("primary_diagnosis_uuid.donor_uuid") + submitter_primary_diagnosis_id = factory.SelfAttribute( + "primary_diagnosis_uuid.submitter_primary_diagnosis_id" + ) + primary_diagnosis_uuid = factory.SubFactory(PrimaryDiagnosisFactory) class SampleRegistrationFactory(factory.django.DjangoModelFactory): @@ -213,11 +226,16 @@ class Meta: sample_type = factory.Faker("random_element", elements=PERM_VAL.SAMPLE_TYPE) # set foregin keys - program_id = factory.SelfAttribute("submitter_specimen_id.program_id") - submitter_donor_id = factory.SelfAttribute( - "submitter_specimen_id.submitter_donor_id" - ) - submitter_specimen_id = factory.SubFactory(SpecimenFactory) + # program_id = factory.SelfAttribute("submitter_specimen_id.program_id") + # submitter_donor_id = factory.SelfAttribute( + # "submitter_specimen_id.submitter_donor_id" + # ) + # submitter_specimen_id = factory.SubFactory(SpecimenFactory) + program_id = factory.SelfAttribute("specimen_uuid.program_id") + submitter_donor_id = factory.SelfAttribute("specimen_uuid.submitter_donor_id") + donor_uuid = factory.SelfAttribute("specimen_uuid.donor_uuid") + submitter_specimen_id = factory.SelfAttribute("specimen_uuid.submitter_specimen_id") + specimen_uuid = factory.SubFactory(SpecimenFactory) class TreatmentFactory(factory.django.DjangoModelFactory): @@ -256,11 +274,20 @@ class Meta: ) # set foregin keys - program_id = factory.SelfAttribute("submitter_primary_diagnosis_id.program_id") + # program_id = factory.SelfAttribute("submitter_primary_diagnosis_id.program_id") + # submitter_donor_id = factory.SelfAttribute( + # "submitter_primary_diagnosis_id.submitter_donor_id" + # ) + # submitter_primary_diagnosis_id = factory.SubFactory(PrimaryDiagnosisFactory) + program_id = factory.SelfAttribute("primary_diagnosis_uuid.program_id") submitter_donor_id = factory.SelfAttribute( - "submitter_primary_diagnosis_id.submitter_donor_id" + "primary_diagnosis_uuid.submitter_donor_id" ) - submitter_primary_diagnosis_id = factory.SubFactory(PrimaryDiagnosisFactory) + donor_uuid = factory.SelfAttribute("primary_diagnosis_uuid.donor_uuid") + submitter_primary_diagnosis_id = factory.SelfAttribute( + "primary_diagnosis_uuid.submitter_primary_diagnosis_id" + ) + primary_diagnosis_uuid = factory.SubFactory(PrimaryDiagnosisFactory) class ChemotherapyFactory(factory.django.DjangoModelFactory): @@ -268,7 +295,7 @@ class Meta: model = Chemotherapy # default values - id = factory.LazyFunction(uuid.uuid4) + uuid = factory.LazyFunction(uuid.uuid4) drug_reference_database = factory.Faker( "random_element", elements=PERM_VAL.DRUG_REFERENCE_DB ) @@ -281,11 +308,18 @@ class Meta: actual_cumulative_drug_dose = factory.Faker("random_int", min=1, max=100) # set foregin keys - program_id = factory.SelfAttribute("submitter_treatment_id.program_id") - submitter_donor_id = factory.SelfAttribute( - "submitter_treatment_id.submitter_donor_id" + # program_id = factory.SelfAttribute("submitter_treatment_id.program_id") + # submitter_donor_id = factory.SelfAttribute( + # "submitter_treatment_id.submitter_donor_id" + # ) + # submitter_treatment_id = factory.SubFactory(TreatmentFactory) + program_id = factory.SelfAttribute("treatment_uuid.program_id") + submitter_donor_id = factory.SelfAttribute("treatment_uuid.submitter_donor_id") + donor_uuid = factory.SelfAttribute("treatment_uuid.donor_uuid") + submitter_treatment_id = factory.SelfAttribute( + "treatment_uuid.submitter_treatment_id" ) - submitter_treatment_id = factory.SubFactory(TreatmentFactory) + treatment_uuid = factory.SubFactory(TreatmentFactory) class HormoneTherapyFactory(factory.django.DjangoModelFactory): @@ -293,7 +327,7 @@ class Meta: model = HormoneTherapy # default values - id = factory.LazyFunction(uuid.uuid4) + uuid = factory.LazyFunction(uuid.uuid4) drug_reference_database = factory.Faker( "random_element", elements=PERM_VAL.DRUG_REFERENCE_DB ) @@ -306,11 +340,18 @@ class Meta: actual_cumulative_drug_dose = factory.Faker("random_int", min=1, max=100) # set foreign keys - program_id = factory.SelfAttribute("submitter_treatment_id.program_id") - submitter_donor_id = factory.SelfAttribute( - "submitter_treatment_id.submitter_donor_id" + # program_id = factory.SelfAttribute("submitter_treatment_id.program_id") + # submitter_donor_id = factory.SelfAttribute( + # "submitter_treatment_id.submitter_donor_id" + # ) + # submitter_treatment_id = factory.SubFactory(TreatmentFactory) + program_id = factory.SelfAttribute("treatment_uuid.program_id") + submitter_donor_id = factory.SelfAttribute("treatment_uuid.submitter_donor_id") + donor_uuid = factory.SelfAttribute("treatment_uuid.donor_uuid") + submitter_treatment_id = factory.SelfAttribute( + "treatment_uuid.submitter_treatment_id" ) - submitter_treatment_id = factory.SubFactory(TreatmentFactory) + treatment_uuid = factory.SubFactory(TreatmentFactory) class RadiationFactory(factory.django.DjangoModelFactory): @@ -318,7 +359,7 @@ class Meta: model = Radiation # default values - id = factory.LazyFunction(uuid.uuid4) + uuid = factory.LazyFunction(uuid.uuid4) radiation_therapy_modality = factory.Faker( "random_element", elements=PERM_VAL.RADIATION_THERAPY_MODALITY ) @@ -334,11 +375,18 @@ class Meta: reference_radiation_treatment_id = factory.Faker("word") # set foreign keys - program_id = factory.SelfAttribute("submitter_treatment_id.program_id") - submitter_donor_id = factory.SelfAttribute( - "submitter_treatment_id.submitter_donor_id" + # program_id = factory.SelfAttribute("submitter_treatment_id.program_id") + # submitter_donor_id = factory.SelfAttribute( + # "submitter_treatment_id.submitter_donor_id" + # ) + # submitter_treatment_id = factory.SubFactory(TreatmentFactory) + program_id = factory.SelfAttribute("treatment_uuid.program_id") + submitter_donor_id = factory.SelfAttribute("treatment_uuid.submitter_donor_id") + donor_uuid = factory.SelfAttribute("treatment_uuid.donor_uuid") + submitter_treatment_id = factory.SelfAttribute( + "treatment_uuid.submitter_treatment_id" ) - submitter_treatment_id = factory.SubFactory(TreatmentFactory) + treatment_uuid = factory.SubFactory(TreatmentFactory) class ImmunotherapyFactory(factory.django.DjangoModelFactory): @@ -346,7 +394,7 @@ class Meta: model = Immunotherapy # default values - id = factory.LazyFunction(uuid.uuid4) + uuid = factory.LazyFunction(uuid.uuid4) drug_reference_database = factory.Faker( "random_element", elements=PERM_VAL.DRUG_REFERENCE_DB ) @@ -362,11 +410,18 @@ class Meta: actual_cumulative_drug_dose = factory.Faker("random_int", min=1, max=100) # set foreign keys - program_id = factory.SelfAttribute("submitter_treatment_id.program_id") - submitter_donor_id = factory.SelfAttribute( - "submitter_treatment_id.submitter_donor_id" + # program_id = factory.SelfAttribute("submitter_treatment_id.program_id") + # submitter_donor_id = factory.SelfAttribute( + # "submitter_treatment_id.submitter_donor_id" + # ) + # submitter_treatment_id = factory.SubFactory(TreatmentFactory) + program_id = factory.SelfAttribute("treatment_uuid.program_id") + submitter_donor_id = factory.SelfAttribute("treatment_uuid.submitter_donor_id") + donor_uuid = factory.SelfAttribute("treatment_uuid.donor_uuid") + submitter_treatment_id = factory.SelfAttribute( + "treatment_uuid.submitter_treatment_id" ) - submitter_treatment_id = factory.SubFactory(TreatmentFactory) + treatment_uuid = factory.SubFactory(TreatmentFactory) class SurgeryFactory(factory.django.DjangoModelFactory): @@ -374,7 +429,7 @@ class Meta: model = Surgery # default values - id = factory.LazyFunction(uuid.uuid4) + uuid = factory.LazyFunction(uuid.uuid4) surgery_type = factory.Faker("random_element", elements=PERM_VAL.SURGERY_TYPE) surgery_site = factory.Faker("word") surgery_location = factory.Faker( @@ -414,11 +469,18 @@ class Meta: submitter_specimen_id = None # set foreign keys - program_id = factory.SelfAttribute("submitter_treatment_id.program_id") - submitter_donor_id = factory.SelfAttribute( - "submitter_treatment_id.submitter_donor_id" + # program_id = factory.SelfAttribute("submitter_treatment_id.program_id") + # submitter_donor_id = factory.SelfAttribute( + # "submitter_treatment_id.submitter_donor_id" + # ) + # submitter_treatment_id = factory.SubFactory(TreatmentFactory) + program_id = factory.SelfAttribute("treatment_uuid.program_id") + submitter_donor_id = factory.SelfAttribute("treatment_uuid.submitter_donor_id") + donor_uuid = factory.SelfAttribute("treatment_uuid.donor_uuid") + submitter_treatment_id = factory.SelfAttribute( + "treatment_uuid.submitter_treatment_id" ) - submitter_treatment_id = factory.SubFactory(TreatmentFactory) + treatment_uuid = factory.SubFactory(TreatmentFactory) class FollowUpFactory(factory.django.DjangoModelFactory): @@ -457,14 +519,27 @@ class Meta: ) # set foreign keys - program_id = factory.SelfAttribute("submitter_treatment_id.program_id") - submitter_donor_id = factory.SelfAttribute( - "submitter_treatment_id.submitter_donor_id" - ) + # program_id = factory.SelfAttribute("submitter_treatment_id.program_id") + # submitter_donor_id = factory.SelfAttribute( + # "submitter_treatment_id.submitter_donor_id" + # ) + # submitter_primary_diagnosis_id = factory.SelfAttribute( + # "submitter_treatment_id.submitter_primary_diagnosis_id" + # ) + # submitter_treatment_id = factory.SubFactory(TreatmentFactory) + program_id = factory.SelfAttribute("treatment_uuid.program_id") + submitter_donor_id = factory.SelfAttribute("treatment_uuid.submitter_donor_id") + donor_uuid = factory.SelfAttribute("treatment_uuid.donor_uuid") submitter_primary_diagnosis_id = factory.SelfAttribute( - "submitter_treatment_id.submitter_primary_diagnosis_id" + "treatment_uuid.submitter_primary_diagnosis_id" + ) + primary_diagnosis_uuid = factory.SelfAttribute( + "treatment_uuid.primary_diagnosis_uuid" + ) + submitter_treatment_id = factory.SelfAttribute( + "treatment_uuid.submitter_treatment_id" ) - submitter_treatment_id = factory.SubFactory(TreatmentFactory) + treatment_uuid = factory.SubFactory(TreatmentFactory) class BiomarkerFactory(factory.django.DjangoModelFactory): @@ -472,7 +547,7 @@ class Meta: model = Biomarker # default values - id = factory.LazyFunction(uuid.uuid4) + uuid = factory.LazyFunction(uuid.uuid4) test_date = factory.Faker("word") psa_level = factory.Faker("pyint", min_value=0, max_value=100) ca125 = factory.Faker("pyint", min_value=0, max_value=100) @@ -501,8 +576,11 @@ class Meta: submitter_follow_up_id = None # set foreign keys - program_id = factory.SelfAttribute("submitter_donor_id.program_id") - submitter_donor_id = factory.SubFactory(DonorFactory) + # program_id = factory.SelfAttribute("submitter_donor_id.program_id") + # submitter_donor_id = factory.SubFactory(DonorFactory) + program_id = factory.SelfAttribute("donor_uuid.program_id") + submitter_donor_id = factory.SelfAttribute("donor_uuid.submitter_donor_id") + donor_uuid = factory.SubFactory(DonorFactory) class ComorbidityFactory(factory.django.DjangoModelFactory): @@ -510,7 +588,7 @@ class Meta: model = Comorbidity # default values - id = factory.LazyFunction(uuid.uuid4) + uuid = factory.LazyFunction(uuid.uuid4) prior_malignancy = factory.Faker("random_element", elements=PERM_VAL.UBOOLEAN) laterality_of_prior_malignancy = factory.Faker( "random_element", elements=PERM_VAL.MALIGNANCY_LATERALITY @@ -523,8 +601,11 @@ class Meta: comorbidity_treatment = factory.Faker("word") # set foreign keys - program_id = factory.SelfAttribute("submitter_donor_id.program_id") - submitter_donor_id = factory.SubFactory(DonorFactory) + # program_id = factory.SelfAttribute("submitter_donor_id.program_id") + # submitter_donor_id = factory.SubFactory(DonorFactory) + program_id = factory.SelfAttribute("donor_uuid.program_id") + submitter_donor_id = factory.SelfAttribute("donor_uuid.submitter_donor_id") + donor_uuid = factory.SubFactory(DonorFactory) class ExposureFactory(factory.django.DjangoModelFactory): @@ -532,7 +613,7 @@ class Meta: model = Exposure # default values - id = factory.LazyFunction(uuid.uuid4) + uuid = factory.LazyFunction(uuid.uuid4) tobacco_smoking_status = factory.Faker( "random_element", elements=PERM_VAL.SMOKING_STATUS ) @@ -540,5 +621,8 @@ class Meta: pack_years_smoked = factory.Faker("random_int") # set foreign keys - program_id = factory.SelfAttribute("submitter_donor_id.program_id") - submitter_donor_id = factory.SubFactory(DonorFactory) + # program_id = factory.SelfAttribute("submitter_donor_id.program_id") + # submitter_donor_id = factory.SubFactory(DonorFactory) + program_id = factory.SelfAttribute("donor_uuid.program_id") + submitter_donor_id = factory.SelfAttribute("donor_uuid.submitter_donor_id") + donor_uuid = factory.SubFactory(DonorFactory) diff --git a/chord_metadata_service/mohpackets/tests/endpoints/test_chemotherapy.py b/chord_metadata_service/mohpackets/tests/endpoints/test_chemotherapy.py index e055ca845..2f6038cd9 100644 --- a/chord_metadata_service/mohpackets/tests/endpoints/test_chemotherapy.py +++ b/chord_metadata_service/mohpackets/tests/endpoints/test_chemotherapy.py @@ -1,11 +1,9 @@ -import factory +from http import HTTPStatus + from django.conf import settings -from django.db.models import CharField -from django.db.models.functions import Cast -from rest_framework import status +from django.forms.models import model_to_dict from chord_metadata_service.mohpackets.models import Chemotherapy -from chord_metadata_service.mohpackets.serializers import ChemotherapySerializer from chord_metadata_service.mohpackets.tests.endpoints.base import BaseTestCase from chord_metadata_service.mohpackets.tests.endpoints.factories import ( ChemotherapyFactory, @@ -17,7 +15,7 @@ class IngestTestCase(BaseTestCase): def setUp(self): super().setUp() - self.chemotherapy_url = "/v2/ingest/chemotherapies/" + self.chemotherapy_url = "/v2/ingest/chemotherapy/" def test_chemotherapy_create_authorized(self): """ @@ -28,21 +26,19 @@ def test_chemotherapy_create_authorized(self): - An authorized user (user_2) with admin permission. - User can perform a POST request for chemotherapy record creation. """ - chemotherapy_data = ChemotherapyFactory.build_batch( - submitter_treatment_id=factory.Iterator(self.treatments), - size=2, - ) - serialized_data = ChemotherapySerializer(chemotherapy_data, many=True).data + chemotherapy = ChemotherapyFactory.build(treatment_uuid=self.treatments[0]) + data_dict = model_to_dict(chemotherapy) response = self.client.post( self.chemotherapy_url, - data=serialized_data, + data=data_dict, format="json", + content_type="application/json", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) self.assertEqual( response.status_code, - status.HTTP_201_CREATED, - f"Expected status code {status.HTTP_201_CREATED}, but got {response.status_code}. " + HTTPStatus.CREATED, + f"Expected status code {HTTPStatus.CREATED}, but got {response.status_code}. " f"Response content: {response.content}", ) @@ -55,18 +51,16 @@ def test_chemotherapy_create_unauthorized(self): - An unauthorized user (user_0) with no permission. - User cannot perform a POST request for chemotherapy record creation. """ - chemotherapy_data = ChemotherapyFactory.build_batch( - submitter_treatment_id=factory.Iterator(self.treatments), - size=2, - ) - serialized_data = ChemotherapySerializer(chemotherapy_data, many=True).data + chemotherapy = ChemotherapyFactory.build(treatment_uuid=self.treatments[0]) + data_dict = model_to_dict(chemotherapy) response = self.client.post( self.chemotherapy_url, - data=serialized_data, + data=data_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_0.token}", ) - self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(response.status_code, HTTPStatus.UNAUTHORIZED) # GET API @@ -88,7 +82,7 @@ def test_get_chemotherapy_200_ok(self): self.chemotherapy_url, HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.status_code, HTTPStatus.OK) def test_get_chemotherapy_301_redirect(self): """ @@ -102,7 +96,7 @@ def test_get_chemotherapy_301_redirect(self): "/v2/authorized/chemotherapies", HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_301_MOVED_PERMANENTLY) + self.assertEqual(response.status_code, HTTPStatus.MOVED_PERMANENTLY) # OTHERS @@ -128,20 +122,22 @@ def test_get_datasets_match_permission(self): for user_data in settings.LOCAL_AUTHORIZED_DATASET if user_data["token"] == user.token ) - # get chemotherapy records' datasets from the database - expected_datasets = list( - Chemotherapy.objects.filter(program_id__in=authorized_datasets) - .annotate(uuid_as_string=Cast("id", CharField())) - .values_list("uuid_as_string", flat=True) - ) + expected_datasets = [ + str(dataset) + for dataset in Chemotherapy.objects.filter( + program_id__in=authorized_datasets + ) + ] # get chemotherapy records' datasets from the API response = self.client.get( self.chemotherapy_url, HTTP_AUTHORIZATION=f"Bearer {user.token}", ) + response = response.json() response_data = [ - chemotherapy["id"] for chemotherapy in response.data["results"] + f'{chemotherapy["program_id"]}: {chemotherapy["submitter_treatment_id"]}' + for chemotherapy in response["items"] ] self.assertEqual(response_data, expected_datasets) @@ -154,7 +150,7 @@ def test_post_request_405(self): response = self.client.post( self.chemotherapy_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_put_request_405(self): """ @@ -164,7 +160,7 @@ def test_put_request_405(self): response = self.client.put( self.chemotherapy_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_patch_request_405(self): """ @@ -174,7 +170,7 @@ def test_patch_request_405(self): response = self.client.patch( self.chemotherapy_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_delete_request_404(self): """ @@ -186,7 +182,7 @@ def test_delete_request_404(self): """ chemotherapy_to_delete = ChemotherapyFactory() response = self.client.delete( - f"{self.chemotherapy_url}{chemotherapy_to_delete.id}/", + f"{self.chemotherapy_url}{chemotherapy_to_delete.uuid}/", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) - self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + self.assertEqual(response.status_code, HTTPStatus.NOT_FOUND) diff --git a/chord_metadata_service/mohpackets/tests/endpoints/test_donor.py b/chord_metadata_service/mohpackets/tests/endpoints/test_donor.py index fd96021ab..60d6c3f13 100644 --- a/chord_metadata_service/mohpackets/tests/endpoints/test_donor.py +++ b/chord_metadata_service/mohpackets/tests/endpoints/test_donor.py @@ -1,9 +1,9 @@ -import factory +from http import HTTPStatus + from django.conf import settings -from rest_framework import status +from django.forms.models import model_to_dict from chord_metadata_service.mohpackets.models import Donor -from chord_metadata_service.mohpackets.serializers import DonorSerializer from chord_metadata_service.mohpackets.tests.endpoints.base import BaseTestCase from chord_metadata_service.mohpackets.tests.endpoints.factories import DonorFactory @@ -13,7 +13,7 @@ class IngestTestCase(BaseTestCase): def setUp(self): super().setUp() - self.donor_url = "/v2/ingest/donors/" + self.donor_url = "/v2/ingest/donor/" def test_donor_create_authorized(self): """ @@ -24,43 +24,41 @@ def test_donor_create_authorized(self): - An authorized user (user_2) with admin permission. - User can perform a POST request for donor creation. """ - donor_data = DonorFactory.build_batch( - program_id=factory.Iterator(self.programs), size=2 - ) - serialized_data = DonorSerializer(donor_data, many=True).data + donor = DonorFactory.build(program_id=self.programs[0]) + donor_dict = model_to_dict(donor) response = self.client.post( self.donor_url, - data=serialized_data, + data=donor_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) self.assertEqual( response.status_code, - status.HTTP_201_CREATED, - f"Expected status code {status.HTTP_201_CREATED}, but got {response.status_code}. " + HTTPStatus.CREATED, + f"Expected status code {HTTPStatus.CREATED}, but got {response.status_code}. " f"Response content: {response.content}", ) def test_donor_create_unauthorized(self): """ - Test that a non-admin user attempting to create a donor receives a 403 Forbidden response. + Test that a non-admin user attempting to create a donor receives a 401 response. Testing Strategy: - Build Donor data based on the existing program_id - An unauthorized user (user_0) with no permission. - User cannot perform a POST request for donor creation. """ - donor_data = DonorFactory.build_batch( - program_id=factory.Iterator(self.programs), size=2 - ) - serialized_data = DonorSerializer(donor_data, many=True).data + donor = DonorFactory.build(program_id=self.programs[0]) + donor_dict = model_to_dict(donor) response = self.client.post( self.donor_url, - data=serialized_data, + data=donor_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_0.token}", ) - self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(response.status_code, HTTPStatus.UNAUTHORIZED) # GET API @@ -82,7 +80,7 @@ def test_get_donor_200_ok(self): self.donor_url, HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.status_code, HTTPStatus.OK) def test_get_donor_301_redirect(self): """ @@ -95,7 +93,7 @@ def test_get_donor_301_redirect(self): response = self.client.get( "/v2/authorized/donors", HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}" ) - self.assertEqual(response.status_code, status.HTTP_301_MOVED_PERMANENTLY) + self.assertEqual(response.status_code, HTTPStatus.MOVED_PERMANENTLY) # OTHERS @@ -133,9 +131,8 @@ def test_get_datasets_match_permission(self): self.donor_url, HTTP_AUTHORIZATION=f"Bearer {user.token}", ) - response_data = [ - donor["submitter_donor_id"] for donor in response.data["results"] - ] + response = response.json() + response_data = [donor["submitter_donor_id"] for donor in response["items"]] self.assertEqual(response_data, expected_donors) @@ -147,7 +144,7 @@ def test_post_request_405(self): response = self.client.post( self.donor_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_put_request_405(self): """ @@ -157,7 +154,7 @@ def test_put_request_405(self): response = self.client.put( self.donor_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_patch_request_405(self): """ @@ -167,7 +164,7 @@ def test_patch_request_405(self): response = self.client.patch( self.donor_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_delete_request_404(self): """ @@ -182,4 +179,4 @@ def test_delete_request_404(self): f"{self.donor_url}{donor_to_delete.submitter_donor_id}/", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) - self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + self.assertEqual(response.status_code, HTTPStatus.NOT_FOUND) diff --git a/chord_metadata_service/mohpackets/tests/endpoints/test_follow_up.py b/chord_metadata_service/mohpackets/tests/endpoints/test_follow_up.py index 0f57b1d2d..1d5dd90df 100644 --- a/chord_metadata_service/mohpackets/tests/endpoints/test_follow_up.py +++ b/chord_metadata_service/mohpackets/tests/endpoints/test_follow_up.py @@ -1,9 +1,9 @@ -import factory +from http import HTTPStatus + from django.conf import settings -from rest_framework import status +from django.forms.models import model_to_dict from chord_metadata_service.mohpackets.models import FollowUp -from chord_metadata_service.mohpackets.serializers import FollowUpSerializer from chord_metadata_service.mohpackets.tests.endpoints.base import BaseTestCase from chord_metadata_service.mohpackets.tests.endpoints.factories import FollowUpFactory @@ -13,7 +13,7 @@ class IngestTestCase(BaseTestCase): def setUp(self): super().setUp() - self.follow_up_url = "/v2/ingest/follow_ups/" + self.follow_up_url = "/v2/ingest/follow_up/" def test_follow_up_create_authorized(self): """ @@ -24,21 +24,19 @@ def test_follow_up_create_authorized(self): - An authorized user (user_2) with admin permission. - User can perform a POST request for follow-up creation. """ - follow_up_data = FollowUpFactory.build_batch( - submitter_treatment_id=factory.Iterator(self.treatments), - size=2, - ) - serialized_data = FollowUpSerializer(follow_up_data, many=True).data + follow_up = FollowUpFactory.build(treatment_uuid=self.treatments[0]) + data_dict = model_to_dict(follow_up) response = self.client.post( self.follow_up_url, - data=serialized_data, + data=data_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) self.assertEqual( response.status_code, - status.HTTP_201_CREATED, - f"Expected status code {status.HTTP_201_CREATED}, but got {response.status_code}. " + HTTPStatus.CREATED, + f"Expected status code {HTTPStatus.CREATED}, but got {response.status_code}. " f"Response content: {response.content}", ) @@ -51,18 +49,16 @@ def test_follow_up_create_unauthorized(self): - An unauthorized user (user_0) with no permission. - User cannot perform a POST request for follow-up creation. """ - follow_up_data = FollowUpFactory.build_batch( - submitter_treatment_id=factory.Iterator(self.treatments), - size=2, - ) - serialized_data = FollowUpSerializer(follow_up_data, many=True).data + follow_up = FollowUpFactory.build(treatment_uuid=self.treatments[0]) + data_dict = model_to_dict(follow_up) response = self.client.post( self.follow_up_url, - data=serialized_data, + data=data_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_0.token}", ) - self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(response.status_code, HTTPStatus.UNAUTHORIZED) # GET API @@ -84,7 +80,7 @@ def test_get_follow_ups_200_ok(self): self.follow_ups_url, HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.status_code, HTTPStatus.OK) def test_get_follow_ups_301_redirect(self): """ @@ -98,7 +94,7 @@ def test_get_follow_ups_301_redirect(self): "/v2/authorized/follow_ups", HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_301_MOVED_PERMANENTLY) + self.assertEqual(response.status_code, HTTPStatus.MOVED_PERMANENTLY) # OTHERS @@ -136,9 +132,9 @@ def test_get_datasets_match_permission(self): self.follow_ups_url, HTTP_AUTHORIZATION=f"Bearer {user.token}", ) + response = response.json() response_data = [ - follow_up["submitter_follow_up_id"] - for follow_up in response.data["results"] + follow_up["submitter_follow_up_id"] for follow_up in response["items"] ] self.assertEqual(response_data, expected_datasets) @@ -151,7 +147,7 @@ def test_post_request_405(self): response = self.client.post( self.follow_ups_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_put_request_405(self): """ @@ -161,7 +157,7 @@ def test_put_request_405(self): response = self.client.put( self.follow_ups_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_patch_request_405(self): """ @@ -171,7 +167,7 @@ def test_patch_request_405(self): response = self.client.patch( self.follow_ups_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_delete_request_404(self): """ @@ -186,4 +182,4 @@ def test_delete_request_404(self): f"{self.follow_ups_url}{follow_up_to_delete.submitter_follow_up_id}/", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) - self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + self.assertEqual(response.status_code, HTTPStatus.NOT_FOUND) diff --git a/chord_metadata_service/mohpackets/tests/endpoints/test_primary_diagnoses.py b/chord_metadata_service/mohpackets/tests/endpoints/test_primary_diagnoses.py index 2c9004ce9..c03d7e988 100644 --- a/chord_metadata_service/mohpackets/tests/endpoints/test_primary_diagnoses.py +++ b/chord_metadata_service/mohpackets/tests/endpoints/test_primary_diagnoses.py @@ -1,9 +1,9 @@ -import factory +from http import HTTPStatus + from django.conf import settings -from rest_framework import status +from django.forms.models import model_to_dict from chord_metadata_service.mohpackets.models import PrimaryDiagnosis -from chord_metadata_service.mohpackets.serializers import PrimaryDiagnosisSerializer from chord_metadata_service.mohpackets.tests.endpoints.base import BaseTestCase from chord_metadata_service.mohpackets.tests.endpoints.factories import ( PrimaryDiagnosisFactory, @@ -15,7 +15,7 @@ class IngestTestCase(BaseTestCase): def setUp(self): super().setUp() - self.primary_diagnosis_url = "/v2/ingest/primary_diagnoses/" + self.primary_diagnosis_url = "/v2/ingest/primary_diagnosis/" def test_primary_diagnosis_create_authorized(self): """ @@ -26,47 +26,41 @@ def test_primary_diagnosis_create_authorized(self): - An authorized user (user_2) with admin permission. - User can perform a POST request for primary diagnosis creation. """ - primary_diagnosis_data = PrimaryDiagnosisFactory.build_batch( - submitter_donor_id=factory.Iterator(self.donors), size=2 - ) - serialized_data = PrimaryDiagnosisSerializer( - primary_diagnosis_data, many=True - ).data + primary_diagnosis = PrimaryDiagnosisFactory.build(donor_uuid=self.donors[0]) + data_dict = model_to_dict(primary_diagnosis) response = self.client.post( self.primary_diagnosis_url, - data=serialized_data, + data=data_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) self.assertEqual( response.status_code, - status.HTTP_201_CREATED, - f"Expected status code {status.HTTP_201_CREATED}, but got {response.status_code}. " + HTTPStatus.CREATED, + f"Expected status code {HTTPStatus.CREATED}, but got {response.status_code}. " f"Response content: {response.content}", ) def test_primary_diagnosis_create_unauthorized(self): """ - Test that a non-admin user attempting to create a primary diagnosis receives a 403 Forbidden response. + Test that a non-admin user attempting to create a primary diagnosis receives a 401 response. Testing Strategy: - Build PrimaryDiagnosis data based on the existing program_id - An unauthorized user (user_0) with no permission. - User cannot perform a POST request for primary diagnosis creation. """ - primary_diagnosis_data = PrimaryDiagnosisFactory.build_batch( - submitter_donor_id=factory.Iterator(self.donors), size=2 - ) - serialized_data = PrimaryDiagnosisSerializer( - primary_diagnosis_data, many=True - ).data + primary_diagnosis = PrimaryDiagnosisFactory.build(donor_uuid=self.donors[0]) + data_dict = model_to_dict(primary_diagnosis) response = self.client.post( self.primary_diagnosis_url, - data=serialized_data, + data=data_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_0.token}", ) - self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(response.status_code, HTTPStatus.UNAUTHORIZED) # GET API @@ -88,7 +82,7 @@ def test_get_primary_diagnosis_200_ok(self): self.primary_diagnosis_url, HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.status_code, HTTPStatus.OK) def test_get_primary_diagnosis_301_redirect(self): """ @@ -102,7 +96,7 @@ def test_get_primary_diagnosis_301_redirect(self): "/v2/authorized/primary_diagnoses", HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_301_MOVED_PERMANENTLY) + self.assertEqual(response.status_code, HTTPStatus.MOVED_PERMANENTLY) # OTHERS @@ -140,9 +134,10 @@ def test_get_datasets_match_permission(self): self.primary_diagnosis_url, HTTP_AUTHORIZATION=f"Bearer {user.token}", ) + response = response.json() response_data = [ primary_diagnosis["submitter_primary_diagnosis_id"] - for primary_diagnosis in response.data["results"] + for primary_diagnosis in response["items"] ] self.assertEqual(response_data, expected_primary_diagnoses) @@ -155,7 +150,7 @@ def test_post_request_405(self): response = self.client.post( self.primary_diagnosis_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_put_request_405(self): """ @@ -165,7 +160,7 @@ def test_put_request_405(self): response = self.client.put( self.primary_diagnosis_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_patch_request_405(self): """ @@ -175,7 +170,7 @@ def test_patch_request_405(self): response = self.client.patch( self.primary_diagnosis_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_delete_request_404(self): """ @@ -190,4 +185,4 @@ def test_delete_request_404(self): f"{self.primary_diagnosis_url}{diagnoses_to_delete.submitter_primary_diagnosis_id}/", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) - self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + self.assertEqual(response.status_code, HTTPStatus.NOT_FOUND) diff --git a/chord_metadata_service/mohpackets/tests/endpoints/test_program.py b/chord_metadata_service/mohpackets/tests/endpoints/test_program.py index 3d8e85ca1..b628a862b 100644 --- a/chord_metadata_service/mohpackets/tests/endpoints/test_program.py +++ b/chord_metadata_service/mohpackets/tests/endpoints/test_program.py @@ -1,7 +1,8 @@ +from http import HTTPStatus + from django.conf import settings -from rest_framework import status +from django.forms.models import model_to_dict -from chord_metadata_service.mohpackets.serializers import ProgramSerializer from chord_metadata_service.mohpackets.tests.endpoints.base import BaseTestCase from chord_metadata_service.mohpackets.tests.endpoints.factories import ProgramFactory @@ -18,7 +19,7 @@ class IngestTestCase(BaseTestCase): def setUp(self): super().setUp() - self.ingest_url = "/v2/ingest/programs/" + self.ingest_url = "/v2/ingest/program/" def test_ingest_authorized(self): """ @@ -28,38 +29,40 @@ def test_ingest_authorized(self): - An authorized user (user_2) with admin permission. - User can perform a POST request for program ingestion. """ - ingest_programs = ProgramFactory.build_batch(2) - serialized_data = ProgramSerializer(ingest_programs, many=True).data + ingest_program = ProgramFactory.build() + program_dict = model_to_dict(ingest_program) response = self.client.post( self.ingest_url, - data=serialized_data, + data=program_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) self.assertEqual( response.status_code, - status.HTTP_201_CREATED, - f"Expected status code {status.HTTP_201_CREATED}, but got {response.status_code}. " + HTTPStatus.CREATED, + f"Expected status code {HTTPStatus.CREATED}, but got {response.status_code}. " f"Response content: {response.content}", ) def test_ingest_unauthorized(self): """ - Test that an non-admin user attempting to ingest programs receives a 403 Forbidden response. + Test that an non-admin user attempting to ingest programs receives a 401 response. Testing Strategy: - An unauthorized user (user_0) with no permission. - User cannot perform a POST request for program ingestion. """ - ingest_programs = ProgramFactory.build_batch(2) - serialized_data = ProgramSerializer(ingest_programs, many=True).data + ingest_program = ProgramFactory.build() + program_dict = model_to_dict(ingest_program) response = self.client.post( self.ingest_url, - data=serialized_data, + data=program_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_0.token}", ) - self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(response.status_code, HTTPStatus.UNAUTHORIZED) # DELETE API @@ -67,11 +70,11 @@ def test_ingest_unauthorized(self): class DeleteTestCase(BaseTestCase): def setUp(self): super().setUp() - self.authorized_url = "/v2/authorized/programs/" + self.authorized_url = "/v2/authorized/program/" def test_delete_authorized(self): """ - Test an authorized DELETE request to the 'authorized/programs/{program_id}/' endpoint. + Test an authorized DELETE request to the 'authorized/program/{program_id}/' endpoint. Testing Strategy: - Create a new program to delete @@ -83,7 +86,7 @@ def test_delete_authorized(self): f"{self.authorized_url}{program_to_delete.program_id}/", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertEqual(response.status_code, HTTPStatus.NO_CONTENT) def test_delete_unauthorized(self): """ @@ -92,14 +95,14 @@ def test_delete_unauthorized(self): Testing Strategy: - Create a new program to delete - Non Admin (user_1) cannot delete - - The request should receive a 403 forbidden response. + - The request should receive a 401 response. """ program_to_delete = ProgramFactory() response = self.client.delete( f"{self.authorized_url}{program_to_delete.program_id}/", HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(response.status_code, HTTPStatus.UNAUTHORIZED) # GET API @@ -121,7 +124,7 @@ def test_get_200_ok(self): self.authorized_url, HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.status_code, HTTPStatus.OK) def test_get_301_redirect(self): """ @@ -134,7 +137,7 @@ def test_get_301_redirect(self): response = self.client.get( "/v2/authorized/programs", HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}" ) - self.assertEqual(response.status_code, status.HTTP_301_MOVED_PERMANENTLY) + self.assertEqual(response.status_code, HTTPStatus.MOVED_PERMANENTLY) def test_get_404_not_found(self): """ @@ -148,7 +151,7 @@ def test_get_404_not_found(self): "/v2/authorized/invalid/", HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + self.assertEqual(response.status_code, HTTPStatus.NOT_FOUND) # OTHERS @@ -171,15 +174,14 @@ def test_get_datasets_match_permission(self): self.authorized_url, HTTP_AUTHORIZATION=f"Bearer {user.token}", ) + response = response.json() authorized_datasets = next( user_data["datasets"] for user_data in settings.LOCAL_AUTHORIZED_DATASET if user_data["token"] == user.token ) - response_datasets = [ - program["program_id"] for program in response.data["results"] - ] + response_datasets = [program["program_id"] for program in response["items"]] self.assertEqual(response_datasets, authorized_datasets) def test_post_request_405(self): @@ -190,7 +192,7 @@ def test_post_request_405(self): response = self.client.post( self.authorized_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_put_request_405(self): """ @@ -200,7 +202,7 @@ def test_put_request_405(self): response = self.client.put( self.authorized_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_patch_request_405(self): """ @@ -210,4 +212,4 @@ def test_patch_request_405(self): response = self.client.patch( self.authorized_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) diff --git a/chord_metadata_service/mohpackets/tests/endpoints/test_sample_registration.py b/chord_metadata_service/mohpackets/tests/endpoints/test_sample_registration.py index c582dbe2a..182f99847 100644 --- a/chord_metadata_service/mohpackets/tests/endpoints/test_sample_registration.py +++ b/chord_metadata_service/mohpackets/tests/endpoints/test_sample_registration.py @@ -1,9 +1,9 @@ -import factory +from http import HTTPStatus + from django.conf import settings -from rest_framework import status +from django.forms.models import model_to_dict from chord_metadata_service.mohpackets.models import SampleRegistration -from chord_metadata_service.mohpackets.serializers import SampleRegistrationSerializer from chord_metadata_service.mohpackets.tests.endpoints.base import BaseTestCase from chord_metadata_service.mohpackets.tests.endpoints.factories import ( SampleRegistrationFactory, @@ -15,7 +15,7 @@ class SampleRegistrationTestCase(BaseTestCase): def setUp(self): super().setUp() - self.sample_registration_url = "/v2/ingest/sample_registrations/" + self.sample_registration_url = "/v2/ingest/sample_registration/" def test_sample_registration_create_authorized(self): """ @@ -26,23 +26,22 @@ def test_sample_registration_create_authorized(self): - An authorized user (user_2) with admin permission. - User can perform a POST request for sample registration creation. """ - sample_registration_data = SampleRegistrationFactory.build_batch( - submitter_specimen_id=factory.Iterator(self.specimens), - size=2, + sample_registration = SampleRegistrationFactory.build( + specimen_uuid=self.specimens[0] ) - serialized_data = SampleRegistrationSerializer( - sample_registration_data, many=True - ).data + data_dict = model_to_dict(sample_registration) + response = self.client.post( self.sample_registration_url, - data=serialized_data, + data=data_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) self.assertEqual( response.status_code, - status.HTTP_201_CREATED, - f"Expected status code {status.HTTP_201_CREATED}, but got {response.status_code}. " + HTTPStatus.CREATED, + f"Expected status code {HTTPStatus.CREATED}, but got {response.status_code}. " f"Response content: {response.content}", ) @@ -55,20 +54,18 @@ def test_sample_registration_create_unauthorized(self): - An unauthorized user (user_0) with no permission. - User cannot perform a POST request for sample registration creation. """ - sample_registration_data = SampleRegistrationFactory.build_batch( - submitter_specimen_id=factory.Iterator(self.specimens), - size=2, + sample_registration = SampleRegistrationFactory.build( + specimen_uuid=self.specimens[0] ) - serialized_data = SampleRegistrationSerializer( - sample_registration_data, many=True - ).data + data_dict = model_to_dict(sample_registration) response = self.client.post( self.sample_registration_url, - data=serialized_data, + data=data_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_0.token}", ) - self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(response.status_code, HTTPStatus.UNAUTHORIZED) # GET API @@ -90,7 +87,7 @@ def test_get_sample_registrations_200_ok(self): self.sample_registrations_url, HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.status_code, HTTPStatus.OK) def test_get_sample_registrations_301_redirect(self): """ @@ -104,7 +101,7 @@ def test_get_sample_registrations_301_redirect(self): "/v2/authorized/sample_registrations", HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_301_MOVED_PERMANENTLY) + self.assertEqual(response.status_code, HTTPStatus.MOVED_PERMANENTLY) # OTHERS @@ -142,9 +139,10 @@ def test_get_datasets_match_permission(self): self.sample_registrations_url, HTTP_AUTHORIZATION=f"Bearer {user.token}", ) + response = response.json() response_data = [ sample_registration["submitter_sample_id"] - for sample_registration in response.data["results"] + for sample_registration in response["items"] ] self.assertEqual(response_data, expected_datasets) @@ -158,7 +156,7 @@ def test_post_request_405(self): self.sample_registrations_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_put_request_405(self): """ @@ -169,7 +167,7 @@ def test_put_request_405(self): self.sample_registrations_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_patch_request_405(self): """ @@ -180,7 +178,7 @@ def test_patch_request_405(self): self.sample_registrations_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_delete_request_404(self): """ @@ -195,4 +193,4 @@ def test_delete_request_404(self): f"{self.sample_registrations_url}{sample_registration_to_delete.submitter_sample_id}/", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) - self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + self.assertEqual(response.status_code, HTTPStatus.NOT_FOUND) diff --git a/chord_metadata_service/mohpackets/tests/endpoints/test_specimen.py b/chord_metadata_service/mohpackets/tests/endpoints/test_specimen.py index e5730f060..4039a9cf8 100644 --- a/chord_metadata_service/mohpackets/tests/endpoints/test_specimen.py +++ b/chord_metadata_service/mohpackets/tests/endpoints/test_specimen.py @@ -1,9 +1,9 @@ -import factory +from http import HTTPStatus + from django.conf import settings -from rest_framework import status +from django.forms.models import model_to_dict from chord_metadata_service.mohpackets.models import Specimen -from chord_metadata_service.mohpackets.serializers import SpecimenSerializer from chord_metadata_service.mohpackets.tests.endpoints.base import BaseTestCase from chord_metadata_service.mohpackets.tests.endpoints.factories import SpecimenFactory @@ -13,7 +13,7 @@ class IngestTestCase(BaseTestCase): def setUp(self): super().setUp() - self.specimen_url = "/v2/ingest/specimens/" + self.specimen_url = "/v2/ingest/specimen/" def test_specimen_create_authorized(self): """ @@ -24,21 +24,21 @@ def test_specimen_create_authorized(self): - An authorized user (user_2) with admin permission. - User can perform a POST request for specimen creation. """ - specimen_data = SpecimenFactory.build_batch( - submitter_primary_diagnosis_id=factory.Iterator(self.primary_diagnoses), - size=2, + specimen = SpecimenFactory.build( + primary_diagnosis_uuid=self.primary_diagnoses[0] ) - serialized_data = SpecimenSerializer(specimen_data, many=True).data + data_dict = model_to_dict(specimen) response = self.client.post( self.specimen_url, - data=serialized_data, + data=data_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) self.assertEqual( response.status_code, - status.HTTP_201_CREATED, - f"Expected status code {status.HTTP_201_CREATED}, but got {response.status_code}. " + HTTPStatus.CREATED, + f"Expected status code {HTTPStatus.CREATED}, but got {response.status_code}. " f"Response content: {response.content}", ) @@ -51,18 +51,18 @@ def test_specimen_create_unauthorized(self): - An unauthorized user (user_0) with no permission. - User cannot perform a POST request for specimen creation. """ - specimen_data = SpecimenFactory.build_batch( - submitter_primary_diagnosis_id=factory.Iterator(self.primary_diagnoses), - size=2, + specimen = SpecimenFactory.build( + primary_diagnosis_uuid=self.primary_diagnoses[0] ) - serialized_data = SpecimenSerializer(specimen_data, many=True).data + data_dict = model_to_dict(specimen) response = self.client.post( self.specimen_url, - data=serialized_data, + data=data_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_0.token}", ) - self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(response.status_code, HTTPStatus.UNAUTHORIZED) # GET API @@ -84,7 +84,7 @@ def test_get_specimen_200_ok(self): self.specimen_url, HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.status_code, HTTPStatus.OK) def test_get_specimen_301_redirect(self): """ @@ -98,7 +98,7 @@ def test_get_specimen_301_redirect(self): "/v2/authorized/specimens", HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_301_MOVED_PERMANENTLY) + self.assertEqual(response.status_code, HTTPStatus.MOVED_PERMANENTLY) # OTHERS @@ -137,9 +137,9 @@ def test_get_datasets_match_permission(self): self.specimen_url, HTTP_AUTHORIZATION=f"Bearer {user.token}", ) + response = response.json() response_data = [ - specimen["submitter_specimen_id"] - for specimen in response.data["results"] + specimen["submitter_specimen_id"] for specimen in response["items"] ] self.assertEqual(response_data, expected_specimens) @@ -152,7 +152,7 @@ def test_post_request_405(self): response = self.client.post( self.specimen_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_put_request_405(self): """ @@ -162,7 +162,7 @@ def test_put_request_405(self): response = self.client.put( self.specimen_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_patch_request_405(self): """ @@ -172,7 +172,7 @@ def test_patch_request_405(self): response = self.client.patch( self.specimen_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_delete_request_404(self): """ @@ -187,4 +187,4 @@ def test_delete_request_404(self): f"{self.specimen_url}{specimen_to_delete.submitter_specimen_id}/", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) - self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + self.assertEqual(response.status_code, HTTPStatus.NOT_FOUND) diff --git a/chord_metadata_service/mohpackets/tests/endpoints/test_treatment.py b/chord_metadata_service/mohpackets/tests/endpoints/test_treatment.py index d53501fa0..9067b456c 100644 --- a/chord_metadata_service/mohpackets/tests/endpoints/test_treatment.py +++ b/chord_metadata_service/mohpackets/tests/endpoints/test_treatment.py @@ -1,9 +1,9 @@ -import factory +from http import HTTPStatus + from django.conf import settings -from rest_framework import status +from django.forms.models import model_to_dict from chord_metadata_service.mohpackets.models import Treatment -from chord_metadata_service.mohpackets.serializers import TreatmentSerializer from chord_metadata_service.mohpackets.tests.endpoints.base import BaseTestCase from chord_metadata_service.mohpackets.tests.endpoints.factories import TreatmentFactory @@ -13,7 +13,7 @@ class TreatmentsIngestTestCase(BaseTestCase): def setUp(self): super().setUp() - self.treatment_url = "/v2/ingest/treatments/" + self.treatment_url = "/v2/ingest/treatment/" def test_treatment_create_authorized(self): """ @@ -24,21 +24,21 @@ def test_treatment_create_authorized(self): - An authorized user (user_2) with admin permission. - User can perform a POST request for treatment creation. """ - treatment_data = TreatmentFactory.build_batch( - submitter_primary_diagnosis_id=factory.Iterator(self.primary_diagnoses), - size=2, + treatment = TreatmentFactory.build( + primary_diagnosis_uuid=self.primary_diagnoses[0] ) - serialized_data = TreatmentSerializer(treatment_data, many=True).data + data_dict = model_to_dict(treatment) response = self.client.post( self.treatment_url, - data=serialized_data, + data=data_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) self.assertEqual( response.status_code, - status.HTTP_201_CREATED, - f"Expected status code {status.HTTP_201_CREATED}, but got {response.status_code}. " + HTTPStatus.CREATED, + f"Expected status code {HTTPStatus.CREATED}, but got {response.status_code}. " f"Response content: {response.content}", ) @@ -51,18 +51,18 @@ def test_treatment_create_unauthorized(self): - An unauthorized user (user_0) with no permission. - User cannot perform a POST request for treatment creation. """ - treatment_data = TreatmentFactory.build_batch( - submitter_primary_diagnosis_id=factory.Iterator(self.primary_diagnoses), - size=2, + treatment = TreatmentFactory.build( + primary_diagnosis_uuid=self.primary_diagnoses[0] ) - serialized_data = TreatmentSerializer(treatment_data, many=True).data + data_dict = model_to_dict(treatment) response = self.client.post( self.treatment_url, - data=serialized_data, + data=data_dict, + content_type="application/json", format="json", HTTP_AUTHORIZATION=f"Bearer {self.user_0.token}", ) - self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(response.status_code, HTTPStatus.UNAUTHORIZED) # GET API @@ -84,7 +84,7 @@ def test_get_treatments_200_ok(self): self.treatments_url, HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.status_code, HTTPStatus.OK) def test_get_treatments_301_redirect(self): """ @@ -98,7 +98,7 @@ def test_get_treatments_301_redirect(self): "/v2/authorized/treatments", HTTP_AUTHORIZATION=f"Bearer {self.user_1.token}", ) - self.assertEqual(response.status_code, status.HTTP_301_MOVED_PERMANENTLY) + self.assertEqual(response.status_code, HTTPStatus.MOVED_PERMANENTLY) # OTHERS @@ -136,9 +136,9 @@ def test_get_datasets_match_permission(self): self.treatments_url, HTTP_AUTHORIZATION=f"Bearer {user.token}", ) + response = response.json() response_data = [ - treatment["submitter_treatment_id"] - for treatment in response.data["results"] + treatment["submitter_treatment_id"] for treatment in response["items"] ] self.assertEqual(response_data, expected_datasets) @@ -151,7 +151,7 @@ def test_post_request_405(self): response = self.client.post( self.treatments_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_put_request_405(self): """ @@ -161,7 +161,7 @@ def test_put_request_405(self): response = self.client.put( self.treatments_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_patch_request_405(self): """ @@ -171,7 +171,7 @@ def test_patch_request_405(self): response = self.client.patch( self.treatments_url, HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}" ) - self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + self.assertEqual(response.status_code, HTTPStatus.METHOD_NOT_ALLOWED) def test_delete_request_404(self): """ @@ -186,4 +186,4 @@ def test_delete_request_404(self): f"{self.treatments_url}{treatment_to_delete.submitter_treatment_id}/", HTTP_AUTHORIZATION=f"Bearer {self.user_2.token}", ) - self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + self.assertEqual(response.status_code, HTTPStatus.NOT_FOUND) diff --git a/chord_metadata_service/mohpackets/tests/test_models.py b/chord_metadata_service/mohpackets/tests/test_models.py index 0d3952315..1feae4c42 100644 --- a/chord_metadata_service/mohpackets/tests/test_models.py +++ b/chord_metadata_service/mohpackets/tests/test_models.py @@ -1,6 +1,7 @@ from django.core.exceptions import ValidationError from django.db.utils import DataError, IntegrityError from django.test import TestCase +from pydantic import ValidationError as SchemaValidationError from chord_metadata_service.mohpackets.models import ( Biomarker, @@ -19,20 +20,22 @@ Surgery, Treatment, ) -from chord_metadata_service.mohpackets.serializers import ( - ChemotherapySerializer, - ComorbiditySerializer, - DonorSerializer, - FollowUpSerializer, - HormoneTherapySerializer, - ImmunotherapySerializer, - PrimaryDiagnosisSerializer, - ProgramSerializer, - RadiationSerializer, - SampleRegistrationSerializer, - SpecimenSerializer, - SurgerySerializer, - TreatmentSerializer, +from chord_metadata_service.mohpackets.schemas.model import ( + BiomarkerModelSchema, + ChemotherapyModelSchema, + ComorbidityModelSchema, + DonorModelSchema, + ExposureModelSchema, + FollowUpModelSchema, + HormoneTherapyModelSchema, + ImmunotherapyModelSchema, + PrimaryDiagnosisModelSchema, + ProgramModelSchema, + RadiationModelSchema, + SampleRegistrationModelSchema, + SpecimenModelSchema, + SurgeryModelSchema, + TreatmentModelSchema, ) @@ -65,7 +68,7 @@ def get_invalid_choices(): """ Returns the invalid values to test in choice fields. ChoiceFields values must be strings and among the permissible values defined for that field - in serializers.py or permissible_values.py + in permissible_values.py """ return ["foo", 1, True] @@ -95,16 +98,13 @@ def test_unique_id(self): with self.assertRaises(IntegrityError): self.program = Program.objects.create(program_id=self.program_id) - # TODO: This test passes with valid values too, the other ID fields don't - def test_invalid_program_id(self): + def test_invalid_id(self): invalid_values = get_invalid_ids() - for value in invalid_values: - with self.subTest(value=value): - self.program_id = value - self.serializer = ProgramSerializer( - instance=self.program, data=self.program_id - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.program_id = invalid_value + with self.assertRaises(SchemaValidationError): + ProgramModelSchema.model_validate(self.program_id) class DonorTest(TestCase): @@ -112,7 +112,7 @@ def setUp(self): self.program = Program.objects.create(program_id="SYNTHETIC") self.valid_values = { "submitter_donor_id": "DONOR_1", - "program_id": self.program, + "program_id_id": self.program.program_id, "is_deceased": True, "cause_of_death": "Died of cancer", "date_of_birth": "1975-08", @@ -157,7 +157,7 @@ def test_donor_fields(self): def test_null_optional_fields(self): """Tests no exceptions are raised when saving null values in optional fields.""" optional_fields = get_optional_fields( - excluded_fields=["submitter_donor_id", "program_id"], + excluded_fields=["submitter_donor_id", "program_id", "uuid"], model_fields=self.donor._meta.fields, ) for field in optional_fields: @@ -167,7 +167,7 @@ def test_null_optional_fields(self): def test_blank_optional_fields(self): """Tests no exceptions are raised when saving blank values in optional fields.""" optional_fields = get_optional_fields( - excluded_fields=["submitter_donor_id", "program_id"], + excluded_fields=["submitter_donor_id", "program_id", "uuid"], model_fields=self.donor._meta.fields, ) for field in optional_fields: @@ -178,25 +178,18 @@ def test_unique_id(self): with self.assertRaises(IntegrityError): self.donor = Donor.objects.create(**self.valid_values) + def test_valid_schema(self): + self.assertIsInstance( + DonorModelSchema.model_validate(self.valid_values), DonorModelSchema + ) + def test_invalid_id(self): invalid_values = get_invalid_ids() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["submitter_donor_id"] = value - self.serializer = DonorSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) - - def test_invalid_program_id(self): - invalid_values = get_invalid_ids() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["program_id"] = value - self.serializer = DonorSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["submitter_donor_id"] = invalid_value + with self.assertRaises(SchemaValidationError): + DonorModelSchema.model_validate(self.valid_values) def test_invalid_is_deceased(self): self.donor.is_deceased = "foo" @@ -205,83 +198,67 @@ def test_invalid_is_deceased(self): def test_invalid_cause_of_death(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["cause_of_death"] = value - self.serializer = DonorSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["cause_of_death"] = invalid_value + with self.assertRaises(SchemaValidationError): + DonorModelSchema.model_validate(self.valid_values) def test_invalid_date_of_death(self): invalid_values = get_invalid_dates() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["date_of_death"] = value - self.serializer = DonorSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["date_of_death"] = invalid_value + with self.assertRaises(SchemaValidationError): + DonorModelSchema.model_validate(self.valid_values) def test_invalid_date_of_birth(self): invalid_values = get_invalid_dates() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["date_of_birth"] = value - self.serializer = DonorSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["date_of_birth"] = invalid_value + with self.assertRaises(SchemaValidationError): + DonorModelSchema.model_validate(self.valid_values) def test_invalid_primary_site(self): invalid_values = ["foo", ["foo"]] - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["primary_site"] = value - self.serializer = DonorSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["primary_site"] = invalid_value + with self.assertRaises(SchemaValidationError): + DonorModelSchema.model_validate(self.valid_values) def test_invalid_gender(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["gender"] = value - self.serializer = DonorSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["gender"] = invalid_value + with self.assertRaises(SchemaValidationError): + DonorModelSchema.model_validate(self.valid_values) def test_invalid_sex_at_birth(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["sex_at_birth"] = value - self.serializer = DonorSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["sex_at_birth"] = invalid_value + with self.assertRaises(SchemaValidationError): + DonorModelSchema.model_validate(self.valid_values) def test_invalid_lost_to_followup_reason(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["lost_to_followup_reason"] = value - self.serializer = DonorSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["lost_to_followup_reason"] = invalid_value + with self.assertRaises(SchemaValidationError): + DonorModelSchema.model_validate(self.valid_values) def test_invalid_date_alive_after_lost_to_followup(self): invalid_values = get_invalid_dates() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["date_alive_after_lost_to_followup"] = value - self.serializer = DonorSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["date_alive_after_lost_to_followup"] = invalid_value + with self.assertRaises(SchemaValidationError): + DonorModelSchema.model_validate(self.valid_values) class PrimaryDiagnosisTest(TestCase): @@ -290,12 +267,11 @@ def setUp(self): self.donor = Donor.objects.create( submitter_donor_id="DONOR_1", program_id=self.program, - primary_site=["Adrenal gland"], ) self.valid_values = { "submitter_primary_diagnosis_id": "PRIMARY_DIAGNOSIS_1", - "program_id": self.program, - "submitter_donor_id": self.donor, + "program_id_id": self.program.program_id, + "submitter_donor_id": self.donor.submitter_donor_id, "date_of_diagnosis": "2019-11", "cancer_type_code": "C02.1", "basis_of_diagnosis": "Unknown", @@ -319,7 +295,9 @@ def test_primary_diagnosis_fields(self): self.primary_diagnosis.submitter_primary_diagnosis_id, "PRIMARY_DIAGNOSIS_1" ) self.assertEqual(self.primary_diagnosis.program_id, self.program) - self.assertEqual(self.primary_diagnosis.submitter_donor_id, self.donor) + self.assertEqual( + self.primary_diagnosis.submitter_donor_id, self.donor.submitter_donor_id + ) self.assertEqual(self.primary_diagnosis.date_of_diagnosis, "2019-11") self.assertEqual(self.primary_diagnosis.cancer_type_code, "C02.1") self.assertEqual(self.primary_diagnosis.basis_of_diagnosis, "Unknown") @@ -346,8 +324,10 @@ def test_null_optional_fields(self): optional_fields = get_optional_fields( excluded_fields=[ "submitter_donor_id", + "donor_uuid", "program_id", "submitter_primary_diagnosis_id", + "uuid", ], model_fields=self.primary_diagnosis._meta.fields, ) @@ -360,8 +340,10 @@ def test_blank_optional_fields(self): optional_fields = get_optional_fields( excluded_fields=[ "submitter_donor_id", + "donor_uuid", "program_id", "submitter_primary_diagnosis_id", + "uuid", ], model_fields=self.primary_diagnosis._meta.fields, ) @@ -375,119 +357,91 @@ def test_unique_id(self): **self.valid_values ) - def test_invalid_id(self): - invalid_values = get_invalid_ids() - for value in invalid_values: - self.valid_values["submitter_primary_diagnosis_id"] = value - self.serializer = PrimaryDiagnosisSerializer( - instance=self.primary_diagnosis, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + def test_valid_schema(self): + self.assertIsInstance( + PrimaryDiagnosisModelSchema.model_validate(self.valid_values), + PrimaryDiagnosisModelSchema, + ) - def test_invalid_program_id(self): + def test_invalid_id(self): invalid_values = get_invalid_ids() - for value in invalid_values: - self.valid_values["submitter_primary_diagnosis_id"] = value - self.serializer = PrimaryDiagnosisSerializer( - instance=self.primary_diagnosis, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["submitter_primary_diagnosis_id"] = invalid_value + with self.assertRaises(SchemaValidationError): + PrimaryDiagnosisModelSchema.model_validate(self.valid_values) def test_invalid_date_of_diagnosis(self): invalid_values = get_invalid_dates() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["date_of_diagnosis"] = value - self.serializer = PrimaryDiagnosisSerializer( - instance=self.primary_diagnosis, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) - - # TODO: write regex for testing - # def test_invalid_cancer_type_code(self): - # self.valid_values["cancer_type_code"] = "foo" - # self.serializer = PrimaryDiagnosisSerializer(instance=self.primary_diagnosis, data=self.valid_values) - # self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["date_of_diagnosis"] = invalid_value + with self.assertRaises(SchemaValidationError): + PrimaryDiagnosisModelSchema.model_validate(self.valid_values) def test_invalid_basis_of_diagnosis(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["basis_of_diagnosis"] = value - self.serializer = PrimaryDiagnosisSerializer( - instance=self.primary_diagnosis, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["basis_of_diagnosis"] = invalid_value + with self.assertRaises(SchemaValidationError): + PrimaryDiagnosisModelSchema.model_validate(self.valid_values) def test_invalid_lymph_nodes_examined_status(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["lymph_nodes_examined_status"] = value - self.serializer = PrimaryDiagnosisSerializer( - instance=self.primary_diagnosis, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["lymph_nodes_examined_status"] = invalid_value + with self.assertRaises(SchemaValidationError): + PrimaryDiagnosisModelSchema.model_validate(self.valid_values) def test_invalid_clinical_tumour_staging_system(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["clinical_tumour_staging_system"] = value - self.serializer = PrimaryDiagnosisSerializer( - instance=self.primary_diagnosis, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["clinical_tumour_staging_system"] = invalid_value + with self.assertRaises(SchemaValidationError): + PrimaryDiagnosisModelSchema.model_validate(self.valid_values) def test_invalid_clinical_t_category(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["clinical_t_category"] = value - self.serializer = PrimaryDiagnosisSerializer( - instance=self.primary_diagnosis, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["clinical_t_category"] = invalid_value + with self.assertRaises(SchemaValidationError): + PrimaryDiagnosisModelSchema.model_validate(self.valid_values) def test_invalid_clinical_n_category(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["clinical_n_category"] = value - self.serializer = PrimaryDiagnosisSerializer( - instance=self.primary_diagnosis, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["clinical_n_category"] = invalid_value + with self.assertRaises(SchemaValidationError): + PrimaryDiagnosisModelSchema.model_validate(self.valid_values) def test_invalid_clinical_m_category(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["clinical_m_category"] = value - self.serializer = PrimaryDiagnosisSerializer( - instance=self.primary_diagnosis, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["clinical_m_category"] = invalid_value + with self.assertRaises(SchemaValidationError): + PrimaryDiagnosisModelSchema.model_validate(self.valid_values) def test_invalid_clinical_stage_group(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["clinical_stage_group"] = value - self.serializer = PrimaryDiagnosisSerializer( - instance=self.primary_diagnosis, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["clinical_stage_group"] = invalid_value + with self.assertRaises(SchemaValidationError): + PrimaryDiagnosisModelSchema.model_validate(self.valid_values) def test_invalid_laterality(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["laterality"] = value - self.serializer = PrimaryDiagnosisSerializer( - instance=self.primary_diagnosis, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["laterality"] = invalid_value + with self.assertRaises(SchemaValidationError): + PrimaryDiagnosisModelSchema.model_validate(self.valid_values) class SpecimenTest(TestCase): @@ -496,18 +450,17 @@ def setUp(self): self.donor = Donor.objects.create( submitter_donor_id="DONOR_1", program_id=self.program, - primary_site=["Adrenal gland"], ) self.primary_diagnosis = PrimaryDiagnosis.objects.create( submitter_primary_diagnosis_id="PRIMARY_DIAGNOSIS_1", program_id=self.program, - submitter_donor_id=self.donor, + submitter_donor_id=self.donor.submitter_donor_id, ) self.valid_values = { "submitter_specimen_id": "SPECIMEN_1", - "program_id": self.program, - "submitter_donor_id": self.donor, - "submitter_primary_diagnosis_id": self.primary_diagnosis, + "program_id_id": self.program.program_id, + "submitter_donor_id": self.donor.submitter_donor_id, + "submitter_primary_diagnosis_id": self.primary_diagnosis.submitter_primary_diagnosis_id, "pathological_tumour_staging_system": "AJCC 6th edition", "pathological_t_category": "Tis", "pathological_n_category": "N0b", @@ -534,9 +487,12 @@ def test_specimen_creation(self): def test_specimen_fields(self): self.assertEqual(self.specimen.submitter_specimen_id, "SPECIMEN_1") self.assertEqual(self.specimen.program_id, self.program) - self.assertEqual(self.specimen.submitter_donor_id, self.donor) self.assertEqual( - self.specimen.submitter_primary_diagnosis_id, self.primary_diagnosis + self.specimen.submitter_donor_id, self.donor.submitter_donor_id + ) + self.assertEqual( + self.specimen.submitter_primary_diagnosis_id, + self.primary_diagnosis.submitter_primary_diagnosis_id, ) self.assertEqual( self.specimen.pathological_tumour_staging_system, "AJCC 6th edition" @@ -571,9 +527,12 @@ def test_null_optional_fields(self): optional_fields = get_optional_fields( excluded_fields=[ "submitter_donor_id", + "donor_uuid", "program_id", "submitter_primary_diagnosis_id", + "primary_diagnosis_uuid", "submitter_specimen_id", + "uuid", ], model_fields=self.specimen._meta.fields, ) @@ -586,9 +545,12 @@ def test_blank_optional_fields(self): optional_fields = get_optional_fields( excluded_fields=[ "submitter_donor_id", + "donor_uuid", "program_id", "submitter_primary_diagnosis_id", + "primary_diagnosis_uuid", "submitter_specimen_id", + "uuid", ], model_fields=self.specimen._meta.fields, ) @@ -600,184 +562,161 @@ def test_unique_id(self): with self.assertRaises(IntegrityError): self.specimen = Specimen.objects.create(**self.valid_values) + def test_valid_schema(self): + self.assertIsInstance( + SpecimenModelSchema.model_validate(self.valid_values), + SpecimenModelSchema, + ) + def test_invalid_id(self): invalid_values = get_invalid_ids() - for value in invalid_values: - self.valid_values["submitter_specimen_id"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["submitter_specimen_id"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_pathological_tumour_staging_system(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["pathological_tumour_staging_system"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["pathological_tumour_staging_system"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_pathological_t_category(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["pathological_t_category"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["pathological_t_category"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_pathological_n_category(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["pathological_n_category"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["pathological_n_category"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_pathological_m_category(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["pathological_m_category"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["pathological_m_category"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_pathological_stage_group(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["pathological_stage_group"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["pathological_stage_group"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_specimen_collection_date(self): invalid_values = get_invalid_dates() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["specimen_collection_date"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["specimen_collection_date"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_specimen_storage(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["specimen_storage"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) - - # TODO: fix regular expression - # def test_invalid_tumour_histological_type(self): - # invalid_values = ["8260/3", 1] - # for value in invalid_values: - # with self.subTest(value=value): - # self.valid_values["tumour_histological_type"] = value - # self.serializer = SpecimenSerializer(instance=self.donor, data=self.valid_values) - # self.assertFalse(self.serializer.is_valid()) - - # TODO: fix regular expression - # def test_specimen_anatomic_location(self): - # invalid_values = ["8260/3", 1] - # for value in invalid_values: - # with self.subTest(value=value): - # self.valid_values["specimen_anatomic_location"] = value - # self.serializer = SpecimenSerializer(instance=self.donor, data=self.valid_values) - # self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["specimen_storage"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) + + def test_invalid_tumour_histological_type(self): + invalid_values = [1, "invalid"] + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["tumour_histological_type"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) + + def test_specimen_anatomic_location(self): + invalid_values = [1, "invalid"] + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["specimen_anatomic_location"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_reference_pathology_confirmed_diagnosis(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["reference_pathology_confirmed_diagnosis"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values[ + "reference_pathology_confirmed_diagnosis" + ] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_reference_pathology_confirmed_tumour_presence(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): self.valid_values[ "reference_pathology_confirmed_tumour_presence" - ] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + ] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_tumour_grading_system(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["tumour_grading_system"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["tumour_grading_system"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_tumour_grade(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["tumour_grade"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["tumour_grade"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_percent_tumour_cells_range(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["percent_tumour_cells_range"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["percent_tumour_cells_range"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_percent_tumour_cells_measurement_method(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["percent_tumour_cells_measurement_method"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values[ + "percent_tumour_cells_measurement_method" + ] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_specimen_processing(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["specimen_processing"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["specimen_processing"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) def test_invalid_specimen_laterality(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["specimen_laterality"] = value - self.serializer = SpecimenSerializer( - instance=self.specimen, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["specimen_laterality"] = invalid_value + with self.assertRaises(SchemaValidationError): + SpecimenModelSchema.model_validate(self.valid_values) class SampleRegistrationTest(TestCase): @@ -786,25 +725,24 @@ def setUp(self): self.donor = Donor.objects.create( submitter_donor_id="DONOR_1", program_id=self.program, - primary_site=["Adrenal gland"], ) self.primary_diagnosis = PrimaryDiagnosis.objects.create( submitter_primary_diagnosis_id="PRIMARY_DIAGNOSIS_1", program_id=self.program, - submitter_donor_id=self.donor, + submitter_donor_id=self.donor.submitter_donor_id, ) self.specimen = Specimen.objects.create( submitter_specimen_id="SPECIMEN-1", program_id=self.program, - submitter_donor_id=self.donor, - submitter_primary_diagnosis_id=self.primary_diagnosis, + submitter_donor_id=self.donor.submitter_donor_id, + submitter_primary_diagnosis_id=self.primary_diagnosis.submitter_primary_diagnosis_id, ) self.valid_values = { "submitter_sample_id": "SAMPLE_REGISTRATION_1", - "program_id": self.program, - "submitter_donor_id": self.donor, - "submitter_specimen_id": self.specimen, - "specimen_tissue_source": "Blood venous", + "program_id_id": self.program.program_id, + "submitter_donor_id": self.donor.submitter_donor_id, + "submitter_specimen_id": self.specimen.submitter_specimen_id, + "specimen_tissue_source": "Abdominal fluid", "tumour_normal_designation": "Normal", "specimen_type": "Primary tumour - adjacent to normal", "sample_type": "Other DNA enrichments", @@ -821,10 +759,15 @@ def test_model_fields(self): self.sample_registration.submitter_sample_id, "SAMPLE_REGISTRATION_1" ) self.assertEqual(self.sample_registration.program_id, self.program) - self.assertEqual(self.sample_registration.submitter_donor_id, self.donor) - self.assertEqual(self.sample_registration.submitter_specimen_id, self.specimen) self.assertEqual( - self.sample_registration.specimen_tissue_source, "Blood venous" + self.sample_registration.submitter_donor_id, self.donor.submitter_donor_id + ) + self.assertEqual( + self.sample_registration.submitter_specimen_id, + self.specimen.submitter_specimen_id, + ) + self.assertEqual( + self.sample_registration.specimen_tissue_source, "Abdominal fluid" ) self.assertEqual(self.sample_registration.tumour_normal_designation, "Normal") self.assertEqual( @@ -838,9 +781,12 @@ def test_null_optional_fields(self): optional_fields = get_optional_fields( excluded_fields=[ "submitter_donor_id", + "donor_uuid", "program_id", "submitter_specimen_id", + "specimen_uuid", "submitter_sample_id", + "uuid", ], model_fields=self.sample_registration._meta.fields, ) @@ -853,9 +799,12 @@ def test_blank_optional_fields(self): optional_fields = get_optional_fields( excluded_fields=[ "submitter_donor_id", + "donor_uuid", "program_id", "submitter_specimen_id", + "specimen_uuid", "submitter_sample_id", + "uuid", ], model_fields=self.sample_registration._meta.fields, ) @@ -869,71 +818,51 @@ def test_unique_id(self): **self.valid_values ) + def test_valid_schema(self): + self.assertIsInstance( + SampleRegistrationModelSchema.model_validate(self.valid_values), + SampleRegistrationModelSchema, + ) + def test_invalid_id(self): invalid_values = get_invalid_ids() - for value in invalid_values: - self.valid_values["submitter_sample_id"] = value - self.serializer = SampleRegistrationSerializer( - instance=self.sample_registration, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) - - def test_invalid_gender(self): - invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["gender"] = value - self.sample_registration.full_clean() - - def test_invalid_sex_at_birth(self): - invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["sex_at_birth"] = value - self.serializer = SampleRegistrationSerializer( - instance=self.sample_registration, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["submitter_sample_id"] = invalid_value + with self.assertRaises(SchemaValidationError): + SampleRegistrationModelSchema.model_validate(self.valid_values) def test_invalid_specimen_tissue_source(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["specimen_tissue_source"] = value - self.serializer = SampleRegistrationSerializer( - instance=self.sample_registration, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["specimen_tissue_source"] = invalid_value + with self.assertRaises(SchemaValidationError): + SampleRegistrationModelSchema.model_validate(self.valid_values) def test_invalid_tumour_normal_designation(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["tumour_normal_designation"] = value - self.serializer = SampleRegistrationSerializer( - instance=self.sample_registration, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["tumour_normal_designation"] = invalid_value + with self.assertRaises(SchemaValidationError): + SampleRegistrationModelSchema.model_validate(self.valid_values) def test_invalid_specimen_type(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["specimen_type"] = value - self.serializer = SampleRegistrationSerializer( - instance=self.sample_registration, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["specimen_type"] = invalid_value + with self.assertRaises(SchemaValidationError): + SampleRegistrationModelSchema.model_validate(self.valid_values) def test_invalid_sample_type(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["sample_type"] = value - self.serializer = SampleRegistrationSerializer( - instance=self.sample_registration, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["sample_type"] = invalid_value + with self.assertRaises(SchemaValidationError): + SampleRegistrationModelSchema.model_validate(self.valid_values) class TreatmentTest(TestCase): @@ -942,19 +871,18 @@ def setUp(self): self.donor = Donor.objects.create( submitter_donor_id="DONOR_1", program_id=self.program, - primary_site=["Adrenal gland"], ) self.primary_diagnosis = PrimaryDiagnosis.objects.create( submitter_primary_diagnosis_id="PRIMARY_DIAGNOSIS_1", program_id=self.program, - submitter_donor_id=self.donor, + submitter_donor_id=self.donor.submitter_donor_id, ) self.valid_values = { "submitter_treatment_id": "TREATMENT_1", - "program_id": self.program, - "submitter_donor_id": self.donor, - "submitter_primary_diagnosis_id": self.primary_diagnosis, - "treatment_type": ["Endoscopic therapy", "Photodynamic therapy"], + "program_id_id": self.program.program_id, + "submitter_donor_id": self.donor.submitter_donor_id, + "submitter_primary_diagnosis_id": self.primary_diagnosis.submitter_primary_diagnosis_id, + "treatment_type": ["Chemotherapy", "Immunotherapy"], "is_primary_treatment": "Yes", "treatment_start_date": "2021-02", "treatment_end_date": "2022-09", @@ -975,13 +903,16 @@ def test_treatment_creation(self): def test_treatment_fields(self): self.assertEqual(self.treatment.submitter_treatment_id, "TREATMENT_1") self.assertEqual(self.treatment.program_id, self.program) - self.assertEqual(self.treatment.submitter_donor_id, self.donor) self.assertEqual( - self.treatment.submitter_primary_diagnosis_id, self.primary_diagnosis + self.treatment.submitter_donor_id, self.donor.submitter_donor_id + ) + self.assertEqual( + self.treatment.submitter_primary_diagnosis_id, + self.primary_diagnosis.submitter_primary_diagnosis_id, ) self.assertCountEqual( self.treatment.treatment_type, - ["Endoscopic therapy", "Photodynamic therapy"], + ["Chemotherapy", "Immunotherapy"], ) self.assertEqual(self.treatment.is_primary_treatment, "Yes") self.assertEqual(self.treatment.treatment_start_date, "2021-02") @@ -1003,9 +934,12 @@ def test_null_optional_fields(self): optional_fields = get_optional_fields( excluded_fields=[ "submitter_donor_id", + "donor_uuid", "program_id", "submitter_treatment_id", "submitter_primary_diagnosis_id", + "primary_diagnosis_uuid", + "uuid", ], model_fields=self.treatment._meta.fields, ) @@ -1018,9 +952,12 @@ def test_blank_optional_fields(self): optional_fields = get_optional_fields( excluded_fields=[ "submitter_donor_id", + "donor_uuid", "program_id", "submitter_treatment_id", "submitter_primary_diagnosis_id", + "primary_diagnosis_uuid", + "uuid", ], model_fields=self.treatment._meta.fields, ) @@ -1032,104 +969,93 @@ def test_unique_id(self): with self.assertRaises(IntegrityError): self.treatment = Treatment.objects.create(**self.valid_values) + def test_valid_schema(self): + self.assertIsInstance( + TreatmentModelSchema.model_validate(self.valid_values), + TreatmentModelSchema, + ) + def test_invalid_id(self): invalid_values = get_invalid_ids() - for value in invalid_values: - self.valid_values["submitter_treatment_id"] = value - self.serializer = TreatmentSerializer( - instance=self.treatment, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["submitter_treatment_id"] = invalid_value + with self.assertRaises(SchemaValidationError): + TreatmentModelSchema.model_validate(self.valid_values) def test_invalid_treatment_type(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["treatment_type"] = value - self.serializer = TreatmentSerializer( - instance=self.treatment, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["treatment_type"] = invalid_value + with self.assertRaises(SchemaValidationError): + TreatmentModelSchema.model_validate(self.valid_values) def test_invalid_is_primary_treatment(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["is_primary_treatment"] = value - self.serializer = TreatmentSerializer( - instance=self.treatment, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["is_primary_treatment"] = invalid_value + with self.assertRaises(SchemaValidationError): + TreatmentModelSchema.model_validate(self.valid_values) def test_invalid_treatment_start_date(self): invalid_values = get_invalid_dates() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["treatment_start_date"] = value - self.serializer = TreatmentSerializer( - instance=self.treatment, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["treatment_start_date"] = invalid_value + with self.assertRaises(SchemaValidationError): + TreatmentModelSchema.model_validate(self.valid_values) def test_treatment_end_date(self): invalid_values = get_invalid_dates() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["treatment_end_date"] = value - self.serializer = TreatmentSerializer( - instance=self.treatment, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["treatment_end_date"] = invalid_value + with self.assertRaises(SchemaValidationError): + TreatmentModelSchema.model_validate(self.valid_values) def test_treatment_setting(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["treatment_setting"] = value - self.serializer = TreatmentSerializer( - instance=self.treatment, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["treatment_setting"] = invalid_value + with self.assertRaises(SchemaValidationError): + TreatmentModelSchema.model_validate(self.valid_values) def test_invalid_treatment_intent(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["treatment_intent"] = value - self.serializer = TreatmentSerializer( - instance=self.treatment, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["treatment_intent"] = invalid_value + with self.assertRaises(SchemaValidationError): + TreatmentModelSchema.model_validate(self.valid_values) def test_invalid_response_to_treatment_criteria_method(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["response_to_treatment_criteria_method"] = value - self.serializer = TreatmentSerializer( - instance=self.treatment, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values[ + "response_to_treatment_criteria_method" + ] = invalid_value + with self.assertRaises(SchemaValidationError): + TreatmentModelSchema.model_validate(self.valid_values) def test_invalid_response_to_treatment(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["response_to_treatment"] = value - self.serializer = TreatmentSerializer( - instance=self.treatment, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["response_to_treatment"] = invalid_value + with self.assertRaises(SchemaValidationError): + TreatmentModelSchema.model_validate(self.valid_values) def test_invalid_status_of_treatment(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["status_of_treatment"] = value - self.serializer = TreatmentSerializer( - instance=self.treatment, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["status_of_treatment"] = invalid_value + with self.assertRaises(SchemaValidationError): + TreatmentModelSchema.model_validate(self.valid_values) class ChemotherapyTest(TestCase): @@ -1138,23 +1064,22 @@ def setUp(self): self.donor = Donor.objects.create( submitter_donor_id="DONOR_1", program_id=self.program, - primary_site=["Adrenal gland"], ) self.primary_diagnosis = PrimaryDiagnosis.objects.create( submitter_primary_diagnosis_id="PRIMARY_DIAGNOSIS_1", program_id=self.program, - submitter_donor_id=self.donor, + submitter_donor_id=self.donor.submitter_donor_id, ) self.treatment = Treatment.objects.create( submitter_treatment_id="TREATMENT_1", program_id=self.program, - submitter_donor_id=self.donor, - submitter_primary_diagnosis_id=self.primary_diagnosis, + submitter_donor_id=self.donor.submitter_donor_id, + submitter_primary_diagnosis_id=self.primary_diagnosis.submitter_primary_diagnosis_id, ) self.valid_values = { - "program_id": self.program, - "submitter_donor_id": self.donor, - "submitter_treatment_id": self.treatment, + "program_id_id": self.program.program_id, + "submitter_donor_id": self.donor.submitter_donor_id, + "submitter_treatment_id": self.treatment.submitter_treatment_id, "drug_name": "FLUOROURACIL", "drug_reference_identifier": "87354", "chemotherapy_drug_dose_units": "mg/m2", @@ -1169,8 +1094,13 @@ def test_chemotherapy_creation(self): def test_chemotherapy_fields(self): self.assertEqual(self.chemotherapy.program_id, self.program) - self.assertEqual(self.chemotherapy.submitter_donor_id, self.donor) - self.assertEqual(self.chemotherapy.submitter_treatment_id, self.treatment) + self.assertEqual( + self.chemotherapy.submitter_donor_id, self.donor.submitter_donor_id + ) + self.assertEqual( + self.chemotherapy.submitter_treatment_id, + self.treatment.submitter_treatment_id, + ) self.assertEqual(self.chemotherapy.drug_name, "FLUOROURACIL") self.assertEqual(self.chemotherapy.drug_reference_identifier, "87354") self.assertEqual(self.chemotherapy.chemotherapy_drug_dose_units, "mg/m2") @@ -1182,10 +1112,12 @@ def test_null_optional_fields(self): """Tests no exceptions are raised when saving null values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", "submitter_donor_id", + "donor_uuid", "program_id", "submitter_treatment_id", + "treatment_uuid", + "uuid", ], model_fields=self.chemotherapy._meta.fields, ) @@ -1197,10 +1129,12 @@ def test_blank_optional_fields(self): """Tests no exceptions are raised when saving blank values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", "submitter_donor_id", + "donor_uuid", "program_id", "submitter_treatment_id", + "treatment_uuid", + "uuid", ], model_fields=self.chemotherapy._meta.fields, ) @@ -1218,25 +1152,27 @@ def test_drug_reference_identifier_max_length(self): with self.assertRaises(DataError): self.chemotherapy.save() + def test_valid_schema(self): + self.assertIsInstance( + ChemotherapyModelSchema.model_validate(self.valid_values), + ChemotherapyModelSchema, + ) + def test_invalid_chemotherapy_drug_dose_units(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["chemotherapy_drug_dose_units"] = value - self.serializer = ChemotherapySerializer( - instance=self.chemotherapy, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["chemotherapy_drug_dose_units"] = invalid_value + with self.assertRaises(SchemaValidationError): + ChemotherapyModelSchema.model_validate(self.valid_values) def test_invalid_drug_reference_database(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["drug_reference_database"] = value - self.serializer = ChemotherapySerializer( - instance=self.chemotherapy, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["drug_reference_database"] = invalid_value + with self.assertRaises(SchemaValidationError): + ChemotherapyModelSchema.model_validate(self.valid_values) class HormoneTherapyTest(TestCase): @@ -1245,23 +1181,22 @@ def setUp(self): self.donor = Donor.objects.create( submitter_donor_id="DONOR_1", program_id=self.program, - primary_site=["Adrenal gland"], ) self.primary_diagnosis = PrimaryDiagnosis.objects.create( submitter_primary_diagnosis_id="PRIMARY_DIAGNOSIS_1", program_id=self.program, - submitter_donor_id=self.donor, + submitter_donor_id=self.donor.submitter_donor_id, ) self.treatment = Treatment.objects.create( submitter_treatment_id="TREATMENT_1", program_id=self.program, - submitter_donor_id=self.donor, - submitter_primary_diagnosis_id=self.primary_diagnosis, + submitter_donor_id=self.donor.submitter_donor_id, + submitter_primary_diagnosis_id=self.primary_diagnosis.submitter_primary_diagnosis_id, ) self.valid_values = { - "program_id": self.program, - "submitter_donor_id": self.donor, - "submitter_treatment_id": self.treatment, + "program_id_id": self.program.program_id, + "submitter_donor_id": self.donor.submitter_donor_id, + "submitter_treatment_id": self.treatment.submitter_treatment_id, "drug_name": "exemestane", "drug_reference_identifier": "345678", "hormone_drug_dose_units": "mg/m2", @@ -1275,8 +1210,13 @@ def hormone_therapy_creation(self): def test_hormone_therapy_fields(self): self.assertEqual(self.hormone_therapy.program_id, self.program) - self.assertEqual(self.hormone_therapy.submitter_donor_id, self.donor) - self.assertEqual(self.hormone_therapy.submitter_treatment_id, self.treatment) + self.assertEqual( + self.hormone_therapy.submitter_donor_id, self.donor.submitter_donor_id + ) + self.assertEqual( + self.hormone_therapy.submitter_treatment_id, + self.treatment.submitter_treatment_id, + ) self.assertEqual(self.hormone_therapy.drug_name, "exemestane") self.assertEqual(self.hormone_therapy.drug_reference_identifier, "345678") self.assertEqual(self.hormone_therapy.hormone_drug_dose_units, "mg/m2") @@ -1287,10 +1227,12 @@ def test_null_optional_fields(self): """Tests no exceptions are raised when saving null values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", "submitter_donor_id", + "donor_uuid", "program_id", "submitter_treatment_id", + "treatment_uuid", + "uuid", ], model_fields=self.hormone_therapy._meta.fields, ) @@ -1302,10 +1244,12 @@ def test_blank_optional_fields(self): """Tests no exceptions are raised when saving blank values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", "submitter_donor_id", + "donor_uuid", "program_id", "submitter_treatment_id", + "treatment_uuid", + "uuid", ], model_fields=self.hormone_therapy._meta.fields, ) @@ -1323,25 +1267,27 @@ def test_drug_reference_identifier_max_length(self): with self.assertRaises(DataError): self.hormone_therapy.save() + def test_valid_schema(self): + self.assertIsInstance( + HormoneTherapyModelSchema.model_validate(self.valid_values), + HormoneTherapyModelSchema, + ) + def test_invalid_hormone_drug_dose_units(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["hormone_drug_dose_units"] = value - self.serializer = HormoneTherapySerializer( - instance=self.hormone_therapy, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["hormone_drug_dose_units"] = invalid_value + with self.assertRaises(SchemaValidationError): + HormoneTherapyModelSchema.model_validate(self.valid_values) def test_invalid_drug_reference_database(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["drug_reference_database"] = value - self.serializer = ChemotherapySerializer( - instance=self.hormone_therapy, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["drug_reference_database"] = invalid_value + with self.assertRaises(SchemaValidationError): + HormoneTherapyModelSchema.model_validate(self.valid_values) class RadiationTest(TestCase): @@ -1350,28 +1296,27 @@ def setUp(self): self.donor = Donor.objects.create( submitter_donor_id="DONOR_1", program_id=self.program, - primary_site=["Adrenal gland"], ) self.primary_diagnosis = PrimaryDiagnosis.objects.create( submitter_primary_diagnosis_id="PRIMARY_DIAGNOSIS_1", program_id=self.program, - submitter_donor_id=self.donor, + submitter_donor_id=self.donor.submitter_donor_id, ) self.treatment = Treatment.objects.create( submitter_treatment_id="TREATMENT_1", program_id=self.program, - submitter_donor_id=self.donor, - submitter_primary_diagnosis_id=self.primary_diagnosis, + submitter_donor_id=self.donor.submitter_donor_id, + submitter_primary_diagnosis_id=self.primary_diagnosis.submitter_primary_diagnosis_id, ) self.valid_values = { - "program_id": self.program, - "submitter_donor_id": self.donor, - "submitter_treatment_id": self.treatment, + "program_id_id": self.program.program_id, + "submitter_donor_id": self.donor.submitter_donor_id, + "submitter_treatment_id": self.treatment.submitter_treatment_id, "radiation_therapy_modality": "Brachytherapy (procedure)", "radiation_therapy_type": "Internal", "radiation_therapy_fractions": "30", "radiation_therapy_dosage": "66", - "anatomical_site_irradiated": "Chest wall structure", + "anatomical_site_irradiated": "Nasopharynx", "radiation_boost": True, "reference_radiation_treatment_id": "REFERENCE_RADIATION_TREATMENT_1", } @@ -1382,17 +1327,19 @@ def test_radiation_creation(self): def test_radiation_fields(self): self.assertEqual(self.radiation.program_id, self.program) - self.assertEqual(self.radiation.submitter_donor_id, self.donor) - self.assertEqual(self.radiation.submitter_treatment_id, self.treatment) + self.assertEqual( + self.radiation.submitter_donor_id, self.donor.submitter_donor_id + ) + self.assertEqual( + self.radiation.submitter_treatment_id, self.treatment.submitter_treatment_id + ) self.assertEqual( self.radiation.radiation_therapy_modality, "Brachytherapy (procedure)" ) self.assertEqual(self.radiation.radiation_therapy_type, "Internal") self.assertEqual(self.radiation.radiation_therapy_fractions, "30") self.assertEqual(self.radiation.radiation_therapy_dosage, "66") - self.assertEqual( - self.radiation.anatomical_site_irradiated, "Chest wall structure" - ) + self.assertEqual(self.radiation.anatomical_site_irradiated, "Nasopharynx") self.assertTrue(self.radiation.radiation_boost) self.assertEqual( self.radiation.reference_radiation_treatment_id, @@ -1403,10 +1350,12 @@ def test_null_optional_fields(self): """Tests no exceptions are raised when saving null values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", "submitter_donor_id", + "donor_uuid", "program_id", "submitter_treatment_id", + "treatment_uuid", + "uuid", ], model_fields=self.radiation._meta.fields, ) @@ -1418,10 +1367,12 @@ def test_blank_optional_fields(self): """Tests no exceptions are raised when saving blank values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", "submitter_donor_id", + "donor_uuid", "program_id", "submitter_treatment_id", + "treatment_uuid", + "uuid", ], model_fields=self.radiation._meta.fields, ) @@ -1429,35 +1380,35 @@ def test_blank_optional_fields(self): setattr(self.radiation, field, "") self.radiation.full_clean() + def test_valid_schema(self): + self.assertIsInstance( + RadiationModelSchema.model_validate(self.valid_values), + RadiationModelSchema, + ) + def test_invalid_radiation_therapy_modality(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["radiation_therapy_modality"] = value - self.serializer = RadiationSerializer( - instance=self.radiation, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["radiation_therapy_modality"] = invalid_value + with self.assertRaises(SchemaValidationError): + RadiationModelSchema.model_validate(self.valid_values) def test_invalid_radiation_therapy_type(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["radiation_therapy_type"] = value - self.serializer = RadiationSerializer( - instance=self.radiation, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["radiation_therapy_type"] = invalid_value + with self.assertRaises(SchemaValidationError): + RadiationModelSchema.model_validate(self.valid_values) def test_invalid_anatomical_site_irradiated(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["anatomical_site_irradiated"] = value - self.serializer = RadiationSerializer( - instance=self.radiation, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["anatomical_site_irradiated"] = invalid_value + with self.assertRaises(SchemaValidationError): + RadiationModelSchema.model_validate(self.valid_values) def test_invalid_radiation_boost(self): self.radiation.radiation_boost = "foo" @@ -1476,23 +1427,22 @@ def setUp(self): self.donor = Donor.objects.create( submitter_donor_id="DONOR_1", program_id=self.program, - primary_site=["Adrenal gland"], ) self.primary_diagnosis = PrimaryDiagnosis.objects.create( submitter_primary_diagnosis_id="PRIMARY_DIAGNOSIS_1", program_id=self.program, - submitter_donor_id=self.donor, + submitter_donor_id=self.donor.submitter_donor_id, ) self.treatment = Treatment.objects.create( submitter_treatment_id="TREATMENT_1", program_id=self.program, - submitter_donor_id=self.donor, - submitter_primary_diagnosis_id=self.primary_diagnosis, + submitter_donor_id=self.donor.submitter_donor_id, + submitter_primary_diagnosis_id=self.primary_diagnosis.submitter_primary_diagnosis_id, ) self.valid_values = { - "program_id": self.program, - "submitter_donor_id": self.donor, - "submitter_treatment_id": self.treatment, + "program_id_id": self.program.program_id, + "submitter_donor_id": self.donor.submitter_donor_id, + "submitter_treatment_id": self.treatment.submitter_treatment_id, "immunotherapy_type": "Cell-based", "drug_name": "Necitumumab", "drug_reference_identifier": "8756456", @@ -1507,8 +1457,13 @@ def test_immunotherapy_creation(self): def test_immunotherapy_fields(self): self.assertEqual(self.immunotherapy.program_id, self.program) - self.assertEqual(self.immunotherapy.submitter_donor_id, self.donor) - self.assertEqual(self.immunotherapy.submitter_treatment_id, self.treatment) + self.assertEqual( + self.immunotherapy.submitter_donor_id, self.donor.submitter_donor_id + ) + self.assertEqual( + self.immunotherapy.submitter_treatment_id, + self.treatment.submitter_treatment_id, + ) self.assertEqual(self.immunotherapy.immunotherapy_type, "Cell-based") self.assertEqual(self.immunotherapy.drug_name, "Necitumumab") self.assertEqual(self.immunotherapy.drug_reference_identifier, "8756456") @@ -1520,10 +1475,12 @@ def test_null_optional_fields(self): """Tests no exceptions are raised when saving null values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", "submitter_donor_id", + "donor_uuid", "program_id", "submitter_treatment_id", + "treatment_uuid", + "uuid", ], model_fields=self.immunotherapy._meta.fields, ) @@ -1535,10 +1492,12 @@ def test_blank_optional_fields(self): """Tests no exceptions are raised when saving blank values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", "submitter_donor_id", + "donor_uuid", "program_id", "submitter_treatment_id", + "treatment_uuid", + "uuid", ], model_fields=self.immunotherapy._meta.fields, ) @@ -1546,15 +1505,19 @@ def test_blank_optional_fields(self): setattr(self.immunotherapy, field, "") self.immunotherapy.full_clean() + def test_valid_schema(self): + self.assertIsInstance( + ImmunotherapyModelSchema.model_validate(self.valid_values), + ImmunotherapyModelSchema, + ) + def test_invalid_immunotherapy_type(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["immunotherapy_type"] = value - self.serializer = ImmunotherapySerializer( - instance=self.immunotherapy, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["immunotherapy_type"] = invalid_value + with self.assertRaises(SchemaValidationError): + ImmunotherapyModelSchema.model_validate(self.valid_values) def test_drug_name_max_length(self): self.immunotherapy.drug_name = "f" * 256 @@ -1573,23 +1536,22 @@ def setUp(self): self.donor = Donor.objects.create( submitter_donor_id="DONOR_1", program_id=self.program, - primary_site=["Adrenal gland"], ) self.primary_diagnosis = PrimaryDiagnosis.objects.create( submitter_primary_diagnosis_id="PRIMARY_DIAGNOSIS_1", program_id=self.program, - submitter_donor_id=self.donor, + submitter_donor_id=self.donor.submitter_donor_id, ) self.treatment = Treatment.objects.create( submitter_treatment_id="TREATMENT_1", program_id=self.program, - submitter_donor_id=self.donor, - submitter_primary_diagnosis_id=self.primary_diagnosis, + submitter_donor_id=self.donor.submitter_donor_id, + submitter_primary_diagnosis_id=self.primary_diagnosis.submitter_primary_diagnosis_id, ) self.valid_values = { - "program_id": self.program, - "submitter_donor_id": self.donor, - "submitter_treatment_id": self.treatment, + "program_id_id": self.program.program_id, + "submitter_donor_id": self.donor.submitter_donor_id, + "submitter_treatment_id": self.treatment.submitter_treatment_id, "surgery_type": "Drainage of abscess", "surgery_site": "C06", "surgery_location": "Primary", @@ -1611,8 +1573,10 @@ def test_immunotherapy_creation(self): def test_surgery_fields(self): self.assertEqual(self.surgery.program_id, self.program) - self.assertEqual(self.surgery.submitter_donor_id, self.donor) - self.assertEqual(self.surgery.submitter_treatment_id, self.treatment) + self.assertEqual(self.surgery.submitter_donor_id, self.donor.submitter_donor_id) + self.assertEqual( + self.surgery.submitter_treatment_id, self.treatment.submitter_treatment_id + ) self.assertEqual(self.surgery.surgery_type, "Drainage of abscess") self.assertEqual(self.surgery.surgery_site, "C06") self.assertEqual(self.surgery.surgery_location, "Primary") @@ -1636,14 +1600,13 @@ def test_null_optional_fields(self): """Tests no exceptions are raised when saving null values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", + "uuid", "submitter_donor_id", + "donor_uuid", "program_id", "submitter_treatment_id", + "treatment_uuid", "submitter_specimen_id", - "margin_types_involved", - "margin_types_not_involved", - "margin_types_not_assessed", ], model_fields=self.surgery._meta.fields, ) @@ -1655,14 +1618,13 @@ def test_blank_optional_fields(self): """Tests no exceptions are raised when saving blank values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", + "uuid", "submitter_donor_id", + "donor_uuid", "program_id", "submitter_treatment_id", + "treatment_uuid", "submitter_specimen_id", - "margin_types_involved", - "margin_types_not_involved", - "margin_types_not_assessed", ], model_fields=self.surgery._meta.fields, ) @@ -1670,104 +1632,91 @@ def test_blank_optional_fields(self): setattr(self.surgery, field, "") self.surgery.full_clean() + def test_valid_schema(self): + self.assertIsInstance( + SurgeryModelSchema.model_validate(self.valid_values), + SurgeryModelSchema, + ) + def test_invalid_surgery_type(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["surgery_type"] = value - self.serializer = SurgerySerializer( - instance=self.surgery, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["surgery_type"] = invalid_value + with self.assertRaises(SchemaValidationError): + SurgeryModelSchema.model_validate(self.valid_values) - # TODO: fix regular expression - # def test_specimen_surgery_site(self): - # invalid_values = ["8260/3", 1] - # for value in invalid_values: - # with self.subTest(value=value): - # self.valid_values["specimen_anatomic_location"] = value - # self.serializer = SpecimenSerializer(instance=self.donor, data=self.valid_values) - # self.assertFalse(self.serializer.is_valid()) + def test_invalid_surgery_site(self): + invalid_values = ["invalid", 1] + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["surgery_site"] = invalid_value + with self.assertRaises(SchemaValidationError): + SurgeryModelSchema.model_validate(self.valid_values) def test_invalid_surgery_location(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["surgery_location"] = value - self.serializer = SurgerySerializer( - instance=self.surgery, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["surgery_location"] = invalid_value + with self.assertRaises(SchemaValidationError): + SurgeryModelSchema.model_validate(self.valid_values) def test_invalid_tumour_focality(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["tumour_focality"] = value - self.serializer = SurgerySerializer( - instance=self.surgery, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["tumour_focality"] = invalid_value + with self.assertRaises(SchemaValidationError): + SurgeryModelSchema.model_validate(self.valid_values) def test_invalid_residual_tumour_classification(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["residual_tumour_classification"] = value - self.serializer = SurgerySerializer( - instance=self.surgery, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["residual_tumour_classification"] = invalid_value + with self.assertRaises(SchemaValidationError): + SurgeryModelSchema.model_validate(self.valid_values) def test_invalid_margin_types_involved(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["margin_types_involved"] = value - self.serializer = SurgerySerializer( - instance=self.surgery, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["margin_types_involved"] = invalid_value + with self.assertRaises(SchemaValidationError): + SurgeryModelSchema.model_validate(self.valid_values) def test_invalid_margin_types_not_involved(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["margin_types_not_involved"] = value - self.serializer = SurgerySerializer( - instance=self.surgery, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["margin_types_not_involved"] = invalid_value + with self.assertRaises(SchemaValidationError): + SurgeryModelSchema.model_validate(self.valid_values) def test_invalid_margin_types_not_assessed(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["margin_types_not_assessed"] = value - self.serializer = SurgerySerializer( - instance=self.surgery, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["margin_types_not_assessed"] = invalid_value + with self.assertRaises(SchemaValidationError): + SurgeryModelSchema.model_validate(self.valid_values) def test_invalid_lymphovascular_invasion(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["lymphovascular_invasion"] = value - self.serializer = SurgerySerializer( - instance=self.surgery, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["lymphovascular_invasion"] = invalid_value + with self.assertRaises(SchemaValidationError): + SurgeryModelSchema.model_validate(self.valid_values) def test_invalid_perineural_invasion(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["perineural_invasion"] = value - self.serializer = SurgerySerializer( - instance=self.surgery, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["perineural_invasion"] = invalid_value + with self.assertRaises(SchemaValidationError): + SurgeryModelSchema.model_validate(self.valid_values) class FollowUpTest(TestCase): @@ -1776,25 +1725,24 @@ def setUp(self): self.donor = Donor.objects.create( submitter_donor_id="DONOR_1", program_id=self.program, - primary_site=["Adrenal gland"], ) self.primary_diagnosis = PrimaryDiagnosis.objects.create( submitter_primary_diagnosis_id="PRIMARY_DIAGNOSIS_1", program_id=self.program, - submitter_donor_id=self.donor, + submitter_donor_id=self.donor.submitter_donor_id, ) self.treatment = Treatment.objects.create( submitter_treatment_id="TREATMENT_1", program_id=self.program, - submitter_donor_id=self.donor, - submitter_primary_diagnosis_id=self.primary_diagnosis, + submitter_donor_id=self.donor.submitter_donor_id, + submitter_primary_diagnosis_id=self.primary_diagnosis.submitter_primary_diagnosis_id, ) self.valid_values = { "submitter_follow_up_id": "FOLLOW_UP_1", - "program_id": self.program, - "submitter_donor_id": self.donor, - "submitter_primary_diagnosis_id": self.primary_diagnosis, - "submitter_treatment_id": self.treatment, + "program_id_id": self.program.program_id, + "submitter_donor_id": self.donor.submitter_donor_id, + "submitter_primary_diagnosis_id": self.primary_diagnosis.submitter_primary_diagnosis_id, + "submitter_treatment_id": self.treatment.submitter_treatment_id, "date_of_followup": "2022-10", "disease_status_at_followup": "Loco-regional progression", "relapse_type": "Progression (liquid tumours)", @@ -1818,11 +1766,16 @@ def test_followup_creation(self): def test_followup_fields(self): self.assertEqual(self.followup.submitter_follow_up_id, "FOLLOW_UP_1") self.assertEqual(self.followup.program_id, self.program) - self.assertEqual(self.followup.submitter_donor_id, self.donor) self.assertEqual( - self.followup.submitter_primary_diagnosis_id, self.primary_diagnosis + self.followup.submitter_donor_id, self.donor.submitter_donor_id + ) + self.assertEqual( + self.followup.submitter_primary_diagnosis_id, + self.primary_diagnosis.submitter_primary_diagnosis_id, + ) + self.assertEqual( + self.followup.submitter_treatment_id, self.treatment.submitter_treatment_id ) - self.assertEqual(self.followup.submitter_treatment_id, self.treatment) self.assertEqual(self.followup.date_of_followup, "2022-10") self.assertEqual( self.followup.disease_status_at_followup, "Loco-regional progression" @@ -1847,11 +1800,13 @@ def test_null_optional_fields(self): """Tests no exceptions are raised when saving null values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ + "uuid", "submitter_follow_up_id", "submitter_donor_id", + "donor_uuid", "program_id", - "submitter_treatment_id", - "submitter_primary_diagnosis_id", + "treatment_uuid", + "primary_diagnosis_uuid", ], model_fields=self.followup._meta.fields, ) @@ -1863,11 +1818,13 @@ def test_blank_optional_fields(self): """Tests no exceptions are raised when saving blank values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ + "uuid", "submitter_follow_up_id", "submitter_donor_id", "program_id", - "submitter_treatment_id", - "submitter_primary_diagnosis_id", + "donor_uuid", + "treatment_uuid", + "primary_diagnosis_uuid", ], model_fields=self.followup._meta.fields, ) @@ -1879,123 +1836,109 @@ def test_unique_id(self): with self.assertRaises(IntegrityError): self.followup = FollowUp.objects.create(**self.valid_values) + def test_valid_schema(self): + self.assertIsInstance( + FollowUpModelSchema.model_validate(self.valid_values), + FollowUpModelSchema, + ) + def test_invalid_id(self): invalid_values = get_invalid_ids() - for value in invalid_values: - self.valid_values["submitter_follow_up_id"] = value - self.serializer = FollowUpSerializer( - instance=self.followup, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["submitter_follow_up_id"] = invalid_value + with self.assertRaises(SchemaValidationError): + FollowUpModelSchema.model_validate(self.valid_values) def test_invalid_date_of_followup(self): invalid_values = get_invalid_dates() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["date_of_followup"] = value - self.serializer = FollowUpSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["date_of_followup"] = invalid_value + with self.assertRaises(SchemaValidationError): + FollowUpModelSchema.model_validate(self.valid_values) def test_invalid_disease_status_at_followup(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["disease_status_at_followup"] = value - self.serializer = FollowUpSerializer( - instance=self.followup, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["disease_status_at_followup"] = invalid_value + with self.assertRaises(SchemaValidationError): + FollowUpModelSchema.model_validate(self.valid_values) def test_invalid_relapse_type(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["relapse_type"] = value - self.serializer = FollowUpSerializer( - instance=self.followup, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["relapse_type"] = invalid_value + with self.assertRaises(SchemaValidationError): + FollowUpModelSchema.model_validate(self.valid_values) def test_invalid_date_of_relapse(self): invalid_values = get_invalid_dates() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["date_of_relapse"] = value - self.serializer = FollowUpSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["date_of_relapse"] = invalid_value + with self.assertRaises(SchemaValidationError): + FollowUpModelSchema.model_validate(self.valid_values) def test_invalid_method_of_progression_status(self): invalid_values = get_invalid_dates() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["method_of_progression_status"] = value - self.serializer = FollowUpSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) - - # TODO: fix regular expression - # def test_anatomic_site_progression_or_recurrence(self): - # invalid_values = ["8260/3", 1] - # for value in invalid_values: - # with self.subTest(value=value): - # self.valid_values["sanatomic_site_progression_or_recurrence"] = value - # self.serializer = FollowUpSerializer(instance=self.followup, data=self.valid_values) - # self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["method_of_progression_status"] = invalid_value + with self.assertRaises(SchemaValidationError): + FollowUpModelSchema.model_validate(self.valid_values) + + def test_anatomic_site_progression_or_recurrence(self): + invalid_values = ["invalid", 1] + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values[ + "anatomic_site_progression_or_recurrence" + ] = invalid_value + with self.assertRaises(SchemaValidationError): + FollowUpModelSchema.model_validate(self.valid_values) def test_invalid_recurrence_tumour_staging_system(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["recurrence_tumour_staging_system"] = value - self.serializer = FollowUpSerializer( - instance=self.followup, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["recurrence_tumour_staging_system"] = invalid_value + with self.assertRaises(SchemaValidationError): + FollowUpModelSchema.model_validate(self.valid_values) def test_invalid_recurrence_t_category(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["recurrence_t_category"] = value - self.serializer = FollowUpSerializer( - instance=self.followup, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["recurrence_t_category"] = invalid_value + with self.assertRaises(SchemaValidationError): + FollowUpModelSchema.model_validate(self.valid_values) def test_invalid_recurrence_n_category(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["recurrence_n_category"] = value - self.serializer = FollowUpSerializer( - instance=self.followup, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["recurrence_n_category"] = invalid_value + with self.assertRaises(SchemaValidationError): + FollowUpModelSchema.model_validate(self.valid_values) def test_invalid_recurrence_m_category(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["recurrence_m_category"] = value - self.serializer = FollowUpSerializer( - instance=self.followup, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["recurrence_m_category"] = invalid_value + with self.assertRaises(SchemaValidationError): + FollowUpModelSchema.model_validate(self.valid_values) def test_invalid_recurrence_stage_group(self): invalid_values = get_invalid_dates() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["recurrence_stage_group"] = value - self.serializer = FollowUpSerializer( - instance=self.donor, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["recurrence_stage_group"] = invalid_value + with self.assertRaises(SchemaValidationError): + FollowUpModelSchema.model_validate(self.valid_values) class BiomarkerTest(TestCase): @@ -2004,11 +1947,10 @@ def setUp(self): self.donor = Donor.objects.create( submitter_donor_id="DONOR_1", program_id=self.program, - primary_site=["Adrenal gland"], ) self.valid_values = { - "program_id": self.program, - "submitter_donor_id": self.donor, + "program_id_id": self.program.program_id, + "submitter_donor_id": self.donor.submitter_donor_id, "test_date": "8", "psa_level": 230, "ca125": 29, @@ -2030,7 +1972,9 @@ def test_biomarker_creation(self): def test_biomarker_fields(self): self.assertEqual(self.biomarker.program_id, self.program) - self.assertEqual(self.biomarker.submitter_donor_id, self.donor) + self.assertEqual( + self.biomarker.submitter_donor_id, self.donor.submitter_donor_id + ) self.assertEqual(self.biomarker.test_date, "8") self.assertEqual(self.biomarker.psa_level, 230) self.assertEqual(self.biomarker.ca125, 29) @@ -2049,8 +1993,9 @@ def test_null_optional_fields(self): """Tests no exceptions are raised when saving null values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", + "uuid", "submitter_donor_id", + "donor_uuid", "program_id", ], model_fields=self.biomarker._meta.fields, @@ -2063,13 +2008,10 @@ def test_blank_optional_fields(self): """Tests no exceptions are raised when saving blank values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", + "uuid", "submitter_donor_id", + "donor_uuid", "program_id", - "submitter_specimen_id", - "submitter_primary_diagnosis_id", - "submitter_treatment_id", - "submitter_follow_up_id", ], model_fields=self.biomarker._meta.fields, ) @@ -2077,6 +2019,68 @@ def test_blank_optional_fields(self): setattr(self.biomarker, field, "") self.biomarker.full_clean() + def test_valid_schema(self): + self.assertIsInstance( + BiomarkerModelSchema.model_validate(self.valid_values), + BiomarkerModelSchema, + ) + + def test_invalid_er_status(self): + invalid_values = get_invalid_choices() + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["er_status"] = invalid_value + with self.assertRaises(SchemaValidationError): + BiomarkerModelSchema.model_validate(self.valid_values) + + def test_invalid_pr_status(self): + invalid_values = get_invalid_choices() + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["pr_status"] = invalid_value + with self.assertRaises(SchemaValidationError): + BiomarkerModelSchema.model_validate(self.valid_values) + + def test_invalid_her2_ihc_status(self): + invalid_values = get_invalid_choices() + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["her2_ihc_status"] = invalid_value + with self.assertRaises(SchemaValidationError): + BiomarkerModelSchema.model_validate(self.valid_values) + + def test_invalid_her2_ish_status(self): + invalid_values = get_invalid_choices() + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["her2_ish_status"] = invalid_value + with self.assertRaises(SchemaValidationError): + BiomarkerModelSchema.model_validate(self.valid_values) + + def test_invalid_hpv_ihc_status(self): + invalid_values = get_invalid_choices() + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["hpv_ihc_status"] = invalid_value + with self.assertRaises(SchemaValidationError): + BiomarkerModelSchema.model_validate(self.valid_values) + + def test_invalid_hpv_pcr_status(self): + invalid_values = get_invalid_choices() + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["hpv_pcr_status"] = invalid_value + with self.assertRaises(SchemaValidationError): + BiomarkerModelSchema.model_validate(self.valid_values) + + def test_invalid_hpv_strain(self): + invalid_values = get_invalid_choices() + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["hpv_strain"] = invalid_value + with self.assertRaises(SchemaValidationError): + BiomarkerModelSchema.model_validate(self.valid_values) + class ComorbidityTest(TestCase): def setUp(self): @@ -2084,11 +2088,10 @@ def setUp(self): self.donor = Donor.objects.create( submitter_donor_id="DONOR_1", program_id=self.program, - primary_site=["Adrenal gland"], ) self.valid_values = { - "program_id": self.program, - "submitter_donor_id": self.donor, + "program_id_id": self.program.program_id, + "submitter_donor_id": self.donor.submitter_donor_id, "prior_malignancy": "Yes", "laterality_of_prior_malignancy": "Not applicable", "age_at_comorbidity_diagnosis": 35, @@ -2103,7 +2106,9 @@ def test_comorbidity_creation(self): def test_comorbitidy_fields(self): self.assertEqual(self.comorbidity.program_id, self.program) - self.assertEqual(self.comorbidity.submitter_donor_id, self.donor) + self.assertEqual( + self.comorbidity.submitter_donor_id, self.donor.submitter_donor_id + ) self.assertEqual(self.comorbidity.prior_malignancy, "Yes") self.assertEqual( self.comorbidity.laterality_of_prior_malignancy, "Not applicable" @@ -2117,8 +2122,9 @@ def test_null_optional_fields(self): """Tests no exceptions are raised when saving null values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", + "uuid", "submitter_donor_id", + "donor_uuid", "program_id", ], model_fields=self.comorbidity._meta.fields, @@ -2131,8 +2137,9 @@ def test_blank_optional_fields(self): """Tests no exceptions are raised when saving blank values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", + "uuid", "submitter_donor_id", + "donor_uuid", "program_id", ], model_fields=self.comorbidity._meta.fields, @@ -2141,44 +2148,43 @@ def test_blank_optional_fields(self): setattr(self.comorbidity, field, "") self.comorbidity.full_clean() + def test_valid_schema(self): + self.assertIsInstance( + ComorbidityModelSchema.model_validate(self.valid_values), + ComorbidityModelSchema, + ) + def test_invalid_prior_malignancy(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["prior_malignancy"] = value - self.serializer = ComorbiditySerializer( - instance=self.comorbidity, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["prior_malignancy"] = invalid_value + with self.assertRaises(SchemaValidationError): + ComorbidityModelSchema.model_validate(self.valid_values) def test_invalid_laterality_of_prior_malignancy(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["laterality_of_prior_malignancy"] = value - self.serializer = ComorbiditySerializer( - instance=self.comorbidity, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) - - # TODO: fix regular expression - # def test_comorbidity_type_code(self): - # invalid_values = ["8260/3", 1] - # for value in invalid_values: - # with self.subTest(value=value): - # self.valid_values["comorbidity_type_code"] = value - # self.serializer = ComorbiditySerializer(instance=self.followup, data=self.valid_values) - # self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["laterality_of_prior_malignancy"] = invalid_value + with self.assertRaises(SchemaValidationError): + ComorbidityModelSchema.model_validate(self.valid_values) + + def test_comorbidity_type_code(self): + invalid_values = ["invalid", 1] + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["comorbidity_type_code"] = invalid_value + with self.assertRaises(SchemaValidationError): + ComorbidityModelSchema.model_validate(self.valid_values) def test_invalid_comorbidity_treatment_status(self): invalid_values = get_invalid_choices() - for value in invalid_values: - with self.subTest(value=value): - self.valid_values["comorbidity_treatment_status"] = value - self.serializer = ComorbiditySerializer( - instance=self.comorbidity, data=self.valid_values - ) - self.assertFalse(self.serializer.is_valid()) + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["comorbidity_treatment_status"] = invalid_value + with self.assertRaises(SchemaValidationError): + ComorbidityModelSchema.model_validate(self.valid_values) def test_comorbidity_treatment_max_length(self): self.comorbidity.comorbidity_treatment = "f" * 256 @@ -2192,11 +2198,10 @@ def setUp(self): self.donor = Donor.objects.create( submitter_donor_id="DONOR_1", program_id=self.program, - primary_site=["Adrenal gland"], ) self.valid_values = { - "program_id": self.program, - "submitter_donor_id": self.donor, + "program_id_id": self.program.program_id, + "submitter_donor_id": self.donor.submitter_donor_id, "tobacco_smoking_status": "Current smoker", "tobacco_type": ["Unknown", "Electronic cigarettes", "Not applicable"], "pack_years_smoked": 280, @@ -2208,7 +2213,9 @@ def test_exposure_creation(self): def test_exposure_fields(self): self.assertEqual(self.exposure.program_id, self.program) - self.assertEqual(self.exposure.submitter_donor_id, self.donor) + self.assertEqual( + self.exposure.submitter_donor_id, self.donor.submitter_donor_id + ) self.assertEqual(self.exposure.tobacco_smoking_status, "Current smoker") self.assertEqual( self.exposure.tobacco_type, @@ -2220,8 +2227,9 @@ def test_null_optional_fields(self): """Tests no exceptions are raised when saving null values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", + "uuid", "submitter_donor_id", + "donor_uuid", "program_id", ], model_fields=self.exposure._meta.fields, @@ -2234,8 +2242,9 @@ def test_blank_optional_fields(self): """Tests no exceptions are raised when saving blank values in optional fields.""" optional_fields = get_optional_fields( excluded_fields=[ - "id", + "uuid", "submitter_donor_id", + "donor_uuid", "program_id", ], model_fields=self.exposure._meta.fields, @@ -2243,3 +2252,25 @@ def test_blank_optional_fields(self): for field in optional_fields: setattr(self.exposure, field, "") self.exposure.full_clean() + + def test_valid_schema(self): + self.assertIsInstance( + ExposureModelSchema.model_validate(self.valid_values), + ExposureModelSchema, + ) + + def test_invalid_tobacco_smoking_status(self): + invalid_values = get_invalid_choices() + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["tobacco_smoking_status"] = invalid_value + with self.assertRaises(SchemaValidationError): + ExposureModelSchema.model_validate(self.valid_values) + + def test_invalid_tobacco_type(self): + invalid_values = get_invalid_choices() + for invalid_value in invalid_values: + with self.subTest(value=invalid_value): + self.valid_values["tobacco_type"] = invalid_value + with self.assertRaises(SchemaValidationError): + ExposureModelSchema.model_validate(self.valid_values) diff --git a/chord_metadata_service/mohpackets/throttling.py b/chord_metadata_service/mohpackets/throttling.py deleted file mode 100644 index f516b0819..000000000 --- a/chord_metadata_service/mohpackets/throttling.py +++ /dev/null @@ -1,23 +0,0 @@ -from rest_framework.throttling import SimpleRateThrottle - -""" - This module contains the custom throttling class for the MOH API. - The cache key is set to the endpoint name, so that each endpoint - would have its own rate limit. - The throttle limit is set in the settings.py. -""" - - -class MoHRateThrottle(SimpleRateThrottle): - scope = "moh_rate_limit" - - def allow_request(self, request, view): - endpoint = request.resolver_match.url_name - self.cache_format = f"throttle_{endpoint}" - return super().allow_request(request, view) - - def get_cache_key(self, request, view): - return self.cache_format % { - "scope": self.scope, - "ident": self.get_ident(request), - } diff --git a/chord_metadata_service/mohpackets/urls.py b/chord_metadata_service/mohpackets/urls.py deleted file mode 100644 index 8d3fbfbe1..000000000 --- a/chord_metadata_service/mohpackets/urls.py +++ /dev/null @@ -1,141 +0,0 @@ -from django.urls import include, path -from rest_framework import routers - -from chord_metadata_service.mohpackets.api_authorized import ( - AuthorizedBiomarkerViewSet, - AuthorizedChemotherapyViewSet, - AuthorizedComorbidityViewSet, - AuthorizedDonorViewSet, - AuthorizedDonorWithClinicalDataViewSet, - AuthorizedExposureViewSet, - AuthorizedFollowUpViewSet, - AuthorizedHormoneTherapyViewSet, - AuthorizedImmunotherapyViewSet, - AuthorizedPrimaryDiagnosisViewSet, - AuthorizedProgramViewSet, - AuthorizedRadiationViewSet, - AuthorizedSampleRegistrationViewSet, - AuthorizedSpecimenViewSet, - AuthorizedSurgeryViewSet, - AuthorizedTreatmentViewSet, -) -from chord_metadata_service.mohpackets.api_discovery import ( - DiscoveryBiomarkerViewSet, - DiscoveryChemotherapyViewSet, - DiscoveryComorbidityViewSet, - DiscoveryDonorViewSet, - DiscoveryExposureViewSet, - DiscoveryFollowUpViewSet, - DiscoveryHormoneTherapyViewSet, - DiscoveryImmunotherapyViewSet, - DiscoveryPrimaryDiagnosisViewSet, - DiscoveryRadiationViewSet, - DiscoverySampleRegistrationViewSet, - DiscoverySpecimenViewSet, - DiscoverySurgeryViewSet, - DiscoveryTreatmentViewSet, - SidebarListViewSet, - cancer_type_count, - cohort_count, - diagnosis_age_count, - gender_count, - individual_count, - patient_per_cohort_count, - service_info, - treatment_type_count, -) -from chord_metadata_service.mohpackets.api_ingest import ( - ingest_biomarkers, - ingest_chemotherapies, - ingest_comorbidities, - ingest_donors, - ingest_exposures, - ingest_followups, - ingest_hormonetherapies, - ingest_immunotherapies, - ingest_primary_diagnosises, - ingest_programs, - ingest_radiations, - ingest_sample_registrations, - ingest_specimens, - ingest_surgeries, - ingest_treatments, -) - -# ================== AUTHORIZED API ================== # -router = routers.SimpleRouter() -router.register(r"programs", AuthorizedProgramViewSet, basename="authorized_program") -router.register(r"donors", AuthorizedDonorViewSet) -router.register(r"specimens", AuthorizedSpecimenViewSet) -router.register(r"sample_registrations", AuthorizedSampleRegistrationViewSet) -router.register(r"primary_diagnoses", AuthorizedPrimaryDiagnosisViewSet) -router.register(r"treatments", AuthorizedTreatmentViewSet) -router.register(r"chemotherapies", AuthorizedChemotherapyViewSet) -router.register(r"hormone_therapies", AuthorizedHormoneTherapyViewSet) -router.register(r"radiations", AuthorizedRadiationViewSet) -router.register(r"immunotherapies", AuthorizedImmunotherapyViewSet) -router.register(r"surgeries", AuthorizedSurgeryViewSet) -router.register(r"follow_ups", AuthorizedFollowUpViewSet) -router.register(r"biomarkers", AuthorizedBiomarkerViewSet) -router.register(r"comorbidities", AuthorizedComorbidityViewSet) -router.register(r"exposures", AuthorizedExposureViewSet) -router.register(r"donor_with_clinical_data", AuthorizedDonorWithClinicalDataViewSet) - -# ================== DISCOVERY API ================== # -discovery_router = routers.SimpleRouter() -discovery_router.register(r"donors", DiscoveryDonorViewSet) -discovery_router.register(r"specimens", DiscoverySpecimenViewSet) -discovery_router.register(r"sample_registrations", DiscoverySampleRegistrationViewSet) -discovery_router.register(r"primary_diagnoses", DiscoveryPrimaryDiagnosisViewSet) -discovery_router.register(r"treatments", DiscoveryTreatmentViewSet) -discovery_router.register(r"chemotherapies", DiscoveryChemotherapyViewSet) -discovery_router.register(r"hormone_therapies", DiscoveryHormoneTherapyViewSet) -discovery_router.register(r"radiations", DiscoveryRadiationViewSet) -discovery_router.register(r"immunotherapies", DiscoveryImmunotherapyViewSet) -discovery_router.register(r"surgeries", DiscoverySurgeryViewSet) -discovery_router.register(r"follow_ups", DiscoveryFollowUpViewSet) -discovery_router.register(r"biomarkers", DiscoveryBiomarkerViewSet) -discovery_router.register(r"comorbidities", DiscoveryComorbidityViewSet) -discovery_router.register(r"exposures", DiscoveryExposureViewSet) -discovery_router.register(r"sidebar_list", SidebarListViewSet, basename="sidebar_list") - - -# ================== INGEST API ================== # -ingest_patterns = [ - path("programs/", ingest_programs), - path("donors/", ingest_donors), - path("specimens/", ingest_specimens), - path("sample_registrations/", ingest_sample_registrations), - path("primary_diagnoses/", ingest_primary_diagnosises), - path("treatments/", ingest_treatments), - path("chemotherapies/", ingest_chemotherapies), - path("hormone_therapies/", ingest_hormonetherapies), - path("radiations/", ingest_radiations), - path("immunotherapies/", ingest_immunotherapies), - path("surgeries/", ingest_surgeries), - path("follow_ups/", ingest_followups), - path("biomarkers/", ingest_biomarkers), - path("comorbidities/", ingest_comorbidities), - path("exposures/", ingest_exposures), -] - -urlpatterns = [ - path("authorized/", include(router.urls)), - path("discovery/", include(discovery_router.urls)), - path("ingest/", include(ingest_patterns)), - path("service-info", service_info), - path( - "discovery/overview/", - include( - [ - path("cohort_count", cohort_count), - path("patients_per_cohort", patient_per_cohort_count), - path("individual_count", individual_count), - path("gender_count", gender_count), - path("cancer_type_count", cancer_type_count), - path("treatment_type_count", treatment_type_count), - path("diagnosis_age_count", diagnosis_age_count), - ] - ), - ), -] diff --git a/chord_metadata_service/mohpackets/utils.py b/chord_metadata_service/mohpackets/utils.py index 4ff7049e9..7f43dcb79 100644 --- a/chord_metadata_service/mohpackets/utils.py +++ b/chord_metadata_service/mohpackets/utils.py @@ -1,7 +1,8 @@ +import json import logging import re +from enum import Enum -import yaml from django.core.cache import cache logger = logging.getLogger(__name__) @@ -9,9 +10,9 @@ def get_schema_url(): """ - Retrieve the schema URL either from cached or by parsing a YAML file. + Retrieve the schema URL either from cached or by parsing the first 10 lines of a JSON file. It first checks if the URL is cached in "schema_url". - If not cached, it reads the YAML file and extracts the URL from the "description". + If not cached, it reads the first 6 lines of the JSON file and extracts the URL from the "description". """ schema_url = cache.get("schema_url") @@ -20,9 +21,15 @@ def get_schema_url(): if schema_url is None: try: with open( - "chord_metadata_service/mohpackets/docs/schema.yml", "r" - ) as yaml_file: - data = yaml.safe_load(yaml_file) + "chord_metadata_service/mohpackets/docs/schema.json", "r" + ) as json_file: + # Read the first 6 lines of the JSON file only + # The line we are looking for is on the 6th + first_6_lines = [next(json_file) for _ in range(6)] + first_6_lines.extend(["}", "}"]) # make valid JSON + # Concatenate the lines to form a JSON string + json_str = "".join(first_6_lines) + data = json.loads(json_str) desc_str = data["info"]["description"] schema_url = re.search(url_pattern, desc_str).group() # Cache the schema_version so we won't read it each time @@ -33,3 +40,11 @@ def get_schema_url(): ) schema_url = None return schema_url + + +def list_to_enum(enum_name, value_list): + enum_dict = {} + for item in value_list: + enum_member_name = item.upper().replace(" ", "_") + enum_dict[enum_member_name] = item + return Enum(enum_name, enum_dict) diff --git a/config/hooks.py b/config/hooks.py deleted file mode 100644 index a55935cad..000000000 --- a/config/hooks.py +++ /dev/null @@ -1,12 +0,0 @@ -def preprocessing_filter_path(endpoints): - """ - This function used by drf_spectacular to filter out unwanted endpoints. - For reference, see - https://drf-spectacular.readthedocs.io/en/latest/customization.html?highlight=hook#step-7-preprocessing-hooks - """ - filtered = [] - for path, path_regex, method, callback in endpoints: - # only include endpoints that start with discovery or authorized - if path.startswith("/v2/discovery") or path.startswith("/v2/authorized"): - filtered.append((path, path_regex, method, callback)) - return filtered diff --git a/config/settings/base.py b/config/settings/base.py index f7be7cd52..06d9892c0 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -17,7 +17,6 @@ https://docs.djangoproject.com/en/4.1/ref/settings/ """ - from pathlib import Path # Build paths inside the project like this: BASE_DIR / 'subdir'. @@ -52,9 +51,7 @@ # Third party # ----------- "corsheaders", - "django_filters", - "rest_framework", - "drf_spectacular", + "ninja", # Local # ----- "chord_metadata_service.mohpackets", @@ -102,33 +99,6 @@ WSGI_APPLICATION = "config.wsgi.application" -# Logging -# https://docs.djangoproject.com/en/4.1/topics/logging/ - -LOGGING = { - "version": 1, - "disable_existing_loggers": False, - "formatters": { - "console": { - "format": "[%(asctime)s] [%(name)s] %(levelname)s: %(message)s", - "datefmt": "%d/%b/%Y %H:%M:%S", - }, - }, - "handlers": { - "console": { - "class": "logging.StreamHandler", - "formatter": "console", - }, - }, - "loggers": { - "": { - "level": "INFO", - "handlers": ["console"], - }, - }, -} - - # Cache # https://docs.djangoproject.com/en/4.1/topics/cache/ @@ -192,69 +162,7 @@ # ---------- STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage" -# DRF settings -# ------------ - -REST_FRAMEWORK = { - "DEFAULT_AUTHENTICATION_CLASSES": [], - "DEFAULT_PERMISSION_CLASSES": [ - "rest_framework.permissions.IsAuthenticatedOrReadOnly" - ], - "DEFAULT_SCHEMA_CLASS": "drf_spectacular.openapi.AutoSchema", - "DEFAULT_FILTER_BACKENDS": ["django_filters.rest_framework.DjangoFilterBackend"], - "DEFAULT_THROTTLE_CLASSES": [ - "rest_framework.throttling.ScopedRateThrottle", - ], - "DEFAULT_THROTTLE_RATES": {"moh_rate_limit": "60/minute"}, -} - # CURRENT KATSU VERSION ACCORDING TO MODEL CHANGES # ------------------------------------------------ -KATSU_VERSION = "2.3.0" - -# DRF Spectacular settings -# ------------------------ - -SPECTACULAR_SETTINGS = { - "TITLE": "MoH Service API", - "DESCRIPTION": ("This is the RESTful API for the MoH Service."), - "VERSION": KATSU_VERSION, - # include schema endpoint into schema - "SERVE_INCLUDE_SCHEMA": False, - # Filter out the url patterns we don't want documented - "PREPROCESSING_HOOKS": ["config.hooks.preprocessing_filter_path"], - # Split components into request and response parts where appropriate - "COMPONENT_SPLIT_REQUEST": True, - # Aid client generator targets that have trouble with read-only properties. - "COMPONENT_NO_READ_ONLY_REQUIRED": True, - # Create separate components for PATCH endpoints (without required list) - "COMPONENT_SPLIT_PATCH": True, - # Adds "blank" and "null" enum choices where appropriate. disable on client generation issues - "ENUM_ADD_EXPLICIT_BLANK_NULL_CHOICE": True, - # Determines if and how free-form 'additionalProperties' should be emitted in the schema. Some - # code generator targets are sensitive to this. None disables generic 'additionalProperties'. - # allowed values are 'dict', 'bool', None - "GENERIC_ADDITIONAL_PROPERTIES": "dict", - # Determines whether operation parameters should be sorted alphanumerically or just in - # the order they arrived. Accepts either True, False, or a callable for sort's key arg. - "SORT_OPERATION_PARAMETERS": False, - # modify and override the SwaggerUI template - "SWAGGER_UI_SETTINGS": { - "docExpansion": "none", # collapse all endpoints by default - }, - # Specify Enum names for choices used by multiple fields - "ENUM_NAME_OVERRIDES": { - "uBooleanEnum": "chord_metadata_service.mohpackets.permissible_values.UBOOLEAN", - "TCategoryEnum": "chord_metadata_service.mohpackets.permissible_values.T_CATEGORY", - "NCategoryEnum": "chord_metadata_service.mohpackets.permissible_values.N_CATEGORY", - "MCategoryEnum": "chord_metadata_service.mohpackets.permissible_values.M_CATEGORY", - "StageGroupEnum": "chord_metadata_service.mohpackets.permissible_values.STAGE_GROUP", - "StagingSystemEnum": "chord_metadata_service.mohpackets.permissible_values.TUMOUR_STAGING_SYSTEM", - "ReferencePathologyEnum": "chord_metadata_service.mohpackets.permissible_values.CONFIRMED_DIAGNOSIS_TUMOUR", - "MarginTypesEnum": "chord_metadata_service.mohpackets.permissible_values.MARGIN_TYPES", - "DosageUnitsEnum": "chord_metadata_service.mohpackets.permissible_values.DOSAGE_UNITS", - "ErPrHpvStatusEnum": "chord_metadata_service.mohpackets.permissible_values.ER_PR_HPV_STATUS", - "Her2StatusEnum": "chord_metadata_service.mohpackets.permissible_values.HER2_STATUS", - }, -} +KATSU_VERSION = "3.0.0" diff --git a/config/settings/dev.py b/config/settings/dev.py index ae64e328a..cc5c373b5 100644 --- a/config/settings/dev.py +++ b/config/settings/dev.py @@ -12,7 +12,9 @@ import os from os.path import exists -from .local import * +from .base import * + +DEBUG = True ALLOWED_HOSTS = [ "localhost", diff --git a/config/settings/local.py b/config/settings/local.py index bbbd7c6d0..8d739648f 100644 --- a/config/settings/local.py +++ b/config/settings/local.py @@ -10,6 +10,7 @@ # - testing token is user1 and user2 # ############################################################# + from .base import * DEBUG = True @@ -46,9 +47,32 @@ "token": "token_2", "is_admin": True, "datasets": ["SYNTHETIC-1", "SYNTHETIC-2"], - } + }, ] +LOGGING = { + "version": 1, + "disable_existing_loggers": False, + "formatters": { + "console": { + "format": "[%(asctime)s] [%(name)s] %(levelname)s: %(message)s", + "datefmt": "%d/%b/%Y %H:%M:%S", + }, + }, + "handlers": { + "console": { + "class": "logging.StreamHandler", + "formatter": "console", + }, + }, + "loggers": { + "": { + "level": "INFO", + "handlers": ["console"], + }, + }, +} + # Debug toolbar settings # ---------------------- if DEBUG: diff --git a/config/settings/prod.py b/config/settings/prod.py index ff078c564..da47a53a5 100644 --- a/config/settings/prod.py +++ b/config/settings/prod.py @@ -1,25 +1,99 @@ ##################################################################### # PRODUCTION SETTINGS # -# Inherit from setting dev.py. Contain only necessary settings to # +# Inherit from setting base.py. Contain only necessary settings to # # make the project run. Following: # # https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ # ##################################################################### -from .dev import * +import os +from os.path import exists + +from .base import * -# remove dev settings -DEBUG = False -INSTALLED_APPS.remove("debug_toolbar") -MIDDLEWARE.remove("debug_toolbar.middleware.DebugToolbarMiddleware") ALLOWED_HOSTS = [ "candig.docker.internal", os.environ.get("HOST_CONTAINER_NAME"), ] -# Override the log level for handlers and loggers -LOGGING["handlers"]["console"]["level"] = "ERROR" -LOGGING["handlers"]["file"]["level"] = "ERROR" -LOGGING["loggers"][""]["level"] = "ERROR" +# CANDIG SETTINGS +# --------------- +KATSU_AUTHORIZATION = os.getenv("KATSU_AUTHORIZATION") +CANDIG_OPA_URL = os.getenv("OPA_URL") +CANDIG_OPA_SITE_ADMIN_KEY = os.getenv("OPA_SITE_ADMIN_KEY") +CONN_MAX_AGE = int(os.getenv("CONN_MAX_AGE", 0)) +if exists("/run/secrets/opa-root-token"): + with open("/run/secrets/opa-root-token", "r") as f: + CANDIG_OPA_SECRET = f.read() +if exists("/run/secrets/katsu_secret"): + with open("/run/secrets/katsu_secret", "r") as f: + SECRET_KEY = f.read() + + +# function to read docker secret password file +def get_secret(path): + try: + with open(path, "r", encoding="utf-8") as f: + return f.readline().strip() + except (FileNotFoundError, PermissionError) as err: + print("Error reading secret file: %s" % err) + raise + + +# ============================================================================== +# DATABASES SETTINGS +# ============================================================================== + +DATABASES = { + "default": { + "ENGINE": "django.db.backends.postgresql", + "NAME": os.environ.get("POSTGRES_DATABASE"), + "USER": os.environ.get("POSTGRES_USER"), + "PASSWORD": get_secret(os.environ.get("POSTGRES_PASSWORD_FILE")), + "HOST": os.environ.get("POSTGRES_HOST"), + "PORT": os.environ.get("POSTGRES_PORT"), + } +} + +# Logging +# ------- +LOGGING = { + "version": 1, + "disable_existing_loggers": False, + "formatters": { + "console": { + "format": "[%(asctime)s] [%(name)s] %(levelname)s: %(message)s", + "datefmt": "%d/%b/%Y %H:%M:%S", + }, + "file": { + "format": "[%(asctime)s] [%(name)s] %(levelname)s: %(message)s", + "datefmt": "%d/%b/%Y %H:%M:%S", + }, + }, + "handlers": { + "console": { + "class": "logging.StreamHandler", + "formatter": "console", + "level": "ERROR", # Set the log level for the console handler + }, + "file": { + "class": "logging.handlers.RotatingFileHandler", + "filename": os.path.join(BASE_DIR, "logs", "logs.txt"), + "formatter": "file", + "maxBytes": 1024 * 1024, + "backupCount": 5, + "level": "ERROR", # Set the log level for the file handler + }, + }, + "loggers": { + "": { + "level": "ERROR", # Set the root logger level + "handlers": ["console", "file"], + }, + "psycopg": { + "level": "ERROR", + }, + }, +} # ============================================================================== # SECURITY SETTINGS @@ -35,4 +109,3 @@ SECURE_HSTS_PRELOAD = True SECURE_HSTS_SECONDS = 60 # Once confirm that all assets are served securely(i.e. HSTS didn’t break anything), increase this value # SECURE_HSTS_SECONDS = 60 * 60 * 24 * 7 * 52 # one year - diff --git a/config/urls.py b/config/urls.py index 806c98ba8..a93cab868 100644 --- a/config/urls.py +++ b/config/urls.py @@ -14,25 +14,23 @@ 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.conf import settings +from django.http import HttpResponseRedirect from django.urls import include, path -from drf_spectacular.views import ( - SpectacularAPIView, - SpectacularRedocView, - SpectacularSwaggerView, -) -from chord_metadata_service.mohpackets import urls as moh_urls +from chord_metadata_service.mohpackets.apis.core import api + + +def redirect_to_default(request): + return HttpResponseRedirect("/v2/docs") + urlpatterns = [ - path("v2/", include(moh_urls)), - # OpenAPI 3 documentation with Swagger UI - path("", SpectacularSwaggerView.as_view(), name="swagger-ui"), - path("schema/", SpectacularAPIView.as_view(), name="schema"), - path("redoc/", SpectacularRedocView.as_view(url_name="schema"), name="redoc"), + path("", redirect_to_default), + path("v2/", api.urls), ] if settings.DEBUG: urlpatterns += [ # Debug toolbar path("__debug__/", include("debug_toolbar.urls")), - ] \ No newline at end of file + ] diff --git a/requirements/base.txt b/requirements/base.txt index 3c9ea6db0..00e835040 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,7 +1,6 @@ git+https://github.com/CanDIG/candigv2-authx.git#egg=candigv2-authx # CANDIG authorization wrapper -Django==4.2.3 # Python web framework -psycopg==3.1.9 # PostgreSQL driver for Python -djangorestframework==3.14.0 # toolkit for building Web APIs. -django-cors-headers==4.2.0 # handling the server headers required for CORS -django-filter==23.2 # filter down a queryset -drf-spectacular==0.26.3 # schema generation for DRF \ No newline at end of file +Django==4.2.7 # Python web framework +psycopg==3.1.13 # PostgreSQL driver for Python +django-cors-headers==4.3.1 # handling the server headers required for CORS +django-ninja==1.0.1 # API & schema +orjson==3.9.10 # JSON library \ No newline at end of file diff --git a/requirements/dev.txt b/requirements/dev.txt index c0ff83db3..180eebb15 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,3 +1,3 @@ -r local.txt # inherit from local.txt -uwsgi==2.0.21 # web server -whitenoise==6.5.0 # serve static files \ No newline at end of file +uwsgi==2.0.23 # web server +whitenoise==6.6.0 # serve static files \ No newline at end of file diff --git a/requirements/local.txt b/requirements/local.txt index 6e5b38a62..2a56e8666 100644 --- a/requirements/local.txt +++ b/requirements/local.txt @@ -1,9 +1,8 @@ -r base.txt # inherit from base.txt -coverage==7.2.7 # measures code coverage -flake8==6.0.0 # style guide enforcement -tox==4.6.4 # test command line tool -django-debug-toolbar==4.1.0 # display debug information -isort==5.12.0 # Auto-formatter for imports -black==23.7.0 # auto-formatter +coverage==7.3.2 # measures code coverage +flake8==6.1.0 # style guide enforcement +tox==4.11.3 # test command line tool +django-debug-toolbar==4.2.0 # display debug information factory-boy==3.3.0 # setup test cases +tqdm==4.66.1 # progress bar for data loader script # django-silk # live profiling and inspection tool \ No newline at end of file