Coverage — détail : couverture assurance
Représentation de la couverture assurance santé d'un patient : Régime Obligatoire (CNAM, MSA, RSI), Régime Complémentaire (mutuelle, prévoyance), contrats privés (santé internationale, accidents). Lien avec InsurancePlan, CoverageEligibilityRequest, Claim, ExplanationOfBenefit.
RO/RC France
Le système français combine deux niveaux de couverture qui se modélisent en Coverage distincts liés à un même Patient :
- Régime Obligatoire (RO) — CNAM (CPAM départementale), MSA, régimes spéciaux.
type.code=PUBLICPOL,order=1. - Régime Complémentaire (RC) — mutuelle santé, prévoyance, assurance privée.
type.code=EHCPOL,order=2+.
Le tag order est crucial : l'ordre détermine la séquence de remboursement (RO d'abord, puis RC sur le reste à charge).
Champs clés
| Champ | Cardinalité | Rôle |
|---|---|---|
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 | Personne qui souscrit (employeur, époux). |
subscriber | 0..1 | Personne assurée principale. |
subscriberId | 0..* | Numéro d'identification (en FR : NIR 13 chiffres). |
beneficiary | 1..1 | Patient bénéficiaire effectif. |
relationship | 0..1 | self / spouse / child / parent / other. |
period | 0..1 | Période de validité. |
insurer | 0..* | Organisation d'assurance. |
class | 0..* | plan / group / subgroup / subplan / subclass. |
order | 0..1 | Ordre de remboursement (primary=1, secondary=2). |
costToBeneficiary | 0..* | Reste à charge structuré (copay, deductible, OON). |
Class & relationship
L'élément class permet la hiérarchisation des plans d'assurance :
plan— niveau plan principal (ex : AMO_BASE).group— groupe (employeur, association).subgroup— sous-groupe (département de l'employeur).subplan— option spécifique au sein du plan.subclass— niveau de granularité fine.
Exemple : couverture CNAM RO
{
"resourceType": "Coverage",
"id": "cov-cnam-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": "1.79.03.75.111.222.45"
}],
"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/cnam-paris-75",
"display": "CNAM - CPAM Paris 75"
}],
"class": [{
"type": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/coverage-class",
"code": "plan"
}]
},
"value": { "value": "AMO_BASE" },
"name": "Regime obligatoire base"
}],
"order": 1,
"network": "Reseau conventionne sectorisable",
"costToBeneficiary": [{
"type": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/coverage-copay-type",
"code": "copay"
}]
},
"valueQuantity": {
"value": 30,
"unit": "%",
"system": "http://unitsofmeasure.org",
"code": "%"
}
}, {
"type": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/coverage-copay-type",
"code": "deductible"
}]
},
"valueQuantity": {
"value": 50.00,
"unit": "EUR",
"system": "urn:iso:std:iso:4217",
"code": "EUR"
}
}]
} Pièges courants
- Confusion subscriber vs beneficiary — un parent peut être subscriber (paye la prime) avec ses enfants comme beneficiary distincts. Toujours documenter correctement
relationship. - subscriberId mal formé pour FR — le NIR doit être en 13 chiffres + clé (15 chiffres total). Format strict.
- order absent en multi-couverture — sans ordre, le moteur de remboursement ne sait pas qui paie en premier. Source #1 d'erreurs de tiers-payant.
- costToBeneficiary statique — les copay/deductible doivent être actualisés via CoverageEligibilityResponse pour respecter les variations (parcours de soin, ALD).