Open loic-brtd opened 4 weeks ago
Hello, petite remarque pour l'export, j'avais bien insisté à @mathieu-decarvalho que pour être conforme au bulk il faut supporter le ndjson, je vois json dans votre extrait https://build.fhir.org/ig/HL7/bulk-data/export.html
Est-ce que l'information vous a bien été transmise ?
Merci pour votre question très détaillée et pertinente! Je comprends bien la problématique. Avez-vous cherché dans le chat zulip ? J'imagine que vous n'êtes pas les seuls à vous poser cette question
En discutant avec @sdemeyANS, on s'est rendu compte d'une nouvelle problématique sur l'utilisation de _count et _offset : si les données exposées sont mises à jour (ex : ajout ou suppression de ressources), les résultats renvoyés par une même requête risque de changer en fonction du moment où la requête est envoyée
Description du problème
L'implémentation actuelle des liens de paginations des API FHIR du ROR national est la suivante :
Un id de requête (ici
156db772-1cec-40e9-a444-e4de54318d97
) est stocké en mémoire lors de la requête initiale, et utilisé pour accéder aux pages suivantes.Cela pose problème lors de la mise en place de réplicas avec load balancing sur ces API (pour permettre une haute disponibilité/une non interruption du service en cas de crash d'une instance de l'API) car cet id n'est stocké dans la mémoire d'une seule instance à la fois.
Solution proposée
Une solution relativement simple serait de rendre l'API stateless, en introduisant un paramètre
_offset
(qui ne fait pas partie de la spec FHIR standard mais supporté par HAPI FHIR) :Les critères de recherche sont répétés dans les liens de pages, évitant de les stocker en mémoire.
Nous avons la même problématique pour les demande d'export (
$export
) :Qui pourrait être transformé ainsi :
Questions
_offset
aux endpoints FHIR ? Doit-il est être documenté dans l'IG ?Si vous avez d'autres retours, n'hésitez pas. C'est un sujet que j'évoquerai aussi sûrement avec notre architecte.
J'ai aussi trouvé ce document PDF qui évoque cette problématique, et les différentes manières dont les API FHIR implémentent la pagination.
Loïc BERTRAND loic.bertrand@atos.net Ingénieur d’études et développement Atos France - Département Est - Metz