|
5 min de lecture
|

Syndication par flux Atom dans Termbox

Résumer cet article avec :
ChatGPTPerplexityClaudeGrok

Le contenu de Terminology dans les écosystèmes de santé est intrinsèquement fragmenté et hétérogène. Pour un réseau hospitalier, une autorité sanitaire nationale ou un HIE régional, s'assurer que tous les participants travaillent à partir d'une Terminology cohérente et uniforme représente un défi opérationnel de taille.

Le contenu est diversifié :

  • Maintenu par différentes organisations, soumises à des exigences légales distinctes.
  • Avec des cycles de publication, de mise à jour et de gestion des versions différents.
  • Formaté et distribué sous diverses formes : guides d'implémentation (IG), ressources FHIR autonomes, formats binaires propriétaires, formats de distribution disparates (RF2, RRF, CSV, etc.), paquets npm FHIR, etc.

Les clients du contenu ont certains besoins généraux :

  • Rester à jour : recevoir le nouveau contenu publié aussi rapidement que possible.
  • Dépendance minimale : sélectionner uniquement les terminologies et les versions dont ils ont besoin.
  • Exactitude et complétude : s'assurer que les données de Terminology sont complètes et correctes conformément à l'interprétation définie dans les guides et les normes.
  • Reproductibilité : amener le serveur de terminologie à un état précis de manière cohérente et prévisible.
  • Agilité opérationnelle : s'assurer que le changement d'état s'effectue dans le délai le plus court possible et avec une utilisation optimale des ressources.

Effort communautaire FHIR

Pour répondre à ces besoins, les serveurs de terminologie ont adopté un mécanisme de syndication de contenu basé sur le format de syndication Atom RFC-4287. Bien que ce mécanisme soit présent dans l'écosystème de santé depuis un certain temps, aucun effort formel de standardisation au sein de FHIR n'avait été entrepris jusqu'à récemment. Cela a conduit à des implémentations privées et à l'introduction de fonctionnalités propriétaires par les fournisseurs de serveurs. En mai 2026, un effort formel de standardisation a été lancé, couvrant non seulement la terminologie, mais la distribution de contenu FHIR en général.

Ce sujet est encore en cours de développement. L'équipe Termbox vise à participer activement à la définition de cette norme et à enrichir la discussion avec les cas d'utilisation de nos clients et les défis rencontrés lors de l'implémentation de la prise en charge de la syndication par flux Atom.

Chargement de contenu dans Termbox

Le chargement du contenu de Terminology dans Termbox est déclaratif, basé sur un fichier de définition data.yaml. Ce fichier est destiné à être versionné et représente l'état du serveur de terminologie. Ce mécanisme simplifie la gestion des opérations, assure la reproductibilité de la plateforme et fournit une manière déclarative de spécifier les terminologies dont dépend une instance Termbox. Termbox vise à s'intégrer facilement dans les pipelines, permettant le versionnage d'une instance Termbox dans Git. Plusieurs types de sources de terminologie sont pris en charge : les paquets NPM, les terminologies pré-indexées et organisées, les ressources FHIR autonomes, et la syndication par flux Atom.

Prise en charge du flux Atom par Termbox

La syndication par flux Atom a été mise au point par Ontoserver, et Termbox est parmi les premiers serveurs de terminologie à la prendre en charge, en y ajoutant ses propres contributions par rapport à la spécification de base.

L'une de ces fonctionnalités est le filtrage. Les flux de syndication peuvent contenir des centaines d'entrées couvrant des dizaines de terminologies et de versions. Termbox permet la sélection d'entrées, aussi bien par liste blanche que par liste noire, ainsi que la correspondance par caractère générique pour les versions, telle que définie dans la spécification FHIR, de manière déclarative — voir l'exemple ci-dessous.

Termbox implémente également un mode sync. Les instances de serveur de terminologie évoluent au fil du temps lorsque les clients installent des paquets, créent des ressources, suppriment du contenu, etc. Les serveurs de terminologie parents retirent du contenu au fur et à mesure, supprimant des paquets, des versions, etc. Termbox permet de spécifier l'option sync: true dans le fichier data.yaml, ce qui indique à Termbox de se synchroniser complètement avec le serveur de syndication, en ne conservant que les terminologies déclarées. Cette fonctionnalité économise de l'espace disque et assure la cohérence du serveur de terminologie.

Exemple : inclure uniquement l'édition SNOMED UK et la version 4.0 de ICD-10-UK

sync: true
sources:
  - type: atom
    feed: https://ontology.nhs.uk/production1/synd/syndication.xml
    auth:
      type: client_credentials
      client_id_env: NHS_CLIENT_ID
      client_secret_env: NHS_SECRET
      token_url: https://ontology.nhs.uk/authorisation/auth/realms/nhs-digital-terminology/protocol/openid-connect/token
    include:
      - url: http://snomed.info/sct
        version: http://snomed.info/sct/83821000000107
      - url: http://hl7.org/fhir/sid/icd-10-uk
        version: '4.0'

Ingestion en flux continu à grande échelle

L'intégration avec un serveur de syndication de contenu présente certains défis. L'un d'eux est la taille des ressources FHIR. FHIR ne dispose toujours pas d'un format de distribution favorable à la diffusion en continu 1, ce qui rend les grands fichiers JSON courants. En raison de la nature même du format JSON, l'ingestion d'un grand CodeSystem comme dm+d (394 Mo) entraîne une utilisation excessive de la mémoire vive, qui s'accroît à mesure que davantage de CodeSystems doivent être ingérés. Termbox implémente un mécanisme d'ingestion de ressources FHIR en flux continu, optimisé pour une faible utilisation de la mémoire vive, indépendamment du nombre de ressources FHIR à ingérer ou de leur taille. Termbox optimise également le temps de chargement des grandes terminologies, comme SNOMED, LOINC et RxNorm.

Pour explorer tout ce que Termbox offre, le guide de démarrage rapide constitue un point d'entrée rapide, et le chargement de contenu est documenté en détail dans Chargement des données.

Footnotes

  1. La communauté FHIR a commencé à discuter de propositions pour des formats de distribution favorables à la diffusion en continu. Nous explorerons ce sujet dans de futurs articles.

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

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