|
5 min de lectura
|

Sindicación mediante fuente Atom en Termbox

Resumir este artículo con:
ChatGPTPerplexityClaudeGrok

El contenido terminológico en los ecosistemas sanitarios es intrínsecamente fragmentado y heterogéneo. Para una red hospitalaria, una autoridad sanitaria nacional o un HIE regional, garantizar que todos los participantes trabajen con la misma terminología coherente supone un desafío operativo considerable.

El contenido es diverso:

  • Mantenido por distintas organizaciones, con diferentes requisitos legales.
  • Con distintos ciclos de publicación y actualización, así como estrategias de versionado.
  • Distribuido en diferentes formatos y variantes: guías de implementación (IGs), recursos FHIR independientes, formatos binarios propietarios, formatos de distribución dispares (RF2, RRF, CSV, etc.), paquetes npm de FHIR, etc.

Los clientes de contenido tienen algunas necesidades generales:

  • Mantenerse actualizados: recibir el contenido recién publicado lo antes posible.
  • Dependencia mínima: seleccionar únicamente las terminologías y versiones de las que dependen.
  • Exactitud e integridad: garantizar que los datos terminológicos sean completos y correctos según la interpretación definida en las guías y estándares.
  • Reproducibilidad: llevar el servidor de terminología a un estado concreto de forma consistente y predecible.
  • Agilidad operativa: garantizar que el cambio de estado se produzca en el menor tiempo posible y con el uso más óptimo de los recursos.

Esfuerzo de la comunidad FHIR

Para abordar estas necesidades, los servidores de terminología han adoptado un mecanismo de sindicación de contenido basado en The Atom Syndication Format RFC-4287. Aunque este mecanismo lleva tiempo presente en el ecosistema sanitario, hasta hace poco no existía ningún esfuerzo formal de estandarizarlo dentro de FHIR. Esto ha dado lugar a implementaciones privadas y a la introducción de características propietarias por parte de los proveedores de servidores. En mayo de 2026 se inició un esfuerzo formal de estandarización que abarca no solo la terminología, sino la distribución de contenido FHIR en general.

Este tema sigue en desarrollo. El equipo de Termbox tiene como objetivo participar activamente en la definición de este estándar y enriquecer el debate con los casos de uso de nuestros clientes y los desafíos a los que nos hemos enfrentado al implementar la compatibilidad con la sindicación mediante fuente Atom.

Carga de contenido en Termbox

La carga de contenido terminológico en Termbox es declarativa y se basa en un archivo de definición data.yaml. Este archivo está pensado para versionarse y representa el estado del servidor de terminología. Este mecanismo simplifica la gestión operativa, garantiza la reproducibilidad de la plataforma y proporciona una forma declarativa de especificar las terminologías de las que depende una instancia de Termbox. Termbox está diseñado para integrarse fácilmente en pipelines, lo que permite versionar una instancia de Termbox en Git. Se admiten múltiples tipos de fuentes de terminología: paquetes NPM, terminologías preindexadas y curadas, recursos FHIR independientes y sindicación mediante fuente Atom.

Compatibilidad de Termbox con la fuente Atom

La sindicación mediante fuente Atom fue pionera en Ontoserver, y Termbox se encuentra entre los primeros servidores de terminología en admitirla, aportando sus propias incorporaciones sobre la especificación base.

Una de estas características es el Filtrado. Las fuentes de sindicación pueden contener cientos de entradas que abarcan docenas de terminologías y versiones. Termbox permite la selección de entradas, tanto en lista blanca como en lista negra, y la concordancia de versiones con comodines tal como se define en la especificación FHIR, de forma declarativa. Véase el ejemplo a continuación.

Termbox también implementa un modo sync. Las instancias del servidor de terminología cambian a medida que los clientes instalan paquetes, crean recursos, eliminan contenido, etc. Los servidores de terminología padre retiran contenido a medida que avanzan, eliminando paquetes, versiones, etc. Termbox permite especificar la opción sync: true en el archivo data.yaml, lo que indica a Termbox que se sincronice completamente con el servidor de sindicación, conservando únicamente las terminologías declaradas. Esta característica ahorra espacio en disco y garantiza la coherencia del servidor de terminología.

Ejemplo: incluir únicamente la edición UK de SNOMED y la versión 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'

Ingesta en streaming a escala

Existen algunos desafíos que superar al integrarse con un servidor de sindicación de contenido. Uno de ellos es el tamaño de los recursos FHIR. FHIR todavía no dispone de un formato de distribución compatible con streaming 1, por lo que los JSON de gran tamaño son habituales. Debido a la propia naturaleza del formato JSON, la ingesta de un CodeSystem de gran tamaño como dm+d (394 MB) implica un uso excesivo de RAM, que escala a medida que se necesita ingerir más CodeSystems. Termbox implementa un mecanismo de ingesta de recursos FHIR en streaming, optimizado para un uso reducido de RAM, independientemente de la cantidad de recursos FHIR que se ingieran o del tamaño de dichos recursos. Termbox también optimiza el tiempo necesario para cargar terminologías de gran tamaño, como SNOMED, LOINC y RxNorm.

Para explorar todo lo que ofrece Termbox, la guía de inicio rápido es un punto de entrada ágil, y la carga de contenido está documentada en profundidad en Loading Data.

Footnotes

  1. La comunidad FHIR ha comenzado a debatir propuestas de formatos de distribución compatibles con streaming. Exploraremos este tema en artículos futuros.

Compartir este artículo
Comments
Comments
Sign in
Loading comments...
Subscribe to our blog

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