Skip to content

onconova.oncology.controllers.genomic_variant

GenePanelController

Bases: ControllerBase

gell_all_genomic_panels(query='')

Source code in onconova/oncology/controllers/genomic_variant.py
@route.get(
    path="/gene-panels",
    response={200: List[str], **COMMON_HTTP_ERRORS},
    permissions=[perms.CanViewCases],
    operation_id="getAllGenomicPanels",
)
def gell_all_genomic_panels(self, query: str = ""):
    variants = orm.GenomicVariant.objects.all()
    if query:
        variants = variants.filter(gene_panel__icontains=query)
    return 200, variants.values_list("gene_panel", flat=True).distinct()

GenomicVariantController

Bases: ControllerBase

create_genomic_variant(payload)

Source code in onconova/oncology/controllers/genomic_variant.py
@route.post(
    path="",
    response={201: ModifiedResourceSchema, **COMMON_HTTP_ERRORS},
    permissions=[perms.CanManageCases],
    operation_id="createGenomicVariant",
)
def create_genomic_variant(self, payload: scm.GenomicVariantCreate):  
    return 201, payload.model_dump_django()

delete_genomic_variant(genomicVariantId)

Source code in onconova/oncology/controllers/genomic_variant.py
@route.delete(
    path="/{genomicVariantId}",
    response={204: None, 404: None, **COMMON_HTTP_ERRORS},
    permissions=[perms.CanManageCases],
    operation_id="deleteGenomicVariant",
)
def delete_genomic_variant(self, genomicVariantId: str):
    get_object_or_404(orm.GenomicVariant, id=genomicVariantId).delete()
    return 204, None

get_all_genomic_variant_history_events(genomicVariantId)

Source code in onconova/oncology/controllers/genomic_variant.py
@route.get(
    path="/{genomicVariantId}/history/events",
    response={
        200: Paginated[HistoryEvent.bind_schema(scm.GenomicVariantCreate)],
        404: None,
        **COMMON_HTTP_ERRORS,
    },
    permissions=[perms.CanViewCases],
    operation_id="getAllGenomicVariantHistoryEvents",
)
@paginate()
@ordering()
def get_all_genomic_variant_history_events(self, genomicVariantId: str):
    instance = get_object_or_404(orm.GenomicVariant, id=genomicVariantId)
    return pghistory.models.Events.objects.tracks(instance).all()  # type: ignore

get_all_genomic_variants_matching_the_query(query)

Source code in onconova/oncology/controllers/genomic_variant.py
@route.get(
    path="",
    response={
        200: Paginated[scm.GenomicVariant],
        **COMMON_HTTP_ERRORS,
    },
    permissions=[perms.CanViewCases],
    operation_id="getGenomicVariants",
)
@paginate()
@ordering()
@anonymize()
def get_all_genomic_variants_matching_the_query(self, query: Query[scm.GenomicVariantFilters]):  # type: ignore
    queryset = orm.GenomicVariant.objects.all().order_by("-date")
    return query.filter(queryset)

get_genomic_variant_by_id(genomicVariantId)

Source code in onconova/oncology/controllers/genomic_variant.py
@route.get(
    path="/{genomicVariantId}",
    response={200: scm.GenomicVariant, 404: None, **COMMON_HTTP_ERRORS},
    permissions=[perms.CanViewCases],
    operation_id="getGenomicVariantById",
)
@anonymize()
def get_genomic_variant_by_id(self, genomicVariantId: str):
    return get_object_or_404(orm.GenomicVariant, id=genomicVariantId)

get_genomic_variant_history_event_by_id(genomicVariantId, eventId)

Source code in onconova/oncology/controllers/genomic_variant.py
@route.get(
    path="/{genomicVariantId}/history/events/{eventId}",
    response={
        200: HistoryEvent.bind_schema(scm.GenomicVariantCreate),
        404: None,
        **COMMON_HTTP_ERRORS,
    },
    permissions=[perms.CanViewCases],
    operation_id="getGenomicVariantHistoryEventById",
)
def get_genomic_variant_history_event_by_id(
    self, genomicVariantId: str, eventId: str
):
    instance = get_object_or_404(orm.GenomicVariant, id=genomicVariantId)
    return get_object_or_404(
        pghistory.models.Events.objects.tracks(instance), pgh_id=eventId  # type: ignore
    )

revert_genomic_variant_to_history_event(genomicVariantId, eventId)

Source code in onconova/oncology/controllers/genomic_variant.py
@route.put(
    path="/{genomicVariantId}/history/events/{eventId}/reversion",
    response={201: ModifiedResourceSchema, 404: None, **COMMON_HTTP_ERRORS},
    permissions=[perms.CanManageCases],
    operation_id="revertGenomicVariantToHistoryEvent",
)
def revert_genomic_variant_to_history_event(
    self, genomicVariantId: str, eventId: str
):
    instance = get_object_or_404(orm.GenomicVariant, id=genomicVariantId)
    return 201, get_object_or_404(instance.events, pgh_id=eventId).revert()

update_genomic_variant(genomicVariantId, payload)

Source code in onconova/oncology/controllers/genomic_variant.py
@route.put(
    path="/{genomicVariantId}",
    response={200: ModifiedResourceSchema, 404: None, **COMMON_HTTP_ERRORS},
    permissions=[perms.CanManageCases],
    operation_id="updateGenomicVariant",
)
def update_genomic_variant(self, genomicVariantId: str, payload: scm.GenomicVariantCreate):  
    instance = get_object_or_404(orm.GenomicVariant, id=genomicVariantId)
    return payload.model_dump_django(instance=instance)
runner