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.

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 recherche GET [base]/Task?owner=Organization/lab&status=ready,in-progress&_sort=priority,-lastModified. Vue temps réel, pas de stockage explicite.
  • List — ressource List avec entry[].item pointant chaque Task. Persistante, partagée entre acteurs, supports note.
  • Composition — pour les listes signées (rapport d'activité de fin de garde).

Exemple Bundle

Worklist du laboratoire central, deux tâches actives :

json tasklist-lab.json
{
  "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 _count et liens next, le client charge tout en RAM.
  • Tri instable_sort=priority seul ne suffit pas : ajouter -lastModified pour 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.