Skip to content

Care Plan Profile

Canonical../StructureDefinition/nexus-emr-core-careplan
Statusdraft (experimental) · 1.26.0
BaseCarePlan (constraint)
SourceFSH · JSON

Nexus EMR profile for CarePlan -- the management plan tying goals, conditions and activities together (CDM flowsheets, care gaps). First pass: status/intent, category, goal/addresses linkage, minimal activity. Closed to SMART apps pending an exposure decision.

TypedFhir API / Pydantic schema

The typed accessor surface CarePlan exposes for CarePlan — 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 CarePlanSchemamodel_json_schema() is a structured-output / tool definition; instantiating validates an extraction. Generated source.

class CarePlanSchema(BaseModel):
    """AI-facing shape of the CarePlan 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",
        "completed",
        "draft",
        "entered-in-error",
        "on-hold",
        "revoked",
        "unknown",
    ] | None = Field(
        None,
        description=(
            "draft | active | on-hold | revoked | completed | entered-in-error | unknown. "
            "Indicates whether the plan is currently being acted upon, represents future "
            "intentions or is now a historical record. Note: This is a modifier element. A draft "
            "plan that is being SUGGESTED rides in the transaction Bundle contained in its review "
            "Task, like every other suggested resource. CarePlan.status — 1..1"
        ),
    )
    intent: Literal["option", "order", "plan", "proposal"] | None = Field(
        None,
        description=(
            "proposal | plan | order | option -- normally `plan`. Indicates the level of "
            "authority/intentionality associated with the care plan and where the care plan fits "
            "into the workflow chain. Note: This element is labeled as a modifier because the "
            "intent alters when and how the resource is actually applicable. CarePlan.intent — "
            "1..1"
        ),
    )
    category: Concept | None = Field(
        None,
        description=(
            "What kind of plan (e.g. the managed condition's domain). Identifies what \"kind\" of "
            "plan this is to support differentiation between multiple co-existing plans; e.g. "
            "\"Home health\", \"psychiatric\", \"asthma\", \"disease management\", \"wellness plan\", etc. "
            "Note: There may be multiple axes of categorization and one plan may serve multiple "
            "purposes. In some cases, this may be redundant with references to CarePlan.concern. "
            "CarePlan.category — 0..*"
        ),
    )
    subject: Reference | None = Field(
        None,
        description=(
            "The patient. Identifies the patient or group whose intended care is described by the "
            "plan. CarePlan.subject — 1..1"
        ),
    )
    period: dict | None = Field(
        None,
        description=(
            "When the plan is/was in effect. Indicates when the plan did (or is intended to) come "
            "into effect and end. Note: Any activities scheduled as part of the plan should be "
            "constrained to the specified period regardless of whether the activities are planned "
            "within a single encounter/episode or across multiple encounters/episodes (e.g. the "
            "longitudinal management of a chronic condition). CarePlan.period — 0..1"
        ),
    )
    addresses: Reference | None = Field(
        None,
        description=(
            "The condition(s) being managed. Identifies the "
            "conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are "
            "handled by this plan. Note: When the diagnosis is related to an allergy or "
            "intolerance, the Condition and AllergyIntolerance resources can both be used. "
            "However, to be actionable for decision support, using Condition alone is not "
            "sufficient as the allergy or intolerance condition needs to be represented as an "
            "AllergyIntolerance. CarePlan.addresses — 0..*"
        ),
    )
    goal: Reference | None = Field(
        None,
        description=(
            "The measurable targets (flowsheet rows) of this plan. Describes the intended "
            "objective(s) of carrying out the care plan. Note: Goal can be achieving a particular "
            "change or merely maintaining a current state or even slowing a decline. "
            "CarePlan.goal — 0..*"
        ),
    )
    activity: dict | None = Field(
        None,
        description=(
            "Planned activities: a reference to a request resource, or an inline detail. "
            "Identifies a planned action to occur as part of the plan. For example, a medication "
            "to be used, lab tests to perform, self-monitoring, education, etc. CarePlan.activity "
            "— 0..*"
        ),
    )