Para programadores

Dados de medicamentos para agentes de IA: como codificar medicamentos com ATC e armazená-los em FHIR para que um modelo os possa utilizar

Como os programadores devem escolher uma base de dados de medicamentos para um agente de IA: o que os códigos ATC oferecem, o que um conjunto de terminologia agrupado abrange e o que não abrange (sem interações), como são estruturados MedicationStatement e MedicationAdministration, e como um agente lê e propõe medicamentos através da Plataforma Anpheros.

por Publicado 5 min de leitura

Um agente de IA que lê "Nolvadex 20 mg de manhã" precisa de saber que se trata de tamoxifeno, um antiestrogénio, ATC L02BA01, e que é uma dose oral diária, não uma dose única. De onde vem esse conhecimento e como o medicamento é armazenado para que o próximo sistema o leia da mesma forma, é a verdadeira questão por trás de "qual base de dados de medicamentos devo usar". Este guia responde a essa questão para a Plataforma Anpheros e é honesto sobre o que a plataforma fornece e o que não fornece.

Versão técnica para programadores: Dados de medicamentos para agentes de IA · Sistemas de código FHIR em developers.anpheros.com, com pedidos, respostas e limites. Esta página é a versão em linguagem simples.

Códigos primeiro: ATC

A classificação Anatómica Terapêutica Química da OMS dá a cada substância ativa um código organizado pelo que ela afeta e pelo que faz: C09AA02 é enalapril (C cardiovascular, C09 renina-angiotensina, C09AA inibidores da ECA). O ATC é gratuito, internacional e estável, razão pela qual a Anpheros codifica todos os medicamentos com ele. O nome do produto permanece em code.text, para que a pessoa ainda veja "Nolvadex" e o agente veja L02BA01.

O que o ATC não lhe dá: formas farmacêuticas, tamanhos de embalagem, identificadores nacionais de produtos, preços ou interações. Estes são específicos de cada país e muitas vezes licenciados. Um agente que precise deles necessita de uma segunda fonte.

O que a plataforma fornece

  • Um subconjunto ATC agrupado para consulta, suficiente para os medicamentos que as pessoas na Europa realmente tomam, com nomes de exibição, pesquisável em GET /v1/terminology/atc?q= e por código em GET /v1/terminology/atc/{code}. O mesmo subconjunto suporta a ferramenta MCP lookup_code. Um código fora do subconjunto ainda pode ser usado num recurso; a consulta simplesmente não terá exibição para ele.
  • Um subconjunto LOINC agrupado para medições e resultados de laboratório, com os mesmos pontos de extremidade em /v1/terminology/loinc.
  • Recursos FHIR com a forma correta: MedicationStatement para o plano de tratamento (o que a pessoa toma, desde quando, com que frequência), MedicationAdministration para cada dose tomada, ligada à sua declaração, Immunization com códigos de vacina ATC J07, e AllergyIntolerance com ATC para alergias a medicamentos.

O que a plataforma não fornece: uma base de dados completa de medicamentos, verificação de interações, verificação de intervalos de dose ou suporte à decisão clínica. Estes estão deliberadamente fora, pois tornariam a plataforma um dispositivo médico. Se o seu agente precisar deles, utilize um serviço licenciado e mantenha a plataforma como registo.

Como um agente lê medicamentos

A API de contexto retorna medicamentos ativos com o seu código ATC, texto, dosagem e proveniência (quem o introduziu: o paciente, um profissional, uma importação), dentro de um limite de tokens, para que o modelo veja uma lista limpa em vez de uma pilha de recursos. Através do MCP, o mesmo é get_patient_context, e search_fhir com MedicationStatement?patient=…&status=active fornece os recursos brutos.

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

Como um agente escreve medicamentos

Não escreve; propõe. Uma MedicationStatement enviada por uma aplicação registada como agente de IA, sob o consentimento da pessoa, é validada e mantida como uma proposta. A pessoa vê "O Assistente X quer adicionar tamoxifeno 20 mg diários", aceita ou rejeita, e apenas uma proposta aceite entra no registo, marcada como escrita por IA. O agente deve enviar o código ATC quando estiver confiante, e o nome do produto em code.text sempre; um texto legível por humanos sem código ainda é aceite e pode ser codificado mais tarde.

Antes de enviar, validate_fhir_resource (ou POST /fhir/R4/MedicationStatement/$validate) informa o agente se o recurso está bem formado, para que a pessoa nunca seja solicitada a aprovar algo mal formado.

Escolher uma segunda fonte, se precisar de uma

Se o agente tiver de responder "isto interage com aquilo", escolha uma fonte por país (dados de interação e identificadores de produtos diferem) e por licença (a maioria é comercial). Mantenha o resultado como a sua própria anotação, não como um recurso no registo da pessoa, a menos que um médico o confirme. O registo deve conter o que foi tomado; a camada de aconselhamento é sua.

Perguntas frequentes

A Anpheros tem uma base de dados completa de medicamentos?

Não. Tem um subconjunto ATC agrupado para codificação e consulta, e armazena medicamentos como recursos FHIR com códigos ATC. Interações, verificações de dose e catálogos nacionais de produtos não estão incluídos.

Porquê ATC em vez de RxNorm ou uma lista nacional?

O ATC é internacional e gratuito, o que é importante para um registo que acompanha uma pessoa através das fronteiras. O RxNorm é centrado nos EUA; as listas nacionais param na fronteira. Uma aplicação pode adicionar uma segunda codificação (por exemplo, um código de produto nacional) ao lado do código ATC no mesmo recurso.

Um agente pode adicionar um medicamento ao registo de uma pessoa?

Apenas como uma proposta que a pessoa aprova. Nada do que um agente de IA envia é aplicado sem essa aprovação.

Como é que o agente sabe quem introduziu um medicamento?

Cada item na API de contexto carrega author_type e uma fonte, e cada recurso tem uma Proveniência. Um medicamento introduzido por um profissional e um digitado pelo paciente parecem diferentes para o modelo, que é o objetivo.

Existe uma forma gratuita de experimentar isto?

Sim: a sandbox é gratuita e os seus 30 pacientes sintéticos têm medicamentos realistas codificados com ATC. Veja Servidor FHIR gratuito: a sandbox.

Este guia é meramente informativo e não substitui aconselhamento médico. Para decisões sobre a sua saúde, fale com o seu médico. Em caso de emergência, ligue 112.
Sobre o autor
Adrian Kereky

Founder of Anpheros. An electronics engineer, he spent six years in autonomous driving, on automotive projects run in partnership with Samsung and NVIDIA, designing the architecture of driver-assistance and AI systems that run on NVIDIA chips with CUDA. He then built Anpheros: the patient-controlled medical record and the HL7 FHIR R4 platform it runs on.

Mais sobre a Anpheros e o autor →

Tenha o seu registo de saúde consigo

Anpheros Daily reúne sintomas, resultados de exames, medicamentos e documentos num só local, num formato standard, sob o seu controlo. O plano Basic é gratuito.

Obter Anpheros Daily