Bases: OnconovaFhirBaseSchema, OnconovaTherapyLine
__model__
class-attribute
instance-attribute
__schema__
class-attribute
instance-attribute
fhir_to_onconova(obj)
classmethod
Source code in onconova/interoperability/fhir/schemas/therapy_line.py
| @classmethod
def fhir_to_onconova(
cls, obj: fhir.OnconovaTherapyLine
) -> schemas.TherapyLineCreate:
return schemas.TherapyLineCreate(
externalSource=None,
externalSourceId=None,
caseId=obj.fhirpath_single(
"EpisodeOfCare.patient.reference.getValue()"
).replace("Patient/", ""),
ordinal=obj.fhirpath_single(
"EpisodeOfCare.extension('http://onconova.github.io/fhir/StructureDefinition/onconova-ext-therapy-line-number').valuePositiveInt.getValue()"
),
intent=cls.map_to_internal(
"intent",
obj.fhirpath_single(
"EpisodeOfCare.extension('http://onconova.github.io/fhir/StructureDefinition/onconova-ext-therapy-line-intent').valueCodeableConcept.coding"
),
),
progressionDate=obj.fhirpath_single(
"EpisodeOfCare.extension('http://onconova.github.io/fhir/StructureDefinition/onconova-ext-therapy-line-progression-date').valueDate.getValue()"
),
)
|
onconova_to_fhir(obj)
classmethod
Source code in onconova/interoperability/fhir/schemas/therapy_line.py
| @classmethod
def onconova_to_fhir(cls, obj: schemas.TherapyLine) -> fhir.OnconovaTherapyLine:
resource = fhir.OnconovaTherapyLine.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.patient = Reference(
reference=f"Patient/{obj.caseId}",
)
if obj.period and (obj.period.start or obj.period.end):
resource.period = Period(
start=obj.period.start.isoformat() if obj.period.start else None,
end=obj.period.end.isoformat() if obj.period.end else None,
)
resource.extension = [
fhir.TherapyLineNumber(
valuePositiveInt=obj.ordinal,
),
fhir.TherapyLineIntent(
valueCodeableConcept=construct_fhir_codeable_concept(
cls.map_to_fhir("intent", obj.intent)
)
),
]
if obj.progressionDate is not None:
resource.extension.append(
fhir.TherapyLineProgressionDate(
valueDate=obj.progressionDate.isoformat()
)
)
if obj.progressionFreeSurvival is not None:
resource.extension.append(
fhir.TherapyLineProgressionFreeSurvival(
valueDuration=Duration(
value=obj.progressionFreeSurvival,
code="mo",
system="http://unitsofmeasure.org",
)
)
)
return resource
|