Skip to content

onconova.oncology.schemas.patient_case

PatientCase

Bases: PatientCaseCreate, MetadataAnonymizationMixin

__anonymization_fields__ class-attribute instance-attribute

__anonymization_functions__ class-attribute instance-attribute

__anonymization_key__ class-attribute instance-attribute

age class-attribute instance-attribute

ageAtDiagnosis class-attribute instance-attribute

contributors class-attribute instance-attribute

dataCompletionRate class-attribute instance-attribute

dateOfBirth class-attribute instance-attribute

overallSurvival class-attribute instance-attribute

pseudoidentifier class-attribute instance-attribute

age_type_conversion(value) classmethod

Source code in onconova/oncology/schemas/patient_case.py
@field_validator("age", "ageAtDiagnosis", mode="before")
@classmethod
def age_type_conversion(cls, value: int | Age | AgeBin) -> Age | AgeBin:
    if isinstance(value, int):
        return Age(value)
    return value

validate_vital_status_scenarios(obj) classmethod

Source code in onconova/oncology/schemas/patient_case.py
@model_validator(mode="after")
@classmethod
def validate_vital_status_scenarios(cls, obj):
    if obj.vitalStatus == PatientCaseVitalStatusChoices.ALIVE:
        if obj.dateOfDeath:
            raise ValueError("An alive patient cannot have a date of death")
        if obj.causeOfDeath:
            raise ValueError("An alive patient cannot have a cause of death")
        if obj.endOfRecords:
            raise ValueError(
                "If patient is known to be alive, it cannot have an end of records."
            )
    if obj.vitalStatus == PatientCaseVitalStatusChoices.UNKNOWN:
        if obj.dateOfDeath:
            raise ValueError(
                "An unkonwn vital status patient cannot have a date of death"
            )
        if obj.causeOfDeath:
            raise ValueError(
                "An unkonwn vital status patient cannot have a cause of death"
            )
        if not obj.endOfRecords:
            raise ValueError(
                "If patient vital status is unknown, it must have a valid end of records date."
            )
    if obj.vitalStatus == PatientCaseVitalStatusChoices.DECEASED:
        if not obj.dateOfDeath:
            raise ValueError("A deceased patient must have a date of death")
        if obj.endOfRecords:
            raise ValueError(
                "If patient is known to be deceased, it cannot have an end of records."
            )
    return obj

PatientCaseCreate

Bases: BaseSchema

__orm_model__ class-attribute instance-attribute

causeOfDeath class-attribute instance-attribute

clinicalCenter class-attribute instance-attribute

clinicalIdentifier class-attribute instance-attribute

consentStatus class-attribute instance-attribute

dateOfBirth class-attribute instance-attribute

dateOfDeath class-attribute instance-attribute

endOfRecords class-attribute instance-attribute

externalSource class-attribute instance-attribute

externalSourceId class-attribute instance-attribute

gender class-attribute instance-attribute

genderIdentity class-attribute instance-attribute

race class-attribute instance-attribute

sexAtBirth class-attribute instance-attribute

vitalStatus class-attribute instance-attribute

PatientCaseDataCompletionStatus

Bases: Schema

status class-attribute instance-attribute

timestamp class-attribute instance-attribute

username class-attribute instance-attribute

runner