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.

Consent — détail : consentement patient

Modélisation du consentement patient pour consultation, partage de données, recherche, directives anticipées. Conforme aux exigences RGPD article 7 (consentement explicite et révocable), HIPAA Privacy Rule, IHE BPPC (Basic Patient Privacy Consents). Provision granulaire avec exceptions par diagnostic ou type d'usage.

Conformité RGPD article 7

RGPD article 7 impose 4 critères pour un consentement valide :

  1. Libre — sans pression (typiquement, conditionner un soin au consentement = invalide).
  2. Spécifique — un consentement par finalité distincte (FHIR purpose + action).
  3. Éclairé — politique d'usage accessible (FHIR policyText reference vers un DocumentReference).
  4. Univoque — acte positif et clair (FHIR decision: permit, jamais d'opt-out par défaut).

Plus la révocabilité : status: inactive ou revoked doit être propagé en temps réel à tous les consumers du DMP.

Champs clés

ChampCardinalitéRôle
status1..1draft / active / inactive / not-done / entered-in-error / unknown.
category1..*Type de consentement (INFAO, IDSCL, TREAT, RESEARCH).
subject0..1Patient concerné.
date0..1Date de signature.
grantor0..*Qui consent (typiquement Patient ou RelatedPerson).
grantee0..*À qui le consentement est donné (Organization, Practitioner).
controller0..*Responsable du traitement RGPD article 4.
policyText0..1Texte de politique référencé.
decision0..1permit / deny au niveau racine.
provision0..*Règles granulaires (sous-section).

Provision granulaire (deny vs permit)

La force du Consent FHIR : provisions imbriquées avec décision contraire à la racine. Exemple : « Je consens (permit) au partage de mon dossier médical à mon médecin traitant, SAUF (deny) les diagnostics de santé mentale ».

Chaque provision peut filtrer sur :

  • period — fenêtre temporelle.
  • actor — qui peut accéder (rôle ou identifiant).
  • action — quelle action (access, correct, disclose).
  • securityLabel — niveau de confidentialité (N=normal, R=restricted, V=very restricted).
  • purpose — finalité (TREAT, HRESCH, HOPERAT, ETREAT).
  • code — diagnostic ou catégorie de données (SNOMED CT codes).
  • dataPeriod — fenêtre des données (rétroactif).

Exemple : consentement DMP avec exception santé mentale

json consent-dmp.json
{
  "resourceType": "Consent",
  "id": "consent-dmp-marie-887",
  "status": "active",
  "category": [{
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/consentcategorycodes",
      "code": "INFAO",
      "display": "Information access"
    }]
  }],
  "subject": { "reference": "Patient/marie-durand-887" },
  "date": "2026-05-19",
  "grantor": [{ "reference": "Patient/marie-durand-887" }],
  "grantee": [{
    "reference": "Organization/asip-dmp",
    "display": "ANS - Mon Espace Sante"
  }],
  "controller": [{
    "reference": "Organization/asip-dmp"
  }],
  "policyText": {
    "reference": "DocumentReference/dmp-policy-v3"
  },
  "decision": "permit",
  "provision": [{
    "period": {
      "start": "2026-05-19",
      "end": "2031-05-19"
    },
    "actor": [{
      "role": {
        "coding": [{
          "system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
          "code": "AUT"
        }]
      },
      "reference": { "reference": "PractitionerRole/medecin-traitant" }
    }],
    "action": [{
      "coding": [{
        "system": "http://terminology.hl7.org/CodeSystem/consentaction",
        "code": "access"
      }]
    }, {
      "coding": [{
        "system": "http://terminology.hl7.org/CodeSystem/consentaction",
        "code": "correct"
      }]
    }],
    "securityLabel": [{
      "system": "http://terminology.hl7.org/CodeSystem/v3-Confidentiality",
      "code": "N",
      "display": "Normal"
    }],
    "purpose": [{
      "system": "http://terminology.hl7.org/CodeSystem/v3-ActReason",
      "code": "TREAT"
    }],
    "dataPeriod": {
      "start": "2010-01-01"
    },
    "provision": [{
      "decision": "deny",
      "code": [{
        "coding": [{
          "system": "http://snomed.info/sct",
          "code": "47505003",
          "display": "Post-traumatic stress disorder"
        }]
      }],
      "purpose": [{
        "system": "http://terminology.hl7.org/CodeSystem/v3-ActReason",
        "code": "HRESCH"
      }]
    }]
  }]
}

Pièges courants

  • Provision contradictoires — règle de résolution : la provision la plus spécifique gagne. Mais le provider doit implementer un policy decision point (PDP) cohérent (XACML-like).
  • Pas de période de validité — un consentement sans provision[].period est éternel ; RGPD impose une réflexion sur la durée.
  • Révocation non-propagée — passer status=revoked sans notification aux subscribers (Subscription) crée des accès orphelins.
  • grantor ≠ subject — pour les mineurs ou les majeurs protégés, grantor est le représentant légal, subject est le patient. Erreur fréquente.

Ressources liées