Coverage Profile¶
| Canonical | ../StructureDefinition/nexus-emr-core-coverage |
|---|---|
| Status | draft (experimental) · 1.26.0 |
| Base | Coverage (constraint) |
| Source | FSH · JSON |
Nexus EMR profile for Coverage -- the payor context for billing and the demo dataset. First pass: the Ontario-GP shape (public plan keyed by the patient's health-card number, payor as a logical Organization reference). Private/extended plans and coordination of benefits are deliberately unmodelled. Closed to SMART apps pending an exposure decision.
TypedFhir API / Pydantic schema
The typed accessor surface Coverage exposes for Coverage — 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 CoverageSchema — model_json_schema() is a structured-output / tool definition; instantiating validates an extraction. Generated source.
class CoverageSchema(BaseModel):
"""AI-facing shape of the Coverage 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", "cancelled", "draft", "entered-in-error"] | None = Field(
None,
description=(
"active | cancelled | draft | entered-in-error. The status of the resource instance. "
"Note: This element is labeled as a modifier because the status contains the code "
"entered-in-error that marks the coverage as not currently valid. Coverage.status — "
"1..1"
),
)
type: Concept | None = Field(
None,
description=(
"Kind of coverage (public provincial plan, private, ...). The type of coverage: "
"social program, medical plan, accident coverage (workers compensation, auto), group "
"health or payment by an individual or organization. Note: First pass leaves the "
"vocabulary open: OHIP rides as text + a payor identifier; a plan-type value set is "
"deferred until a second plan actually flows. Where this code was mapped from a "
"source system's own vocabulary, carry the raw coding alongside the mapped one, "
"flagged `userSelected = true`. See [Carrying the raw "
"code](../guide/patterns/raw-codes.md). Coverage.type — 0..1"
),
)
subscriber_id: str | None = Field(
None,
description=(
"The patient's identifier with the insurance plan. The identifier the PLAN knows the "
"covered person by. For Ontario's public plan this is the health card number; the "
"same value appears on Patient.identifier under the canadian-phn-systems machinery -- "
"this element carries the value the payor bills against, it does not replace the "
"Patient identifier slice. Note: For OHIP this is the health card number. "
"Coverage.subscriberId — 0..1"
),
)
beneficiary: Reference | None = Field(
None,
description=(
"The patient covered. The party who benefits from the insurance coverage; the patient "
"when products and/or services are provided. Coverage.beneficiary — 1..1"
),
)
relationship: Concept | None = Field(
None,
description=(
"Beneficiary relationship to the subscriber. The relationship of beneficiary "
"(patient) to the subscriber. Note: Typically, an individual uses policies which are "
"theirs (relationship='self') before policies owned by others. Coverage.relationship "
"— 0..1. codes (extensible): child | common | injured | other | parent | self | "
"spouse"
),
)
period: dict | None = Field(
None,
description=(
"Coverage validity period, when the source records one. Time period during which the "
"coverage is in force. A missing start date indicates the start date isn't known, a "
"missing end date means the coverage is continuing to be in force. Coverage.period — "
"0..1"
),
)
payor: Reference | None = Field(
None,
description=(
"Who pays -- typically a LOGICAL Organization reference (e.g. OHIP). The payor "
"organization. A logical reference (Reference.identifier naming the plan authority, "
"display carrying the human-readable name) is the expected first-pass shape -- "
"provincial payors are not resources the EMR maintains. Note: May provide multiple "
"identifiers such as insurance company identifier or business identifier (BIN "
"number). For selfpay it may provide multiple paying persons and/or organizations. "
"Coverage.payor — 1..*"
),
)