Pour les développeurs

Données médicamenteuses pour les agents IA : comment coder les médicaments avec l'ATC et les stocker en FHIR pour qu'un modèle puisse les utiliser

Comment les développeurs doivent choisir une base de données médicamenteuse pour un agent IA : ce que les codes ATC vous apportent, ce qu'un sous-ensemble de terminologie groupée couvre et ce qu'il ne couvre pas (pas d'interactions), comment les MedicationStatement et MedicationAdministration sont structurés, et comment un agent lit et propose des médicaments via la plateforme Anpheros.

par Publié 5 min de lecture

Un agent IA qui lit « Nolvadex 20 mg le matin » doit savoir qu'il s'agit de tamoxifène, un anti-œstrogène, ATC L02BA01, et qu'il s'agit d'une dose orale quotidienne, pas d'une prise unique. D'où vient cette connaissance, et comment le médicament est-il stocké pour que le système suivant le lise de la même manière, telle est la véritable question derrière « quelle base de données de médicaments dois-je utiliser ». Ce guide y répond pour la plateforme Anpheros et est honnête quant à ce que la plateforme fournit et ce qu'elle ne fournit pas.

Version technique pour les développeurs : Données médicamenteuses pour les agents IA · Systèmes de codes FHIR sur developers.anpheros.com, avec les requêtes, les réponses et les limites. Cette page est la version en langage clair.

Les codes d'abord : ATC

La classification Anatomique, Thérapeutique, Chimique de l'OMS attribue à chaque substance active un code organisé par ce sur quoi elle agit et ce qu'elle fait : C09AA02 est l'énalapril (C cardiovasculaire, C09 rénine-angiotensine, C09AA inhibiteurs de l'ECA). L'ATC est gratuit, international et stable, c'est pourquoi Anpheros code chaque médicament avec lui. Le nom du produit reste dans code.text, ainsi la personne voit toujours « Nolvadex » et l'agent voit L02BA01.

Ce que l'ATC ne vous donne pas : les formes posologiques, les tailles d'emballage, les identifiants nationaux de produits, les prix ou les interactions. Ceux-ci sont spécifiques à chaque pays et souvent sous licence. Un agent qui en a besoin nécessite une deuxième source.

Ce que la plateforme fournit

  • Un sous-ensemble ATC groupé pour la recherche, suffisant pour les médicaments que les gens en Europe prennent réellement, avec des noms d'affichage, recherchable à GET /v1/terminology/atc?q= et par code à GET /v1/terminology/atc/{code}. Le même sous-ensemble alimente l'outil MCP lookup_code. Un code en dehors du sous-ensemble peut toujours être utilisé sur une ressource ; la recherche n'aura simplement pas d'affichage pour celui-ci.
  • Un sous-ensemble LOINC groupé pour les mesures et les résultats de laboratoire, avec les mêmes points d'accès sous /v1/terminology/loinc.
  • Ressources FHIR avec la bonne structure : MedicationStatement pour le plan de traitement (ce que la personne prend, depuis quand, à quelle fréquence), MedicationAdministration pour chaque dose prise, liée à sa déclaration, Immunization avec les codes de vaccins ATC J07, et AllergyIntolerance avec l'ATC pour les allergies médicamenteuses.

Ce que la plateforme ne fournit pas : une base de données complète de médicaments, la vérification des interactions, la vérification des plages de doses ou le support de décision clinique. Ceux-ci sont délibérément exclus, car ils feraient de la plateforme un dispositif médical. Si votre agent en a besoin, utilisez un service sous licence et conservez la plateforme comme enregistrement.

Comment un agent lit les médicaments

L'API de contexte renvoie les médicaments actifs avec leur code ATC, leur texte, leur posologie et leur provenance (qui l'a saisi : le patient, un praticien, une importation), dans un budget de jetons, afin que le modèle voie une liste claire plutôt qu'un tas de ressources. Via MCP, c'est le même get_patient_context, et search_fhir avec MedicationStatement?patient=…&status=active donne les ressources brutes.

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

