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.

ActorDefinition — Définition formelle d'un acteur

Nouveau type de ressource introduit en FHIR R5. Décrit formellement un acteur conceptuel dans un guide d'implémentation : système consommateur, application patient, EHR, serveur d'identité. La pierre angulaire des scénarios IHE et SMART on FHIR.

Objet de la ressource

Un guide d'implémentation FHIR ne décrit pas seulement des ressources et des contraintes — il décrit des scénarios d'interaction entre des systèmes. Pour formaliser ces scénarios, FHIR R5 ajoute la notion d'acteur, longtemps absente du noyau standard.

Un ActorDefinition peut représenter un système consommateur (« SMART on FHIR app patient-facing »), un système producteur (« EHR Order Placer »), une personne dans un workflow (« Pharmacien dispensateur »), ou une chaîne agentique (« Clinical Decision Support »). Chaque ActorDefinition est référencée par les ExampleScenario et les CapabilityStatement du guide.

Champs clés

ChampTypeCardinalitéRôle
urluri0..1URL canonique.
versionstring0..1Version sémantique.
namestring0..1Nom machine (PascalCase).
titlestring0..1Titre lisible.
statuscode1..1draft, active, retired, unknown.
experimentalboolean0..1Mode expérimental.
datedateTime0..1Date de publication.
publisherstring0..1Organisme publiant.
contactContactDetail[]0..*Contact technique.
descriptionmarkdown0..1Description riche.
typecode1..1person, system.
documentationmarkdown0..1Documentation associée.
referenceurl[]0..*Liens externes (RFC, spécifications industrielles).
capabilitiescanonical(CapabilityStatement)0..1Capabilities REST attendues / fournies.
derivedFromcanonical(ActorDefinition)[]0..*Acteur parent (héritage de capacités).

Exemple JSON

Une app patient-facing SMART on FHIR, héritière du profil OAuth2 confidential client :

json actordefinition-example.json
{
  "resourceType": "ActorDefinition",
  "id": "smart-on-fhir-client",
  "url": "http://hl7.org/fhir/smart-app-launch/ActorDefinition/smart-on-fhir-client",
  "version": "2.2.0",
  "name": "SmartOnFhirClient",
  "title": "SMART on FHIR Patient-Facing App",
  "status": "active",
  "experimental": false,
  "date": "2026-05-16",
  "publisher": "HL7 International — FHIR Infrastructure",
  "contact": [{
    "name": "FHIR Infrastructure",
    "telecom": [{ "system": "url", "value": "http://hl7.org/Special/committees/fiwg" }]
  }],
  "description": "A patient-facing SMART on FHIR app that authenticates with OAuth 2 + OpenID Connect and consumes /Patient, /Observation, /Condition data from a SMART-enabled EHR.",
  "type": "system",
  "documentation": "https://hl7.org/fhir/smart-app-launch/STU2/app-launch.html",
  "reference": [
    "https://hl7.org/fhir/smart-app-launch/STU2/scopes-and-launch-context.html"
  ],
  "capabilities": "CapabilityStatement/smart-on-fhir-client",
  "derivedFrom": [
    "http://hl7.org/fhir/smart-app-launch/ActorDefinition/oauth2-confidential-client"
  ]
}

Usages typiques

  • IHE Profiles : chaque acteur IHE (Document Source, Document Consumer, Patient Source, Identity Source…) peut être modélisé en ActorDefinition.
  • SMART App Launch IG : définit Patient App, Provider App, EHR, Authorisation Server.
  • US Core IG : décrit l'acteur EHR conforme ONC, l'acteur Patient App, l'acteur Public Health Authority.
  • FR Core / FHIR France : acteur DMP Source, DMP Consumer, INS Source.
  • Scénarios HSPC, FHIR at Scale Taskforce : décrit les rôles des composants dans un Health Information Exchange (HIE) régional.

Pièges courants

  • Confusion acteur conceptuel / système réel : ActorDefinition décrit un rôle abstrait dans un IG, pas une instance déployée. Le système réel est porté par Endpoint, Device ou Organization.
  • Type incorrect : person pour un humain (pharmacien, prescripteur), system pour un logiciel. Confondre les deux casse les outils de visualisation des scénarios.
  • Capabilities non liées : une ActorDefinition sans capabilities n'a pas de contrat technique vérifiable. Toujours pointer vers un CapabilityStatement quand possible.
  • Pas de derivedFrom : hériter d'un acteur de base évite de redéfinir 200 lignes de capabilities OAuth2. Utiliser l'héritage.
  • Reference vers documentation périmée : les URL externes doivent être stables (versionnées) — sinon le guide pourrit avec le temps.

Ressources liées

  • ExampleScenario — utilise plusieurs ActorDefinition pour décrire un workflow.
  • CapabilityStatement — décrit les capacités REST d'un acteur.
  • ImplementationGuide — référence les ActorDefinitions dans son table of contents.
  • Requirements — exigences fonctionnelles satisfaites par un acteur.

Voir aussi : ExampleScenario — scénarios d'interaction et CapabilityStatement — capacités REST.