Para desarrolladores

Datos de medicamentos para agentes de IA: cómo codificar medicamentos con ATC y almacenarlos en FHIR para que un modelo pueda usarlos

Cómo los desarrolladores deben elegir una base de datos de medicamentos para un agente de IA: qué ofrecen los códigos ATC, qué cubre un subconjunto de terminología agrupada y qué no (sin interacciones), cómo se estructuran MedicationStatement y MedicationAdministration, y cómo un agente lee y propone medicamentos a través de la Plataforma Anpheros.

por Publicado 5 min de lectura

Un agente de IA que lee "Nolvadex 20 mg por la mañana" necesita saber que se trata de tamoxifeno, un antiestrógeno, ATC L02BA01, y que es una dosis oral diaria, no una dosis única. De dónde proviene ese conocimiento y cómo se almacena el medicamento para que el próximo sistema lo lea de la misma manera, es la verdadera pregunta detrás de "qué base de datos de medicamentos debo usar". Esta guía responde a esa pregunta para la Plataforma Anpheros y es honesta sobre lo que la plataforma proporciona y lo que no.

Versión técnica para desarrolladores: Datos de medicamentos para agentes de IA · Sistemas de códigos FHIR en developers.anpheros.com, con solicitudes, respuestas y límites. Esta página es la versión en lenguaje sencillo.

Códigos primero: ATC

La clasificación Anatómica Terapéutica Química de la OMS otorga a cada sustancia activa un código organizado por lo que actúa y lo que hace: C09AA02 es enalapril (C cardiovascular, C09 renina-angiotensina, C09AA inhibidores de la ECA). ATC es gratuito, internacional y estable, por lo que Anpheros codifica cada medicamento con él. El nombre del producto permanece en code.text, para que la persona siga viendo "Nolvadex" y el agente vea L02BA01.

Lo que ATC no te da: formas de dosificación, tamaños de envase, identificadores nacionales de productos, precios o interacciones. Esos son específicos de cada país y a menudo tienen licencia. Un agente que los necesita requiere una segunda fuente.

Lo que proporciona la plataforma

  • Un subconjunto de ATC empaquetado para búsqueda, suficiente para los medicamentos que las personas en Europa realmente toman, con nombres para mostrar, buscable en GET /v1/terminology/atc?q= y por código en GET /v1/terminology/atc/{code}. El mismo subconjunto respalda la herramienta MCP lookup_code. Un código fuera del subconjunto aún puede usarse en un recurso; la búsqueda simplemente no tiene una visualización para él.
  • Un subconjunto de LOINC empaquetado para mediciones y resultados de laboratorio, con los mismos puntos finales bajo /v1/terminology/loinc.
  • Recursos FHIR con la forma correcta: MedicationStatement para el plan de tratamiento (lo que la persona toma, desde cuándo, con qué frecuencia), MedicationAdministration para cada dosis tomada, vinculada a su declaración, Immunization con códigos de vacunas ATC J07, y AllergyIntolerance con ATC para alergias a medicamentos.

Lo que la plataforma no proporciona: una base de datos completa de medicamentos, verificación de interacciones, verificación de rangos de dosis o soporte de decisiones clínicas. Esos están deliberadamente fuera, porque harían de la plataforma un dispositivo médico. Si tu agente los necesita, utiliza un servicio con licencia y mantén la plataforma como el registro.

Cómo un agente lee los medicamentos

La API de contexto devuelve medicamentos activos con su código ATC, texto, dosificación y procedencia (quién lo ingresó: el paciente, un profesional, una importación), dentro de un presupuesto de tokens, para que el modelo vea una lista limpia en lugar de una pila de recursos. A través de MCP, lo mismo es get_patient_context, y search_fhir con MedicationStatement?patient=…&status=active proporciona los recursos brutos.

curl "$BASE/v1/patients/$PID/medications?status=active" -H "Authorization: Bearer $TOKEN"

Cómo un agente escribe medicamentos

No escribe, propone. Una MedicationStatement enviada por una aplicación registrada como agente de IA, bajo el consentimiento de la persona, se valida y se mantiene como una propuesta. La persona ve "El Asistente X quiere agregar tamoxifeno 20 mg diarios", acepta o rechaza, y solo una propuesta aceptada entra en el registro, marcada como escrita por IA. El agente debe enviar el código ATC cuando esté seguro, y el nombre del producto en code.text siempre; un texto legible por humanos sin código aún se acepta y se puede codificar más tarde.

Antes de enviar, validate_fhir_resource (o POST /fhir/R4/MedicationStatement/$validate) le dice al agente si el recurso está bien formado, para que nunca se le pida a la persona que apruebe algo mal formado.

Elegir una segunda fuente, si la necesitas

Si el agente debe responder "¿esto interactúa con aquello?", elige una fuente por país (los datos de interacción y los identificadores de productos difieren) y por licencia (la mayoría son comerciales). Conserva el resultado como tu propia anotación, no como un recurso en el registro de la persona, a menos que un médico lo confirme. El registro debe contener lo que se tomó; la capa de asesoramiento es tuya.

Preguntas frecuentes

¿Anpheros tiene una base de datos completa de medicamentos?

No. Tiene un subconjunto de ATC empaquetado para codificación y búsqueda, y almacena medicamentos como recursos FHIR con códigos ATC. No se incluyen interacciones, comprobaciones de dosis ni catálogos nacionales de productos.

¿Por qué ATC en lugar de RxNorm o una lista nacional?

ATC es internacional y gratuito, lo que es importante para un registro que sigue a una persona a través de las fronteras. RxNorm está centrado en EE. UU.; las listas nacionales se detienen en la frontera. Una aplicación puede agregar una segunda codificación (por ejemplo, un código de producto nacional) junto a la de ATC en el mismo recurso.

¿Puede un agente agregar un medicamento al registro de una persona?

Solo como una propuesta que la persona aprueba. Nada de lo que envía un agente de IA se aplica sin esa aprobación.

¿Cómo sabe el agente quién ingresó un medicamento?

Cada elemento en la API de contexto lleva author_type y una fuente, y cada recurso tiene una Provenance. Un medicamento ingresado por un profesional y uno escrito por el paciente se ven diferentes para el modelo, que es el objetivo.

¿Hay alguna forma gratuita de probar esto?

Sí: el sandbox es gratuito y sus 30 pacientes sintéticos tienen medicamentos realistas codificados con ATC. Consulta Servidor FHIR gratuito: el sandbox.

Esta guía es informativa y no sustituye la consulta médica. Para decisiones sobre tu salud, habla con tu médico. En una emergencia, llama al 112.
Sobre el autor
Adrian Kereky

Fundador de Anpheros. Ingeniero electrónico, trabajó seis años en conducción autónoma, en proyectos de automoción realizados en colaboración con Samsung y NVIDIA, en la arquitectura de sistemas de asistencia a la conducción y de IA que funcionan en chips NVIDIA con CUDA. Después construyó Anpheros: el historial médico controlado por el paciente y la plataforma HL7 FHIR R4 en la que funciona.

Más sobre Anpheros y el autor →

Lleva tu historial médico contigo

Anpheros Daily guarda síntomas, análisis, medicamentos y documentos en un solo lugar, en formato estándar y bajo tu control. El plan Basic es gratuito.

Descargar Anpheros Daily