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.

OperationDefinition — détail : opérations FHIR

Spécification machine-lisible des opérations FHIR ($everything, $validate, $translate, $evaluate-measure...). Permet aux clients de découvrir les capacités avancées du serveur.

Rôle des opérations $-prefixed

Les opérations FHIR sortent du cadre REST pur (GET/POST/PUT/DELETE) pour exposer des fonctions métier transactionnelles : POST /Patient/123/$everything, POST /ConceptMap/$translate. OperationDefinition publie le contrat de ces opérations.

system, type, instance

NiveauURLExemple
system=truePOST /$op$convert (à la racine du serveur)
type=truePOST /[type]/$opPOST /Patient/$match
instance=truePOST /[type]/[id]/$opPOST /Patient/123/$everything

parameters in/out

Chaque opération déclare ses paramètres typés :

  • use=in — entrée.
  • use=out — sortie.
  • min, max — cardinalité.
  • type — type FHIR (string, date, Bundle, ressource).
  • searchType — pour les paramètres de recherche.
  • part — sous-paramètres (paramètres composites).

Exemple : $everything sur Patient

json operationdefinition-patient-everything.json
{
  "resourceType": "OperationDefinition",
  "id": "patient-everything",
  "url": "http://hl7.org/fhir/OperationDefinition/Patient-everything",
  "version": "5.0.0",
  "name": "Everything",
  "title": "Fetch Patient Record",
  "status": "active",
  "kind": "operation",
  "code": "everything",
  "resource": ["Patient"],
  "system": false,
  "type": false,
  "instance": true,
  "parameter": [{
    "name": "start",
    "use": "in",
    "min": 0,
    "max": "1",
    "type": "date",
    "documentation": "The date range relates to care dates, not record currency dates."
  }, {
    "name": "end",
    "use": "in",
    "min": 0,
    "max": "1",
    "type": "date"
  }, {
    "name": "return",
    "use": "out",
    "min": 1,
    "max": "1",
    "type": "Bundle",
    "documentation": "The bundle type is searchset."
  }]
}

Pièges courants

  • kind=query au lieu d'operationquery est pour les recherches paramétrées (alias de search), operation pour les actions effectives.
  • Aucun parameter return — toute opération doit déclarer son out.
  • system/type/instance tous false — au moins un doit être true.
  • URL canonique mutable — l'URL ne doit pas changer entre versions.

Ressources liées