ActivityDefinition — Modèle d'action réutilisable
Le patron d'une activité clinique. Une fois défini, il peut être instancié en MedicationRequest, ServiceRequest, Task, CommunicationRequest sans dupliquer la logique.
Objet de la ressource
ActivityDefinition est un modèle déclaratif d'une action clinique réutilisable. Elle
capture l'intention (prescrire un médicament, planifier un examen, envoyer une notification) sans
être elle-même l'instance exécutée. Une autre ressource (PlanDefinition, CarePlan, Task,
MedicationRequest…) référence l'ActivityDefinition via instantiatesCanonical
et l'opération $apply matérialise l'action sur un sujet concret.
Cette indirection donne aux systèmes de CDS (Clinical Decision Support) un dictionnaire d'actions validées par les comités cliniques, séparé des instances créées dans le dossier patient.
Champs clés
| Champ | Type | Cardinalité | Rôle |
|---|---|---|---|
url | uri | 0..1 | URL canonique stable de l'ActivityDefinition. |
version | string | 0..1 | Version sémantique de la définition. |
name | string | 0..1 | Nom technique (camelCase). |
title | string | 0..1 | Titre humain. |
status | code | 1..1 | draft | active | retired | unknown. |
experimental | boolean | 0..1 | Définition de test ou de production. |
subject[x] | CodeableConcept | Reference | canonical | 0..1 | Sujet cible (Patient, Group, EvidenceVariable…). |
kind | code | 0..1 | Type de ressource à instancier (MedicationRequest, ServiceRequest, Task…). |
profile | canonical | 0..1 | Profil que devra respecter l'instance générée. |
code | CodeableConcept | 0..1 | Code détaillé de l'action (SNOMED CT, LOINC, RxNorm…). |
intent | code | 0..1 | proposal | plan | order | option. |
priority | code | 0..1 | routine | urgent | asap | stat. |
timing[x] | Timing | Age | Range… | 0..1 | Quand exécuter l'activité. |
location | CodeableReference(Location) | 0..1 | Où exécuter. |
participant | BackboneElement[] | 0..* | Acteurs requis (médecin, patient, dispositif). |
productReference | productCodeableConcept | Reference | CodeableConcept | 0..1 | Produit (Médicament, Substance, Device). |
dosage | Dosage[] | 0..* | Posologie quand l'activité est une administration. |
dynamicValue | BackboneElement[] | 0..* | Expressions FHIRPath/CQL pour fixer dynamiquement des champs lors de $apply. |
library | canonical[] | 0..* | Bibliothèques de logique (CQL) référencées. |
Exemple JSON
Exemple minimal d'une ActivityDefinition qui modélise l'administration d'un questionnaire :
{
"resourceType": "ActivityDefinition",
"id": "administer-zika-virus-exposure-assessment",
"url": "http://example.org/ActivityDefinition/administer-zika-virus-exposure-assessment",
"version": "5.0.0",
"name": "AdministerZikaVirusExposureAssessment",
"title": "Administer Zika Virus Exposure Assessment",
"status": "draft",
"experimental": true,
"date": "2026-05-15",
"publisher": "HL7 International (FHIR Project)",
"description": "Administer the Zika Virus Exposure Assessment questionnaire to a patient suspected of Zika exposure.",
"kind": "ServiceRequest",
"code": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "171207006",
"display": "Depression assessment"
}]
},
"intent": "order",
"priority": "routine",
"timingTiming": {
"repeat": {
"frequency": 1,
"period": 1,
"periodUnit": "d"
}
}
} Opération $apply
L'opération $apply est l'opération principale d'ActivityDefinition :
POST /ActivityDefinition/{id}/$applyavec unParametersportantsubject,encounter,context.- Le serveur retourne une ressource concrète (MedicationRequest, ServiceRequest, Task…) prête à être créée dans le dossier.
- Les
dynamicValueCQL/FHIRPath sont évalués sur le sujet et injectés dans l'instance.
Pièges courants
kindmanquant — l'opération$applyne sait pas quel type de ressource matérialiser. Toujours préciser.- Confusion avec PlanDefinition — ActivityDefinition décrit UNE action ; PlanDefinition orchestre PLUSIEURS actions.
- Profil incompatible — un
profilequi contreditkindrendra l'instance invalide. - Confusion
codeetproductCodeableConcept—code= action ;product= chose administrée.
Ressources liées
- PlanDefinition — orchestration d'actions, dont des ActivityDefinition.
- Library — porte les expressions CQL référencées via
library. - Measure — mesure de qualité qui partage le même socle Clinical Reasoning.
- Task — souvent instanciée à partir d'une ActivityDefinition.
- Hub FHIR R5.