|
3 min de lecture
|

Comment résoudre les conflits de codes dans les SearchParameters FHIR

Résumer cet article avec :
ChatGPTPerplexityClaudeGrok

Qu'est-ce que le code d'un SearchParameter?

Dans FHIR, SearchParameter est une ressource qui définit la façon dont les recherches peuvent être effectuées sur d'autres ressources FHIR. Elle précise les paramètres pouvant être utilisés dans une requête de recherche et la manière dont ces paramètres se rapportent aux éléments d'une ressource FHIR.

SearchParameter.code, en particulier, définit le nom du paramètre de recherche dont l'utilisation est recommandée dans l'URL.

Par exemple, le SearchParameter Patient-name issu de la spécification FHIR de base possède

"code" : "name"

ce qui signifie que tout serveur FHIR devrait être en mesure d'exécuter la recherche suivante :

GET /fhir/Patient?name=John

et retourner les résultats appropriés.

Quels SearchParameters sont disponibles dans un serveur FHIR?

Selon la spécification FHIR, un serveur FHIR devrait prendre en charge les SearchParameters suivants :

  • Tous les SearchParameters définis par la spécification FHIR de base.
  • Les SearchParameters définis de manière externe. La plupart des serveurs FHIR : offrent la possibilité de définir les IGs pris en charge (ce qui signifie généralement que tous les SearchParameters de l'IG seront disponibles dans le serveur FHIR)
  • Offrent la possibilité de définir des SearchParameters directement, par exemple en créant des ressources SearchParameter

Aidbox, en particulier, permet :

Est-il possible qu'un conflit survienne entre deux SearchParameters ayant le même code?

Absolument!

Si vous prévoyez utiliser plusieurs guides d'implémentation (IGs) dans votre serveur FHIR, vous pourriez trouver des paramètres en conflit entre différents IGs; par exemple, 86 % des paramètres de recherche définis dans le US Core Implementation Guide possèdent un paramètre dont le code est identique à celui de la spécification FHIR de base pour la même ressource.

Et bien entendu, si vous créez des SearchParameters personnalisés dans votre serveur FHIR, rien ne vous empêchera très probablement de créer des SearchParameters dont les codes sont déjà utilisés dans les paramètres de recherche FHIR standard ou dans d'autres paramètres de recherche définis de manière externe.

Comment ce conflit devrait-il être résolu selon la spécification FHIR?

https://hl7.org/fhir/searchparameter-definitions.html#SearchParameter.code

SearchParameter.code

Element Id
SearchParameter.code
Definition
The label that is recommended to be used in the URL or the parameter name in a parameters resource for this search parameter. In some cases, servers may need to use a different CapabilityStatement searchParam.name to differentiate between multiple SearchParameters that happen to have the same code.

https://build.fhir.org/capabilitystatement-definitions.html#CapabilityStatement.rest.resource.searchParam.name

CapabilityStatement.rest.resource.searchParam.name

Element Id
CapabilityStatement.rest.resource.searchParam.name
Definition
The label used for the search parameter in this particular system's API - i.e. the 'name' portion of the name-value pair that will appear as part of the search URL. This SHOULD be the same as the SearchParameter.code of the defining SearchParameter. However, it can sometimes differ if necessary to disambiguate when a server supports multiple SearchParameters that happen to share the same code

Lorsqu'il existe plusieurs SearchParameters portant le même code, le serveur FHIR doit résoudre le conflit et déterminer quel SearchParameter sera responsable du traitement de la requête; cela doit être reflété dans le Capability Statement du serveur — le CapabilityStatement.rest.resource.searchParam.name doit être unique dans le contexte de la ressource.

Que faire dans de telles situations dans Aidbox?

Situation actuelle À l'heure actuelle, Aidbox utilise SearchParameter.name comme étiquette d'URL au lieu de SearchParameter.code pour tous les SearchParameters, qu'il y ait un conflit ou non; par exemple, le SearchParameter USCorePatientName est utilisé dans la requête suivante :

GET /fhir/Patient?USCorePatientName=John

Prochaines étapes

Nous souhaitons fournir dans Aidbox une méthode de configuration claire et flexible permettant de spécifier quel SearchParameter traitera les recherches pour une étiquette donnée.

La configuration sera accessible en cours d'exécution via l'API REST et dans l'interface utilisateur grâce à la ressource de configuration personnalisée que nous comptons introduire.

Nous utiliserons cette approche pour gérer tous les cas d'utilisation similaires (profils par défaut pour la validation des ressources, opérations avec des noms non uniques, etc.).

Restez à l'affût pour découvrir ce que nous pourrons accomplir dans l'une des prochaines versions!

Aidbox offre des licences de développement gratuites, vous permettant de concrétiser vos idées FHIR sans contrainte d'expiration. Ces licences sont idéales pour appliquer ces configurations, expérimenter avec FHIR, participer à des Connectathons FHIR et réaliser des preuves de concept (POC), avec une limite de taille de base de données de 5 Go. Commencer avec Aidbox

Voir aussi : Nouveau navigateur de ressources et Feuille de route Aidbox 2025.

Partager cet article
Comments
Comments
Sign in
Loading comments...
Subscribe to our blog

Get the latest articles on FHIR, interoperability, and healthcare IT.