Coverage — detail: insurance coverage
Representation of a patient's health insurance coverage: Primary insurance (Medicare/Medicaid in US, national systems elsewhere), secondary/complementary (Medigap, mutuelles), private contracts. Links with InsurancePlan, CoverageEligibilityRequest, Claim, ExplanationOfBenefit.
Primary vs Secondary insurance
Most healthcare systems combine two coverage levels modelled as distinct Coverage resources linked to the same Patient:
- Primary — Public scheme (Medicare, national health).
type.code=PUBLICPOL,order=1. - Secondary/Complementary — mutual insurance, supplemental policy.
type.code=EHCPOL,order=2+.
The order tag is crucial: order determines reimbursement sequence (primary first, then secondary on remaining out-of-pocket).
Key fields
| Field | Cardinality | Role |
|---|---|---|
status | 1..1 | active / cancelled / draft / entered-in-error. |
kind | 1..1 | R5 NEW: insurance / self-pay / other. |
type | 0..1 | v3-ActCode (PUBLICPOL, EHCPOL, DENTPOL, PHARMPOL…). |
policyHolder | 0..1 | Person who subscribes (employer, spouse). |
subscriber | 0..1 | Primary insured person. |
subscriberId | 0..* | Identification number (MBI in US, NIR in FR). |
beneficiary | 1..1 | Effective Patient beneficiary. |
relationship | 0..1 | self / spouse / child / parent / other. |
period | 0..1 | Validity period. |
insurer | 0..* | Insurance organization. |
class | 0..* | plan / group / subgroup / subplan / subclass. |
order | 0..1 | Reimbursement order (primary=1, secondary=2). |
costToBeneficiary | 0..* | Structured out-of-pocket (copay, deductible, OON). |
Class & relationship
The class element allows hierarchy of insurance plans:
plan— main plan level (e.g. MEDICARE_PART_B).group— group (employer, association).subgroup— sub-group (employer department).subplan— specific option within the plan.subclass— fine granularity.
Example: Medicare Part B coverage
{
"resourceType": "Coverage",
"id": "cov-medicare-marie-887",
"status": "active",
"kind": "insurance",
"type": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
"code": "PUBLICPOL",
"display": "Public healthcare"
}]
},
"policyHolder": { "reference": "Patient/marie-durand-887" },
"subscriber": { "reference": "Patient/marie-durand-887" },
"subscriberId": [{
"value": "1EG4-TE5-MK72"
}],
"beneficiary": { "reference": "Patient/marie-durand-887" },
"relationship": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/subscriber-relationship",
"code": "self"
}]
},
"period": {
"start": "2026-01-01"
},
"insurer": [{
"reference": "Organization/cms-medicare",
"display": "Medicare Part B"
}],
"class": [{
"type": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/coverage-class",
"code": "plan"
}]
},
"value": { "value": "MEDICARE_PART_B" },
"name": "Medicare Part B"
}],
"order": 1,
"network": "Original Medicare nationwide",
"costToBeneficiary": [{
"type": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/coverage-copay-type",
"code": "copay"
}]
},
"valueQuantity": {
"value": 20,
"unit": "%",
"system": "http://unitsofmeasure.org",
"code": "%"
}
}, {
"type": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/coverage-copay-type",
"code": "deductible"
}]
},
"valueQuantity": {
"value": 240,
"unit": "USD",
"system": "urn:iso:std:iso:4217",
"code": "USD"
}
}]
} Common pitfalls
- Confusion subscriber vs beneficiary — a parent can be subscriber (pays premium) with their children as distinct beneficiary. Always properly document
relationship. - subscriberId malformed — Medicare MBI must follow MBI format (4 alphanumeric + 3 chars). Strict format.
- order missing in multi-coverage — without order, the reimbursement engine doesn't know who pays first. Top error source for COB.
- Static costToBeneficiary — copay/deductible must be refreshed via CoverageEligibilityResponse to respect variations (network, plan year).