Skip to content

CareTeam Profile

Canonical../StructureDefinition/nexus-emr-core-careteam
Statusdraft · 1.26.0
BaseCareTeam (constraint)
SourceFSH · JSON

Nexus EMR profile for CareTeam, capturing the care providers associated with a patient (e.g. most-responsible physician, nurse, midwife, referring physician). Backs the Patient Profile Care Providers section.

TypedFhir API / Pydantic schema

The typed accessor surface CareTeam exposes for CareTeam — generated from this IG's compiled profile; each typed accessor has a validating raw-FHIR twin (xRaw) where marked. The three ports are parity-enforced.

The AI-facing shape: from typed_fhir.facade.generated.schemas import CareTeamSchemamodel_json_schema() is a structured-output / tool definition; instantiating validates an extraction. Generated source.

class CareTeamSchema(BaseModel):
    """AI-facing shape of the CareTeam profile: the facade's typed accessor
    surface (curated + salient fields) as a pydantic model. `model_json_schema()` is a
    structured-output / tool schema; instantiating validates an extraction."""

    model_config = ConfigDict(extra="forbid")

    status: Literal[
        "active",
        "entered-in-error",
        "inactive",
        "proposed",
        "suspended",
    ] | None = Field(
        None,
        description=(
            "proposed | active | suspended | inactive | entered-in-error. Indicates the current "
            "state of the care team. Note: This element is labeled as a modifier because the "
            "status contains the code entered-in-error that marks the care team as not currently "
            "valid. CareTeam.status — 0..1"
        ),
    )
    category: Concept | None = Field(
        None,
        description=(
            "Type of team. Identifies what kind of team. This is to support differentiation "
            "between multiple co-existing teams, such as care plan team, episode of care team, "
            "longitudinal care team. Note: There may be multiple axis of categorization and one "
            "team may serve multiple purposes. CareTeam.category — 0..*"
        ),
    )
    subject: Reference | None = Field(
        None,
        description=(
            "The patient the care team cares for, when the team serves one patient. The patient "
            "whose care this team is responsible for. Present on a patient-scoped care team, "
            "which is the ordinary case; absent on a standing operational team (a nursing pool, a "
            "referrals desk) that serves the practice rather than one patient and can hold pooled "
            "work as a `Task.owner`. Note: Absence is meaningful, not missing data: a team with "
            "no subject is an operational work stream, not an incompletely recorded care team. "
            "Surfaces that render a patient's care providers must require `subject`. "
            "CareTeam.subject — 0..1"
        ),
    )
    participant: dict | None = Field(
        None,
        description=(
            "Members of the care team and their roles. Identifies all people and organizations "
            "who are expected to be involved in the care team. CareTeam.participant — 0..*"
        ),
    )
    reason_code: Concept | None = Field(
        None,
        description=(
            "Why the care team exists. Describes why the care team exists. CareTeam.reasonCode — "
            "0..*"
        ),
    )