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.

RequestOrchestration — Orchestration de demandes

Le successeur de RequestGroup (R4) : un groupe de demandes cliniques liées par des conditions, dépendances temporelles et alternatives. Le cœur des CDS Hooks et des PlanDefinition exécutées.

Objet de la ressource

RequestOrchestration regroupe plusieurs ressources de la famille Request (MedicationRequest, ServiceRequest, NutritionOrder, Task, etc.) avec leurs relations : ordonnancement temporel, conditions d'applicabilité, alternatives exclusives. Elle est typiquement issue de l'application d'un PlanDefinition (protocole) par un moteur CDS (Clinical Decision Support).

Cas d'usage type : un protocole post-opératoire généré automatiquement à la sortie d'une intervention : antalgie, bilan biologique J+1, consultation J+30. Chaque sous-action peut conditionner ou suivre une autre.

Champs clés

ChampTypeCardinalitéRôle
statuscode1..1Obligatoire. draft, active, on-hold, revoked, completed, entered-in-error, unknown.
intentcode1..1Obligatoire. proposal, plan, directive, order, original-order, reflex-order, filler-order, instance-order, option.
prioritycode0..1routine, urgent, asap, stat.
codeCodeableConcept0..1Type d'orchestration.
subjectReference(Patient | Group)0..1Bénéficiaire.
encounterReference(Encounter)0..1Contexte.
authoredOndateTime0..1Date de création.
authorReference(Device | Practitioner | PractitionerRole)0..1Auteur.
instantiatesCanonicalcanonical(PlanDefinition)[]0..*Protocole instancié.
basedOnReference(Any)[]0..*Demandes parentes.
actionBackboneElement[]0..*Actions composant l'orchestration.

Actions, conditions, relations

Chaque action peut porter une resource cible (MedicationRequest, ServiceRequest, Task…) ou être un nœud groupant (action.action[] récursif). Les condition[] définissent quand l'action s'applique (CQL ou FHIRPath). Les relatedAction[] définissent des dépendances temporelles (before-start, after-end, concurrent) avec offsets.

Exemple JSON

Protocole post-opératoire avec antalgie systématique et bilan biologique conditionnel :

json requestorchestration-postop.json
{
  "resourceType": "RequestOrchestration",
  "id": "post-op-protocol-001",
  "status": "active",
  "intent": "order",
  "priority": "routine",
  "subject": { "reference": "Patient/doe-john" },
  "encounter": { "reference": "Encounter/enc-postop-001" },
  "authoredOn": "2026-05-15T14:00:00+02:00",
  "author": { "reference": "Practitioner/dr-smith" },
  "action": [
    {
      "title": "Antalgie post-opératoire",
      "description": "Paracétamol 1g PO toutes les 6h pendant 48h",
      "timingTiming": {
        "repeat": { "frequency": 4, "period": 24, "periodUnit": "h", "duration": 48 }
      },
      "resource": { "reference": "MedicationRequest/mr-paracetamol-001" }
    },
    {
      "title": "Bilan biologique J+1",
      "condition": [{
        "kind": "applicability",
        "expression": { "language": "text/cql", "expression": "PatientHasDiabetes" }
      }],
      "relatedAction": [{
        "targetId": "lab-day-1",
        "relationship": "after-end",
        "offsetDuration": { "value": 24, "unit": "h" }
      }],
      "resource": { "reference": "ServiceRequest/sr-nfs-j1" }
    }
  ]
}

Pièges courants

  • Migration depuis R4 RequestGroup — le resourceType a changé. Les anciens RequestGroup R4 doivent être transformés ou backportés.
  • Conditions CQL non évaluables — sans moteur CQL embarqué, les condition sont des descriptions mortes. Préférer FHIRPath pour la portabilité.
  • Cycles dans relatedAction — A après B et B après A = boucle infinie. Le moteur d'exécution doit valider le DAG.
  • Confondre avec Task — RequestOrchestration est statique (la commande), Task est dynamique (l'exécution).
  • Ressources cibles non crééesaction.resource doit pointer vers une ressource existante ; sinon l'orchestration est cassée.

Ressources liées