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.

EventDefinition — détail : triggers CDS

Définition réutilisable d'un trigger : nommé, partagé entre PlanDefinition, Subscription, CDS Hooks. Pierre angulaire de l'orchestration clinique évènementielle.

Rôle des triggers nommés

EventDefinition publie un trigger comme une fonction CQL exportable : nom canonique, condition, filtre. Plusieurs PlanDefinition peuvent référencer le même EventDefinition au lieu de redupliquer la logique trigger. Idem pour les Subscriptions : on s'abonne à l'EventDefinition, et toute modification du trigger se propage.

Champs clés

ChampCardinalitéRôle
url0..1URL canonique pour référencement croisé.
version0..1Version sémantique.
status1..1draft | active | retired | unknown.
trigger1..*Définition(s) TriggerDefinition.

Type TriggerDefinition

Sous-types TriggerDefinition.type :

  • named-event — évènement nommé arbitraire.
  • periodic — déclenchement temporel régulier.
  • data-changed — toute modif sur le data point.
  • data-added, data-modified, data-removed.
  • data-accessed, data-access-ended.

Exemple : admission ICU

json eventdefinition-icu-admission.json
{
  "resourceType": "EventDefinition",
  "id": "icu-admission-event",
  "url": "http://example.org/fhir/EventDefinition/icu-admission",
  "version": "1.0.0",
  "name": "ICUAdmissionEvent",
  "title": "ICU Admission Event",
  "status": "active",
  "experimental": false,
  "date": "2026-05-18",
  "publisher": "Hospital CDS Team",
  "description": "Triggered when an Encounter with class=ICU is created or updated to active.",
  "trigger": [{
    "type": "named-event",
    "name": "encounter-icu-active",
    "data": [{
      "type": "Encounter",
      "codeFilter": [{
        "path": "class",
        "code": [{
          "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
          "code": "ACUTE"
        }]
      }]
    }],
    "condition": {
      "language": "text/fhirpath",
      "expression": "Encounter.status = 'in-progress' and Encounter.serviceType.coding.exists(code = 'ICU')"
    }
  }]
}

Pièges courants

  • Pas de condition FHIRPath — un EventDefinition trop large déclenche du bruit massif sur les Subscriptions.
  • URL canonique mutable — l'URL ne doit pas changer entre versions ; utiliser version.
  • Confusion avec MessageHeader.event — MessageHeader.event décrit un évènement réseau, EventDefinition.trigger décrit une règle CDS.

Ressources liées