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.
FSH
The authored source of truth: resources/StructureDefinition-nexus-emr-core-coverage.fsh (edit on GitHub). One FSH file may define several related artifacts.
// NexusEmrCoreCoverage.fsh
// FIRST PASS (FHIR-29). Insurance/plan coverage -- the payor context billing displays need.
//
// CONSUMER: the SD-242/SD-118 demo dataset requires insurance context on the chart, and the
// billing surface (Invoice already profiled, OHIP fee lines) has no way to say WHICH plan pays
// without it. The clinical-task profile has referenced Coverage (`Task.insurance`) since its
// MERT round -- a dangling target until now.
//
// FIRST-PASS SCOPE: the Ontario-GP shape -- one public plan (OHIP) identified by the patient's
// HCN, payor as a logical Organization reference. Deliberately NOT settled: private/extended
// plans (class/network/costToBeneficiary), coordination of benefits (order), and the
// out-of-province posture (the canadian-phn-systems machinery names the provincial systems;
// which plans beyond OHIP the platform bills is a product question).
//
// SMART EXPOSURE: deliberately NOT declared -- closed to apps pending a decision (FHIR-28 policy).
Alias: $NexusEmrCoreCoverage = ../StructureDefinition/nexus-emr-core-coverage
Profile: NexusEmrCoreCoverage
Parent: Coverage
Id: nexus-emr-core-coverage
Title: "Coverage Profile"
Description: "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."
* ^url = $NexusEmrCoreCoverage
* ^status = #draft
* ^experimental = true
// Administrative validity, not a clinical effective date: a Coverage entering recency windows
// would distort the chart's reference day (same reasoning as Patient/Organization).
* insert NoEffectiveDate
* . ^short = "Nexus EMR Coverage Core"
* status 1..1 MS
* status ^short = "active | cancelled | draft | entered-in-error"
* type 0..1 MS
* type ^short = "Kind of coverage (public provincial plan, private, ...)"
* type ^comment = "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)."
* subscriberId 0..1 MS
* subscriberId ^short = "The patient's identifier with the insurance plan"
* subscriberId ^comment = "For OHIP this is the health card number."
* subscriberId ^definition = "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."
* beneficiary 1..1 MS
* beneficiary only Reference(NexusEmrCorePatient)
* beneficiary ^short = "The patient covered"
* payor 1..* MS
* payor ^short = "Who pays -- typically a LOGICAL Organization reference (e.g. OHIP)"
* payor ^definition = "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."
* period 0..1 MS
* period ^short = "Coverage validity period, when the source records one"