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.

SearchParameter — Découverte des recherches FHIR

Toute requête de recherche FHIR (GET /Patient?birthdate=ge2020) repose sur un SearchParameter. La ressource décrit ce qu'est un paramètre, son nom HTTP, son type, et son expression FHIRPath sur la ressource cible.

Objet de la ressource

Le core spec FHIR définit environ 1 500 SearchParameter standards (par exemple Patient.birthdate, Observation.code, Encounter.subject). Chacun a un code court (le nom dans l'URL) et une expression FHIRPath qui pointe vers le ou les éléments indexés.

Un serveur peut étendre les paramètres standard en publiant des SearchParameter personnalisés (typiquement dans un Implementation Guide), ou en restreindre la liste via la CapabilityStatement.

Champs clés

ChampTypeCardinalitéRôle
urluri1..1Obligatoire. URL canonique.
namestring1..1Nom machine.
statuscode1..1État de publication.
codecode1..1Code HTTP utilisé dans l'URL (birthdate dans ?birthdate=...).
basecode[]1..*Types de ressource auxquels s'applique le paramètre.
typecode1..1Type de recherche (voir liste).
expressionstring0..1FHIRPath du nœud indexé.
processingModecode0..1normal, phonetic, other. R5 (auparavant xpathUsage).
targetcode[]0..*Pour les paramètres reference : types cibles autorisés.
multipleOrboolean0..1Plusieurs valeurs combinables avec , ?
multipleAndboolean0..1Paramètre répétable dans l'URL avec ET implicite ?
comparatorcode[]0..*Comparateurs autorisés (eq, gt, lt…).
modifiercode[]0..*Modifiers autorisés (:exact, :contains, :not…).
chainstring[]0..*Chaining autorisé sur ce paramètre.
componentBackboneElement[]0..*Pour les paramètres composites multi-éléments.

Types de SearchParameter

TypeSémantiqueExemple
numberNombreObservation?value-quantity=ge5
dateDate / dateTime / PeriodPatient?birthdate=ge1980
stringChaîne (préfixe par défaut)Patient?family=Dupont
tokensystem|code, identifiantPatient?identifier=urn:oid:1.2|MRN123
referenceRéférence vers une autre ressourceObservation?patient=Patient/123
compositeCombinaison de plusieurs paramètresObservation?code-value-quantity=8480-6$ge140
quantityValeur + unitéObservation?value-quantity=5.4|http://unitsofmeasure.org|mg
uriURL canonique ou URIValueSet?url=http://hl7.org/fhir/ValueSet/...
specialComportement spécialLocation?near=43.6|7.04|10|km

Exemple JSON

SearchParameter canonique Patient.birthdate :

json searchparameter-birthdate.json
{
  "resourceType": "SearchParameter",
  "id": "Patient-birthdate",
  "url": "http://hl7.org/fhir/SearchParameter/Patient-birthdate",
  "version": "5.0.0",
  "name": "birthdate",
  "status": "active",
  "experimental": false,
  "date": "2026-05-14",
  "publisher": "HL7 (FHIR Project)",
  "description": "The patient's date of birth",
  "code": "birthdate",
  "base": ["Patient"],
  "type": "date",
  "expression": "Patient.birthDate",
  "xpath": "f:Patient/f:birthDate",
  "xpathUsage": "normal",
  "comparator": ["eq", "ne", "gt", "ge", "lt", "le", "sa", "eb", "ap"]
}

Pièges courants

  • Expression FHIRPath invalide — un serveur ne pourra indexer que si l'expression résout un nœud valide sur la base de la StructureDefinition.
  • Confusion code vs name — le code est l'identifiant HTTP utilisé dans l'URL, name est le nom machine.
  • SearchParameter dupliqué côté serveur — deux SP avec le même code sur la même base mais expressions différentes : comportement indéterminé.
  • Recherche sur expression non indexable — un FHIRPath qui contient des conditionnels lourds (where, iif) peut ne pas être indexable : certains serveurs refusent.
  • Modifiers non supportés — un client qui utilise :contains ou :exact doit vérifier le support déclaré dans la CapabilityStatement.

Ressources liées

  • CapabilityStatement — liste les SearchParameter actifs par type de ressource.
  • StructureDefinition — la cible des expressions FHIRPath.
  • ImplementationGuide — package des SearchParameter custom.