Task — Activité opérationnelle FHIR
Là où ServiceRequest dit quoi, Task dit où on en est : reçue, acceptée, en cours, terminée. La ressource pivot du workflow opérationnel.
Objet de la ressource
Task décrit une activité à exécuter ou en cours d'exécution : traiter une demande, livrer un médicament, faire approuver une prescription, exécuter un questionnaire. Là où ServiceRequest porte la demande, Task porte le suivi opérationnel : qui exécute, quand, dans quel état, avec quelles entrées et quelles sorties.
Le pattern type : un ServiceRequest est créé par un médecin ; un Task
focus = ServiceRequest/... est créé pour notifier le laboratoire
qu'il doit l'exécuter. Le laboratoire fait progresser le Task de received
→ accepted → in-progress → completed.
Champs clés
| Champ | Type | Cardinalité | Rôle |
|---|---|---|---|
status | code | 1..1 | Obligatoire. Cycle de vie : draft, requested, received, accepted, rejected, ready, cancelled, in-progress, on-hold, failed, completed, entered-in-error. |
statusReason | CodeableReference | 0..1 | Raison du statut courant. |
businessStatus | CodeableConcept | 0..1 | Statut métier libre — finer-grained que status. |
intent | code | 1..1 | Obligatoire. unknown, proposal, plan, order, original-order, reflex-order, filler-order, instance-order, option. |
priority | code | 0..1 | routine, urgent, asap, stat. |
code | CodeableConcept | 0..1 | Nature de la tâche (souvent fulfill, abort, replace, change). |
focus | Reference(Any) | 0..1 | Ressource sur laquelle agit la tâche. |
for | Reference(Any) | 0..1 | Bénéficiaire (typiquement Patient). |
encounter | Reference(Encounter) | 0..1 | Contexte de soin. |
requestedPeriod | Period | 0..1 | Période demandée. |
executionPeriod | Period | 0..1 | Période réelle d'exécution. |
authoredOn | dateTime | 0..1 | Date de création. |
lastModified | dateTime | 0..1 | Dernière modification — clé pour les listes de tâches. |
requester | Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | 0..1 | Demandeur. |
owner | Reference(...) | 0..1 | Exécutant assigné. |
partOf | Reference(Task) | 0..* | Tâche parente (décomposition). |
input | BackboneElement[] | 0..* | Données d'entrée. |
output | BackboneElement[] | 0..* | Résultats produits. |
Statuts et transitions
Le diagramme de transitions canonique : draft → requested
→ received → accepted ou rejected.
Une tâche acceptée passe par ready → in-progress →
completed en cas de succès, ou failed / cancelled.
on-hold est réversible.
Exemple JSON
Tâche de fulfill d'une NFS, assignée au laboratoire central :
{
"resourceType": "Task",
"id": "fulfill-labtest-001",
"status": "in-progress",
"intent": "order",
"priority": "routine",
"code": {
"coding": [{
"system": "http://hl7.org/fhir/CodeSystem/task-code",
"code": "fulfill",
"display": "Fulfill the focal request"
}]
},
"description": "Exécution de la demande de NFS pour M. Doe",
"focus": { "reference": "ServiceRequest/sr-nfs-001" },
"for": { "reference": "Patient/doe-john" },
"encounter": { "reference": "Encounter/enc-2026-05-15" },
"executionPeriod": {
"start": "2026-05-15T08:30:00+02:00"
},
"authoredOn": "2026-05-15T08:25:00+02:00",
"lastModified": "2026-05-15T09:10:00+02:00",
"requester": { "reference": "Practitioner/dr-smith" },
"owner": { "reference": "Organization/lab-central" },
"businessStatus": {
"coding": [{
"system": "http://example.org/CodeSystem/lab-status",
"code": "in-analyzer"
}]
},
"input": [{
"type": { "text": "Échantillon" },
"valueReference": { "reference": "Specimen/spec-001" }
}]
} Pièges courants
- Confondre Task et ServiceRequest — ServiceRequest = la demande, Task = le suivi d'exécution. Un ServiceRequest peut générer plusieurs Tasks (par étape, par exécutant).
- Transition de statut non valide — passer de
completedàin-progressn'est pas autorisé sansentered-in-error. - Pas de
owner— sans propriétaire, la tâche est orpheline : aucune liste de travail ne la remontera. - Confusion
requestedPeriodvsexecutionPeriod— la première est planifiée, la seconde réelle. Mélanger les deux fausse les indicateurs de délai. - Polling au lieu de Subscription — pour des listes de tâches actives, un Subscription sur
Task?owner=...&status=ready,in-progressévite la charge serveur d'un polling.
Ressources liées
- ServiceRequest — la demande que Task fulfill.
- MedicationRequest — Task
fulfillen pharmacie hospitalière. - Questionnaire — Task qui demande au patient de remplir un formulaire.
- TaskList — conteneur de tâches (Bundle ou Composition).
- Provenance — traçabilité des changements de statut.