ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

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

ChampCardinalitéRôle
status1..1active / cancelled / draft / entered-in-error.
kind1..1R5 NEW : insurance / self-pay / other.
type0..1v3-ActCode (PUBLICPOL, EHCPOL, DENTPOL, PHARMPOL...).
policyHolder0..1Personne qui souscrit (employeur, époux).
subscriber0..1Personne assurée principale.
subscriberId0..*Numéro d'identification (en FR : NIR 13 chiffres).
beneficiary1..1Patient bénéficiaire effectif.
relationship0..1self / spouse / child / parent / other.
period0..1Période de validité.
insurer0..*Organisation d'assurance.
class0..*plan / group / subgroup / subplan / subclass.
order0..1Ordre de remboursement (primary=1, secondary=2).
costToBeneficiary0..*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

json coverage-cnam.json
{
  "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).

Ressources liées