Comment un agent écrit les médicaments

Il n'écrit pas, il propose. Un MedicationStatement envoyé par une application enregistrée en tant qu'agent IA, sous le consentement de la personne, est validé et conservé comme une proposition. La personne voit « L'Assistant X souhaite ajouter du tamoxifène 20 mg par jour », accepte ou rejette, et seule une proposition acceptée entre dans l'enregistrement, marquée comme écrite par l'IA. L'agent doit envoyer le code ATC lorsqu'il est sûr, et le nom du produit dans code.text toujours ; un texte lisible par l'homme sans code est toujours accepté et peut être codé plus tard.

Avant l'envoi, validate_fhir_resource (ou POST /fhir/R4/MedicationStatement/$validate) indique à l'agent si la ressource est bien formée, de sorte que la personne ne soit jamais invitée à approuver quelque chose de mal formé.

Choisir une deuxième source, si vous en avez besoin

Si l'agent doit répondre « est-ce que ceci interagit avec cela », choisissez une source par pays (les données d'interaction et les identifiants de produits diffèrent) et par licence (la plupart sont commerciales). Conservez le résultat comme votre propre annotation, pas comme une ressource dans le dossier de la personne, à moins qu'un clinicien ne le confirme. Le dossier doit porter ce qui a été pris ; la couche de conseils est la vôtre.

Questions fréquentes

Anpheros dispose-t-il d'une base de données complète de médicaments ?

Non. Il dispose d'un sous-ensemble ATC groupé pour le codage et la recherche, et il stocke les médicaments sous forme de ressources FHIR avec des codes ATC. Les interactions, les vérifications de doses et les catalogues nationaux de produits ne sont pas inclus.

Pourquoi l'ATC plutôt que RxNorm ou une liste nationale ?

L'ATC est international et gratuit, ce qui est important pour un dossier qui suit une personne au-delà des frontières. RxNorm est centré sur les États-Unis ; les listes nationales s'arrêtent à la frontière. Une application peut ajouter un deuxième codage (par exemple un code produit national) à côté de celui de l'ATC sur la même ressource.

Un agent peut-il ajouter un médicament au dossier d'une personne ?

Seulement sous forme de proposition que la personne approuve. Rien de ce qu'un agent IA envoie n'est appliqué sans cette approbation.

Comment l'agent sait-il qui a saisi un médicament ?

Chaque élément de l'API de contexte porte author_type et une source, et chaque ressource a une Provenance. Un médicament saisi par un praticien et un médicament tapé par le patient ont une apparence différente pour le modèle, ce qui est le but.

Existe-t-il un moyen gratuit d'essayer cela ?

Oui : le sandbox est gratuit et ses 30 patients synthétiques ont des médicaments codés ATC réalistes. Voir Serveur FHIR gratuit : le sandbox.

Ce guide est informatif et ne remplace pas une consultation médicale. Pour toute décision concernant votre santé, parlez-en à votre médecin. En cas d’urgence, appelez le 112.
À propos de l'auteur
Adrian Kereky

Fondateur d’Anpheros. Ingénieur en électronique, il a passé six ans sur la conduite autonome, dans des projets automobiles menés en partenariat avec Samsung et NVIDIA, sur l’architecture des systèmes d’aide à la conduite et d’IA qui tournent sur des puces NVIDIA avec CUDA. Il a ensuite construit Anpheros : le dossier médical contrôlé par le patient et la plateforme HL7 FHIR R4 sur laquelle il repose.

En savoir plus sur Anpheros et l'auteur →

Gardez votre dossier médical avec vous

Anpheros Daily conserve symptômes, analyses, médicaments et documents au même endroit, dans un format standard, sous votre contrôle. Le plan Basic est gratuit.

Télécharger Anpheros Daily