TaskList — Liste de travail matérialisée
TaskList n'est pas une ressource FHIR native. C'est un pattern : la matérialisation d'une liste de travail Task pour un acteur, via Bundle ou List.
Objet du pattern
Une worklist (liste de travail) est l'unité d'organisation typique d'un acteur soignant :
laboratoire, pharmacie, salle d'opération, équipe d'infirmiers. FHIR R5 ne définit pas
de ressource TaskList : la convention est de matérialiser la liste
via une recherche sur Task filtrée et triée, dont le
résultat est un Bundle
de type searchset.
Options de matérialisation
- Bundle
searchset— résultat dynamique d'une rechercheGET [base]/Task?owner=Organization/lab&status=ready,in-progress&_sort=priority,-lastModified. Vue temps réel, pas de stockage explicite. - List — ressource
Listavecentry[].itempointant chaque Task. Persistante, partagée entre acteurs, supportsnote. - Composition — pour les listes signées (rapport d'activité de fin de garde).
Exemple Bundle
Worklist du laboratoire central, deux tâches actives :
{
"resourceType": "Bundle",
"id": "worklist-lab-2026-05-15",
"type": "searchset",
"timestamp": "2026-05-15T09:00:00+02:00",
"total": 3,
"link": [{
"relation": "self",
"url": "https://fhir.example.org/Task?owner=Organization/lab-central&status=ready,in-progress&_sort=priority,-lastModified"
}],
"entry": [
{
"fullUrl": "https://fhir.example.org/Task/01",
"resource": {
"resourceType": "Task",
"id": "01",
"status": "ready",
"intent": "order",
"priority": "stat",
"focus": { "reference": "ServiceRequest/sr-troponine-001" },
"for": { "reference": "Patient/doe-john" },
"owner": { "reference": "Organization/lab-central" }
},
"search": { "mode": "match" }
},
{
"fullUrl": "https://fhir.example.org/Task/02",
"resource": {
"resourceType": "Task",
"id": "02",
"status": "in-progress",
"intent": "order",
"priority": "routine",
"focus": { "reference": "ServiceRequest/sr-nfs-001" },
"for": { "reference": "Patient/martin-anne" },
"owner": { "reference": "Organization/lab-central" }
},
"search": { "mode": "match" }
}
]
} Pièges courants
- Chercher la ressource
TaskList— n'existe pas en R5. C'est un pattern, pas un resourceType. - Pagination oubliée — sur une worklist de 1000+ Tasks, sans
_countet liensnext, le client charge tout en RAM. - Tri instable —
_sort=priorityseul ne suffit pas : ajouter-lastModifiedpour un ordre stable. - Pas de Subscription — refresh manuel toutes les 30s = charge serveur élevée. Préférer un Subscription sur la même requête.
- Lecture vs List ressource — utiliser List si l'utilisateur doit pouvoir épingler/cocher manuellement ; sinon Bundle suffit.
Ressources liées
- Task — la ressource listée.
- Bundle — conteneur typique (type=searchset).
- Subscription — pour rafraîchir la worklist en temps réel.
- Composition — alternative signée.