Skip to content

onconova.interoperability.fhir.schemas.tumor_mutational_burden

TumorMutationalBurdenProfile

Bases: OnconovaFhirBaseSchema, OnconovaTumorMutationalBurden

__model__ class-attribute instance-attribute

__schema__ class-attribute instance-attribute

fhir_to_onconova(obj) classmethod

Source code in onconova/interoperability/fhir/schemas/tumor_mutational_burden.py
@classmethod
def fhir_to_onconova(
    cls, obj: fhir.OnconovaTumorMutationalBurden
) -> schemas.TumorMutationalBurdenCreate:
    return schemas.TumorMutationalBurdenCreate(
        externalSource=None,
        externalSourceId=None,
        caseId=obj.fhirpath_single(
            "Observation.subject.reference.getValue()"
        ).replace("Patient/", ""),
        date=obj.fhirpath_single("Observation.effectiveDateTime.getValue()"),
        value=obj.fhirpath_single("Observation.valueQuantity.value.getValue()"),
        status=(
            cls.map_to_internal("statusInterpretation", status)
            if (
                status := obj.fhirpath_single(
                    "Observation.extension('http://onconova.github.io/fhir/StructureDefinition/onconova-vs-tumor-mutational-burden-status').valueCodeableConcept.coding"
                )
            )
            else None
        ),
    )

onconova_to_fhir(obj) classmethod

Source code in onconova/interoperability/fhir/schemas/tumor_mutational_burden.py
@classmethod
def onconova_to_fhir(
    cls, obj: schemas.TumorMutationalBurden
) -> fhir.OnconovaTumorMutationalBurden:
    resource = fhir.OnconovaTumorMutationalBurden.model_construct()
    resource.id = str(obj.id)
    resource.text = Narrative(
        status="generated",
        div=f'<div xmlns="http://www.w3.org/1999/xhtml">{obj.description}</div>',
    )
    resource.effectiveDateTime = obj.date.isoformat()
    resource.subject = Reference(
        reference=f"Patient/{obj.caseId}",
    )
    resource.valueQuantity = Quantity(
        value=obj.value, code="1/1000000{Base}", system="http://unitsofmeasure.org"
    )
    resource.extension = [
        fhir.Extension(
            url="http://onconova.github.io/fhir/StructureDefinition/onconova-vs-tumor-mutational-burden-status",
            valueCodeableConcept=construct_fhir_codeable_concept(
                cls.map_to_fhir("statusInterpretation", obj.status)
            ),
        )
    ]
    return resource
runner