Skip to content

Data Models

CcdData

Bases: BaseModel

Data model for CCD (Continuity of Care Document) that can be converted to CDA. Data is stored as FHIR.

Source code in healthchain/models/data/ccddata.py
class CcdData(BaseModel):
    """
    Data model for CCD (Continuity of Care Document) that can be converted to CDA.
    Data is stored as FHIR.
    """

    problems: Optional[List[ProblemConcept]] = None
    allergies: Optional[List[AllergyConcept]] = None
    medications: Optional[List[MedicationConcept]] = None
    note: Optional[Union[Dict, str]] = None
    cda_xml: Optional[str] = None

CdsFhirData

Bases: BaseModel

Data model for CDS FHIR data, this matches the expected fields in CDSRequests

Source code in healthchain/models/data/cdsfhirdata.py
class CdsFhirData(BaseModel):
    """
    Data model for CDS FHIR data, this matches the expected fields in CDSRequests
    """

    context: Dict = Field(default={})
    prefetch: Bundle

    def model_dump(self, *args, **kwargs):
        kwargs.setdefault("exclude_unset", True)
        kwargs.setdefault("exclude_none", True)
        kwargs.setdefault("by_alias", True)

        return super().model_dump(*args, **kwargs)

AllergyConcept

Bases: Concept

Contains allergy specific fields

Defaults allergy type to propensity to adverse reactions in SNOMED CT

Source code in healthchain/models/data/concept.py
class AllergyConcept(Concept):
    """
    Contains allergy specific fields

    Defaults allergy type to propensity to adverse reactions in SNOMED CT
    """

    allergy_type: Optional[Concept] = Field(
        default=Concept(
            code="420134006",
            code_system="2.16.840.1.113883.6.96",
            code_system_name="SNOMED CT",
            display_name="Propensity to adverse reactions",
        )
    )
    severity: Optional[Concept] = None
    reaction: Optional[Concept] = None

Concept

Bases: BaseModel

A more lenient, system agnostic representation of a concept e.g. problems, medications, allergies that can be converted to CDA or FHIR

Source code in healthchain/models/data/concept.py
class Concept(BaseModel):
    """
    A more lenient, system agnostic representation of a concept e.g. problems, medications, allergies
    that can be converted to CDA or FHIR
    """

    _standard: Optional[Standard] = None
    code: Optional[str] = None
    code_system: Optional[str] = None
    code_system_name: Optional[str] = None
    display_name: Optional[str] = None

DataType

Bases: BaseModel

Base class for all data types

Source code in healthchain/models/data/concept.py
class DataType(BaseModel):
    """
    Base class for all data types
    """

    _source: Optional[Dict] = None

MedicationConcept

Bases: Concept

Contains medication specific fields

Source code in healthchain/models/data/concept.py
class MedicationConcept(Concept):
    """
    Contains medication specific fields
    """

    dosage: Optional[Quantity] = None
    route: Optional[Concept] = None
    frequency: Optional[TimeInterval] = None
    duration: Optional[Range] = None
    precondition: Optional[Dict] = None

ProblemConcept

Bases: Concept

Contains problem/condition specific fields

Source code in healthchain/models/data/concept.py
class ProblemConcept(Concept):
    """
    Contains problem/condition specific fields
    """

    onset_date: Optional[str] = None
    abatement_date: Optional[str] = None
    status: Optional[str] = None
    recorded_date: Optional[str] = None