Skip to content

onconova.interoperability.fhir.api

This module defines and configures the FHIR Onconova Interface API using NinjaExtraAPI, providing a secure, standards-based interface for cancer genomics and clinical research data management. It registers all core, oncology, research, and interoperability controllers, and sets up OpenAPI documentation with custom settings and license information.

api module-attribute

An Onconova FHIR API, This API serves as the entry point for all FHIR RESTful endpoints

FHIRRenderer

Bases: JSONRenderer

media_type class-attribute instance-attribute

render(request, data, *, response_status)

Source code in onconova/interoperability/fhir/api.py
def render(self, request, data, *, response_status: int) -> str:
    if request.headers.get("Accept") == "application/fhir+json":
        self.media_type = "application/fhir+json"
        return json.dumps(data, cls=self.encoder_class, **self.json_dumps_params)
    elif request.headers.get("Accept") == "application/fhir+xml":
        self.media_type = "application/fhir+xml"
        stream = StringIO()
        xml = SimplerXMLGenerator(stream, "utf-8")
        xml.startDocument()
        self._to_fhir_xml(xml, data)
        xml.endDocument()
        return stream.getvalue()

    else:
        self.media_type = "application/json"
        return super().render(request, data, response_status=response_status)
runner