Définition de paramètres de recherche personnalisés pour l’API Azure pour FHIR
La spécification FHIR® (Fast Healthcare Interoperability Resources) définit un ensemble de paramètres de recherche pour toutes les ressources et paramètres de recherche spécifiques à une ou plusieurs ressources. Toutefois, il existe des scénarios dans lesquels vous pouvez effectuer une recherche sur un élément d’une ressource qui n’est pas défini par la spécification FHIR en tant que paramètre de recherche standard. Cet article explique comment définir vos propres paramètres de recherche à utiliser dans l’API Azure pour FHIR.
Notes
Chaque fois que vous créez, mettez à jour ou supprimez un paramètre de recherche, vous devez exécuter un travail de réindexation pour permettre l’utilisation du paramètre de recherche en production. Ci-dessous, nous allons décrire comment tester les paramètres de recherche avant de réindexer l’ensemble du serveur FHIR.
Créer un paramètre de recherche
Pour créer un paramètre de recherche, vous POST
êtes la SearchParameter
ressource de la base de données. L’exemple de code ci-dessous montre comment ajouter l’US Core Race SearchParameter à la Patient
ressource.
POST {{FHIR_URL}}/SearchParameter
{
"resourceType" : "SearchParameter",
"id" : "us-core-race",
"url" : "http://hl7.org/fhir/us/core/SearchParameter/us-core-race",
"version" : "3.1.1",
"name" : "USCoreRace",
"status" : "active",
"date" : "2019-05-21",
"publisher" : "US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "other",
"value" : "http://www.healthit.gov/"
}
]
}
],
"description" : "Returns patients with a race extension matching the specified code.",
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US",
"display" : "United States of America"
}
]
}
],
"code" : "race",
"base" : [
"Patient"
],
"type" : "token",
"expression" : "Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race').extension.value.code"
}
Notes
Le nouveau paramètre de recherche s’affiche dans l’instruction de capacité du serveur FHIR une fois que vous POSTez le paramètre de recherche dans la base de données et réindexez votre base de données. L’affichage de dans SearchParameter
l’instruction de capacité est la seule façon de savoir si un paramètre de recherche est pris en charge dans votre serveur FHIR. Si vous pouvez trouver le paramètre de recherche en recherchant le paramètre de recherche, mais que vous ne le voyez pas dans l’instruction de capacité, vous devez toujours indexer le paramètre de recherche. Vous pouvez PUBLIER plusieurs paramètres de recherche avant de déclencher une opération de réindexation.
Éléments importants d’un SearchParameter
:
url : clé unique pour décrire le paramètre de recherche. De nombreuses organisations, telles que HL7, utilisent un format d’URL standard pour les paramètres de recherche qu’elles définissent, comme indiqué ci-dessus dans le paramètre de recherche par race US Core.
code : la valeur stockée dans le code est celle que vous utiliserez lors de la recherche. Pour l’exemple ci-dessus, vous recherchez avec
GET {FHIR_URL}/Patient?race=<code>
pour obtenir tous les patients d’une race spécifique. Le code doit être unique pour la ou les ressources à laquelle le paramètre de recherche s’applique.base : décrit la ou les ressources auxquelles le paramètre de recherche s’applique. Si le paramètre de recherche s’applique à toutes les ressources, vous pouvez utiliser
Resource
; sinon, vous pouvez répertorier toutes les ressources pertinentes.type : décrit le type de données du paramètre de recherche. Le type est limité par la prise en charge de l’API Azure pour FHIR. Cela signifie que vous ne pouvez pas définir un paramètre de recherche de type Special ou définir un paramètre de recherche composite , sauf s’il s’agit d’une combinaison prise en charge.
expression : décrit comment calculer la valeur de la recherche. Lorsque vous décrivez un paramètre de recherche, vous devez inclure l’expression, même si elle n’est pas requise par la spécification. Cela est dû au fait que vous avez besoin de l’expression ou de la syntaxe xpath et que l’API Azure pour FHIR ignore la syntaxe xpath.
Paramètres de recherche de test
Bien que vous ne puissiez pas utiliser les paramètres de recherche en production tant que vous n’avez pas exécuté un travail de réindexation, il existe plusieurs façons de tester vos paramètres de recherche avant de réindexer l’ensemble de la base de données.
Tout d’abord, vous pouvez tester votre nouveau paramètre de recherche pour voir quelles valeurs seront retournées. En exécutant la commande ci-dessous sur une instance de ressource spécifique (en entrant leur ID), vous obtenez une liste de paires de valeurs avec le nom du paramètre de recherche et la valeur stockée pour le patient spécifique. Cela inclut tous les paramètres de recherche de la ressource et vous pouvez faire défiler pour rechercher le paramètre de recherche que vous avez créé. L’exécution de cette commande ne modifie aucun comportement dans votre serveur FHIR.
GET https://{{FHIR_URL}}/{{RESOURCE}}/{{RESOUCE_ID}}/$reindex
Par exemple, pour rechercher tous les paramètres de recherche d’un patient :
GET https://{{FHIR_URL}}/Patient/{{PATIENT_ID}}/$reindex
Le résultat aura l’aspect suivant :
{
"resourceType": "Parameters",
"id": "8be24e78-b333-49da-a861-523491c3437a",
"meta": {
"versionId": "1"
},
"parameter": [
{
"name": "deceased",
"valueString": "http://hl7.org/fhir/special-values|false"
},
{
"name": "language",
"valueString": "urn:ietf:bcp:47|en-US"
},
{
"name": "race",
"valueString": "2028-9"
},
...
Une fois que vous voyez que votre paramètre de recherche s’affiche comme prévu, vous pouvez réindexer une ressource unique pour tester la recherche avec l’élément. Tout d’abord, vous allez réindexer une seule ressource :
POST https://{{FHIR_URL}/{{RESOURCE}}/{{RESOURCE_ID}}/$reindex
En exécutant cette opération, définit les index pour tous les paramètres de recherche pour la ressource spécifique que vous avez définie pour ce type de ressource. Cela effectue une mise à jour du serveur FHIR. À présent, vous pouvez rechercher et définir l’en-tête utiliser des index partiels sur true, ce qui signifie qu’il retourne des résultats là où l’une des ressources a le paramètre de recherche indexé, même si toutes les ressources de ce type ne l’ont pas indexée.
En suivant notre exemple ci-dessus, vous pouvez indexer un patient pour activer la course US Core :SearchParameter
POST https://{{FHIR_URL}/Patient/{{PATIENT_ID}}/$reindex
Puis recherchez les patients qui ont une race spécifique :
GET https://{{FHIR_URL}}/Patient?race=2028-9
x-ms-use-partial-indices: true
Une fois que vous avez testé et que vous êtes convaincu que votre paramètre de recherche fonctionne comme prévu, exécutez ou planifiez votre travail de réindexation afin que les paramètres de recherche puissent être utilisés dans le serveur FHIR pour les cas d’usage de production.
Mettre à jour un paramètre de recherche
Pour mettre à jour un paramètre de recherche, utilisez PUT
pour créer une nouvelle version du paramètre de recherche. Vous devez inclure le SearchParameter ID
dans l’élément id
du corps de la PUT
demande et dans l’appel PUT
.
Notes
Si vous ne connaissez pas l’ID de votre paramètre de recherche, vous pouvez le rechercher. L’utilisation GET {{FHIR_URL}}/SearchParameter
retourne tous les paramètres de recherche personnalisés, et vous pouvez faire défiler le paramètre de recherche pour trouver le paramètre de recherche dont vous avez besoin. Vous pouvez également limiter la recherche par nom. Avec l’exemple ci-dessous, vous pouvez rechercher un nom à l’aide de USCoreRace: GET {{FHIR_URL}}/SearchParameter?name=USCoreRace
.
PUT {{FHIR_URL}}/SearchParameter/{SearchParameter ID}
{
"resourceType" : "SearchParameter",
"id" : "SearchParameter ID",
"url" : "http://hl7.org/fhir/us/core/SearchParameter/us-core-race",
"version" : "3.1.1",
"name" : "USCoreRace",
"status" : "active",
"date" : "2019-05-21",
"publisher" : "US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "other",
"value" : "http://www.healthit.gov/"
}
]
}
],
"description" : "New Description!",
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US",
"display" : "United States of America"
}
]
}
],
"code" : "race",
"base" : [
"Patient"
],
"type" : "token",
"expression" : "Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race').extension.value.code"
}
Le résultat est une mise à jour SearchParameter
et la version est incrémentée.
Avertissement
Soyez prudent lors de la mise à jour de SearchParameters qui ont déjà été indexés dans votre base de données. La modification du comportement d’un SearchParameter existant peut avoir un impact sur le comportement attendu. Nous vous recommandons d’exécuter immédiatement un travail de réindexation.
Supprimer un paramètre de recherche
Si vous devez supprimer un paramètre de recherche, utilisez les éléments suivants :
Delete {{FHIR_URL}}/SearchParameter/{SearchParameter ID}
Avertissement
Soyez prudent lors de la suppression de SearchParameters qui ont déjà été indexés dans votre base de données. La modification du comportement d’un SearchParameter existant peut avoir un impact sur le comportement attendu. Nous vous recommandons d’exécuter immédiatement un travail de réindexation.
Étapes suivantes
Dans cet article, vous avez appris à créer un paramètre de recherche. Vous pouvez ensuite apprendre à réindexer votre serveur FHIR.
FHIR® est une marque déposée de HL7 utilisé avec l’autorisation de HL7.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour