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
| Champ | Type | Cardinalité | Rôle |
|---|---|---|---|
url | uri | 0..1 | URL canonique. |
version | string | 0..1 | Version sémantique. |
name | string | 0..1 | Nom machine (PascalCase). |
title | string | 0..1 | Titre lisible. |
status | code | 1..1 | draft, active, retired, unknown. |
experimental | boolean | 0..1 | Mode expérimental. |
date | dateTime | 0..1 | Date de publication. |
publisher | string | 0..1 | Organisme publiant. |
contact | ContactDetail[] | 0..* | Contact technique. |
description | markdown | 0..1 | Description riche. |
type | code | 1..1 | person, system. |
documentation | markdown | 0..1 | Documentation associée. |
reference | url[] | 0..* | Liens externes (RFC, spécifications industrielles). |
capabilities | canonical(CapabilityStatement) | 0..1 | Capabilities REST attendues / fournies. |
derivedFrom | canonical(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 :
{
"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 :
personpour un humain (pharmacien, prescripteur),systempour un logiciel. Confondre les deux casse les outils de visualisation des scénarios. - Capabilities non liées : une ActorDefinition sans
capabilitiesn'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.