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.

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

ChampTypeCardinalitéRôle
urluri0..1URL canonique stable de l'ActivityDefinition.
versionstring0..1Version sémantique de la définition.
namestring0..1Nom technique (camelCase).
titlestring0..1Titre humain.
statuscode1..1draft | active | retired | unknown.
experimentalboolean0..1Définition de test ou de production.
subject[x]CodeableConcept | Reference | canonical0..1Sujet cible (Patient, Group, EvidenceVariable…).
kindcode0..1Type de ressource à instancier (MedicationRequest, ServiceRequest, Task…).
profilecanonical0..1Profil que devra respecter l'instance générée.
codeCodeableConcept0..1Code détaillé de l'action (SNOMED CT, LOINC, RxNorm…).
intentcode0..1proposal | plan | order | option.
prioritycode0..1routine | urgent | asap | stat.
timing[x]Timing | Age | Range…0..1Quand exécuter l'activité.
locationCodeableReference(Location)0..1Où exécuter.
participantBackboneElement[]0..*Acteurs requis (médecin, patient, dispositif).
productReference | productCodeableConceptReference | CodeableConcept0..1Produit (Médicament, Substance, Device).
dosageDosage[]0..*Posologie quand l'activité est une administration.
dynamicValueBackboneElement[]0..*Expressions FHIRPath/CQL pour fixer dynamiquement des champs lors de $apply.
librarycanonical[]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 :

json activitydefinition-example.json
{
  "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}/$apply avec un Parameters portant subject, encounter, context.
  • Le serveur retourne une ressource concrète (MedicationRequest, ServiceRequest, Task…) prête à être créée dans le dossier.
  • Les dynamicValue CQL/FHIRPath sont évalués sur le sujet et injectés dans l'instance.

Pièges courants

  • kind manquant — l'opération $apply ne 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 profile qui contredit kind rendra l'instance invalide.
  • Confusion code et productCodeableConceptcode = 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.