Machine learning non supervisé pour la détection d’anomalies dans les prescriptions de médicaments

Je crois beaucoup au potentiel de l’intelligence artificielle pour aider le pharmacien dans son travail de validation d’ordonnances. Le sujet n’est certainement pas parmi les plus populaires dans la littérature sur les applications de l’intelligence artificielle en santé mais on voit que l’analyse d’ordonnances de médicaments revient régulièrement dans les nouvelles publications. Un nouvel article d’une équipe du Brésil discute de ce sujet.

L’objectifs des chercheurs était d’identifier des combinaisons médicament-voie-fréquence atypiques (outliers) de manière non-supervisée, c’est-à-dire sans que les données fournies au modèle n’indiquent à l’avance si une ordonnance est atypique ou non. À cette fin, un nouvel algorithme a été développé permettant de représenter les ordonnances de chaque médicament à l’aide d’un vecteur bi-dimensionnel incorporant la dose et la fréquence. Un graphe est construit à partir des prescriptions d’un médicament ainsi représentées, l’objectif étant d’attribuer à chaque prescription un score de « centralité » indiquant à quel point la combinaison dose-fréquence est commune par rapport à l’historique des prescriptions de ce médicament. Après analyse par l’algorithme, un seuil attribué à chaque médicament permet de séparer les combinaisons dose-fréquence typiques de celles atypiques.

Le modèle a été développé et testé sur des données d’un hôpital brésilien collectées entre janvier et septembre 2017 à partir du prescripteur électronique de l’établissement. 2 millions d’ordonnances pour 16 000 patients sont incluses dans la banque de données. Les médicaments sont représentés en nom générique, et les doses et fréquences de médicaments ont été standardisées pour l’analyse. Les médicaments avec moins de 1000 occurrences dans l’historique de prescription ont été exclus. Des doses quotidiennes minimales et maximales ont été extraites de banques de données commerciales sur les médicaments; les médicaments sans ces données ont été exclus de l’analyse.

563 171 ordonnances pour 51 médicaments ont été inclus dans le jeu de données final. La section des résultats de l’article montre des images faciles à interpréter expliquant comment l’algorithme caractérise les combinaisons de dose et de fréquence pour un médicament et où sont les combinaisons atypiques. De même, un échantillon de 150 000 ordonnances pour 21 médicaments est disponible sur le GitHub du projet.

Les limites de doses extraites des banques de données ont été utilisées pour caractériser la performance du modèle pour identifier les surdosages et sous-dosages. L’algorithme développé par les auteurs a été comparé à 5 modèles « standards » pour la détection de outliers. La performance a été analysée à l’aide du score F1, une mesure de classification prenant en compte le fait que les ordonnances atypiques sont bien moins fréquentes que les ordonnances typiques.

Les résultats montrent que l’algorithme proposé par les auteurs offre la meilleure performance, se classant parmi les 3 meilleurs algorithmes pour la détection des dosages atypiques pour 31 des 51 médicaments, avec un score F1 de 0.68. Les méthodes classiques se sont avérées moins performantes sauf les forêts d’isolation avec un classement parmi les meilleurs 3 algorithmes pour 26/51 médicaments et un score F1 de 0.61. L’algorithme s’est aussi avéré plus stable lors de variation de ses paramètres d’entraînement.

Les auteurs notent que leur algorithme était vulnérable à des erreurs de dosage par rapport au choix de produit pharmaceutique, par exemple une prescription d’amlodipine en comprimés de 10 mg pour une dose de 5 mg, alors qu’il existe des comprimés de 5 mg. Ceci semble davantage être un symptôme de la configuration du système (j’en parlais en 2016) qui demande au prescripteur de choisir un produit plutôt qu’une molécule. On note aussi des détections d’atypicité pour des dosages impossibles selon la forme, comme 88 mcg de lévothyroxine avec des comprimés de 100 mcg, ainsi que des vraies détections de dosages atypiques (méropénem 2g une fois par jour, allopurinol 600 mg une fois par jour). Les auteurs notent que les médicament dont le dosage est intrinsèquement plus variable comme le chlorure de potassium oral, ou la carbamazépine par exemple, montraient une performance moins bonne.

Les auteurs indiquent que leur approche ne permet pas la prise en compte des doses en fonction du poids. Ceci affecte la généralisation d’une telle approche. Par exemple, dans un contexte d’hôpital avec une bonne proportion de patients pédiatriques, la plupart des médicaments peuvent être dosés en fonction du poids ou de la surface corporelle en plus de doses fixes pour les patients plus vieux ou les adultes, ce qui complexifie la tâche.

Je trouve cette étude très intéressante car elle rejoint mes propres intérêts de recherche. Je m’intéresse davantage à la détection de médicaments atypiques dans le contexte des autres médicaments d’un patient, tandis que cette étude s’intéresse au dosage d’un médicament en lien avec le médicament lui-même, indépendamment des autres médicaments actifs. Ceci ressemble aux travaux de Allen Flynn. Je trouve un peu étrange que cette nouvelle étude ne cite pas ces publications, qui ont sensiblement un objectif similaire malgré des méthodes un peu différentes. En tout cas, il y a définitivement un besoin pour ces deux volets d’analyse d’ordonnances automatisée, et cette étude est un pas de plus dans la bonne direction.

Impact de la complexité d’une ordonnance sur son temps de validation

Cette étude avait pour objectif de caractériser le temps passé par des pharmaciens à valider 30 dyades courantes de médicament et voie d’administration en relation avec la complexité de ces ordonnances, dans une optique d’évaluer si le fait de ne plus exiger la vérifications d’ordonnances « simples » permettrait d’épargner du temps aux pharmaciens.

L’étude a été menée dans un centre académique tertiaire de 1000 lits situé aux États-Unis. Les pharmaciens travaillaient des quarts de travail de 8 heures et procédaient à la vérification des ordonnances de façon mixte avec d’autres activités comme la réponse à des questions téléphoniques et la vérification contenant-contenu des produits dispensés. À noter que l’établissement utilisait un dossier patient électronique intégré moderne et les pharmaciens travaillaient dans le module de pharmacie de ce système. Les chercheurs ont d’abord développé une classification d’ordonnances en catégories simple, modérée et complexe. Puis, ils ont implanté une technologie de capture d’écran pour suivre le travail des pharmaciens, et enfin ils ont extrapolé les données collectées à l’ensemble du volume d’activité de vérification d’ordonnances pour estimer le temps passé à valider chaque catégorie d’ordonnances.

La classification de la complexité des ordonnances était basée sur trois critères:

  • La présence sur la liste d’alerte élevée d’ISMP.
  • Le niveau « d’atypicité » de l’ordonnance basé sur la variabilité des doses et fréquences prescrites pour une combinaison de médicament + voie d’administration.
  • Le niveau de complexité cognitive de la validation des 30 dyades médicament + voie d’administration tel que déterminé par un sondage mené auprès des 60 pharmaciens du centre (27 ayant répondu).

Les résultats des dyades pour ces 3 critères ont été utilisés pour effectuer une classification par consensus en niveaux de complexité. Le logiciel de capture d’écran a été utilisé pour enregistrer le processus de validation de 12 pharmaciens expérimentés travaillant à la validation d’ordonnances et calculer le temps nécessaire à la validation. Chaque médicament a été observé 30 fois pour obtenir une puissance suffisante. Les vérifications d’ordonnances où il était possible que le pharmacien ait été interrompu (tel que déterminé par l’inactivité de la souris) ont été exclues et remplacées dans le jeu de données.

Un modèle de régression linéaire mixte a été utilisé pour comparer les temps de vérifications entre les ordonnances hautement complexes et faiblement complexes, modérément complexes et hautement complexes, et modérément complexes et faiblement complexes. L’analyse a pris en compte les mesures répétées pour un même pharmacien et les corrélations entre observations. Une analyse de sensibilité a aussi été menée en excluant deux antibiotiques qui se sont avérés aberrants dans leur groupe de complexité.

Les médicaments hautement complexes avait un temps de validation de 18,6 ± 23,1 secondes, les ordonnances modérément complexes un temps de 23,7 ± 23,3 secondes, et les ordonnances faiblement complexes un temps de 8,0 ± 14,4 secondes. L’analyse n’a pas démontré de différence statistiquement significative entre ces temps. L’analyse de sensibilité excluant la céfazoline et la pipéracilline + tazobactam qui avaient des temps de validation très longs malgré leur classification à faible complexité, a démontré une différence statistiquement significative entre les médicaments à haute complexité et ceux à faible complexité.

Les auteurs concluent que l’exclusion des médicaments à faible complexité de la validation des ordonnances par un pharmacien permettrait de récupérer 196 heures de temps de travail par année par pharmacien, temps qui pourrait être assigné à des activités avec davantage de valeur ajoutée. Cependant, en excluant la céfazoline dont les résultats s’apparentaient davantage à un médicament à complexité élevée, le temps récupéré diminue à 82 heures par année.

Je trouve cet article intéressant car il ramène dans l’actualité le sujet du temps passé par les pharmaciens à effectuer de la vérification prospective d’ordonnances et amène de nouvelles données sur l’impact clinique réel de cette activité. L’étude n’amène pas de réponses claires et c’est dommage, mais elle illustre bien la difficulté de bien caractériser l’activité cognitive des pharmaciens durant la validation d’ordonnances. La discussion de l’article est très bonne, elle met bien en perspective les résultats de l’étude et je vous invite à la lire. Je suis bien d’accord avec ce paragraphe en particulier, qui illustre bien selon moi la nécessité de repenser l’activité de vérification d’ordonnances à la lumière des outils technologiques modernes à la disposition des pharmaciens:

The verification of low complexity orders is a basic and repetitive drug distribution function that pharmacists frequently characterize as rote work due to the extremely low rate of problems. The most serious concerns, such as drug allergies, drug interactions, and dosing errors are generally identified using clinical decision support rules and alerts, while others would need to be identified through anomalous or important patient-specific factors that arise during routine profile review or clinical rounds. Verification of these low complexity orders may actually increase the risk of error due to the lack of vigilance by the pharmacist when reviewing these orders, similar to errors of omission seen with alert fatigue.

Appliquer l’intelligence artificielle à la pharmacie d’établissement de santé

Vous avez pu constater dans un épisode du podcast Trait Pharmacien de l’APES que je m’intéresse aux applications de l’intelligence artificielle (IA) à la pharmacie d’établissement de santé et que je participe à des projets de recherche sur ce sujet. Malheureusement, malgré l’explosion de publications sur l’IA en soins de santé et en médecine, assez peu de publications examinent spécifiquement les applications en pharmacie ou mentionnent les impacts pour les pharmaciens. J’ai été très heureux de voir dans le numéro de mai de l’AJHP un article parlant de ce sujet. Je crois donc que le moment est opportun pour présenter ici une revue informelle des publications que je trouve pertinentes pour les pharmaciens.

D’abord: garder la tête froide

Avant toute chose, je crois qu’il est important de parler de l’effervescence qui entoure l’IA, et en particulier dans le milieu de la santé. Je crois qu’en tant que professionnels de la santé visant une pratique fondée sur les données probantes, il faut garder une approche scientifique et factuelle, et surtout ne pas se laisser influencer par l’effervescence, le hype qui tourne autour de la science de l’IA. Dans le contexte où l’apprentissage automatique (machine learning) (ML) et l’IA sont des sujets assez complexes, que c’est un domaine de recherche qui fait beaucoup parler à la fois dans la communauté scientifique et chez le grand public, et que beaucoup d’argent coule vers des initiatives en IA, il peut être facile de gonfler des promesses de résultats ou de tomber dans le mauvais réflexe qu’utiliser l’IA est nécessairement une bonne chose. Je vois souvent des logiciels ou des produits qui se vantent « d’utiliser l’IA » sans décrire clairement de quelle manière et sans présenter des données probantes sur l’apport de cette technologie au produit par rapport à d’autres approches. Je crois que ce genre d’affirmation devrait être évaluée avec scepticisme.

Un article de perspective du NEJM en 2017 devrait être lu par ceux qui s’intéressent à ce sujet. Je crois que le point crucial à retenir de cet article est cette phrase, dont le sens est très clair:

[…] even a perfectly calibrated prediction model may not translate into better clinical care.

L’approche générale à l’IA en soins de santé

Un bon premier article à lire pour développer ses connaissances est paru en 2019 dans le NEJM. Celui-ci présente des principes très généraux, sans aller dans les détails, et donne des exemples d’applications potentielles.

Je ne discuterai pas ici d’applications générales aux soins de santé, ni d’applications propres à des spécialités médicales, en particulier l’imagerie, puisque de nombreux articles de revue s’y consacrent, mais sachez que ces exemples sont nombreux.

L’IA appliquée à la pharmacie: analyse et prédiction d’ordonnances

En ce qui a trait aux publications applicables à la pharmacie, très peu de littérature présente des données concrètes et pas seulement des idées. La plupart des données publiées visent l’analyse et la prédiction d’ordonnances.

Un groupe se concentre sur le lien entre un médicament et sa posologie. Leur publication de 2014 ciblait un nombre limité de médicaments, cependant un article plus récent de leur part démontre une généralisation de leur technique. Ils utilisent les données de fréquence de chaque posologie (dose, voie et fréquence) prescrite pour un médicament afin de déterminer si une ordonnance est habituelle ou non. Ça me semble très intéressant, un logiciel développé à partir de cette approche pourrait donner à un pharmacien une rétroaction sur la posologie prescrite pour un médicament. Cette approche n’offre cependant pas de rétroaction sur le médicament lui-même en fonction du contexte du patient.

À propos de ce dernier point, les publications sur l’analyse du médicament par rapport à son contexte remontent jusqu’à 2008, où un projet de maîtrise au MIT cherchait à prédire la séquence d’ordonnances dans le contexte d’un patient afin d’offrir des suggestions lors de la prescription électronique. Cette publication est impressionnante. Sans réseaux de neurones et sans apprentissage profond, avec de l’analyse de motif séquentiel, ils ont réussi à prédire le prochain médicament (au niveau du nom générique seulement, cependant) avec 70,2% de succès en 20 essais.

Encore dans l’analyse de motif séquentiel, une autre étude a réussi à prédire le prochain médicament prescrit pour le diabète, donc parmi un nombre limité de possibilités avec environ 64% de succès en 3 essais.

Un groupe a utilisé une technique de traitement du langage, le Latent Dirichlet Allocation, permettant de modéliser des sujets de textes, pour analyser des séquences d’ordonnances. Ils ne se sont pas intéressés seulement aux médicaments mais ont analysé toutes les ordonnances. Ils ont démontré que cette technique permet de mieux prédire les ordonnances des 24 heures suivant l’admission, avec une aire sous la courbe ROC de 0.90, que simplement la déduction à partir des ordonnances pré-rédigées utilisées à l’admission, avec une aire sous la courbe ROC de 0.81.

Le même groupe a publié un article démontrant certaines limites aux données collectées dans le cadre de la pratique clinique: puisque celles-ci évoluent, on ne peut pas remontrer trop loin dans le passé, sinon le modèle tente d’apprendre à partir de pratiques qui ne sont plus idéales, et ceci fait baisser la qualité des prédictions. Ceci limite le volume de données disponibles lorsqu’on extrait des données de systèmes cliniques à des fins de ML.

Enfin, une autre publication a évalué un logiciel commercial offrant de l’aide à la décision appuyée sur du ML. J’ai déjà parlé de cet article dans un billet en 2017.

Vient maintenant le moment de parler d’un projet sur lequel je travaille directement visant également la prédiction d’ordonnances, mais cette fois au niveau du produit précis, et non simplement au niveau du générique, avec une approche qui combine l’analyse du langage par réseau de neurones (la technique word2vec) avec l’apprentissage profond. J’ai présenté nos premiers résultats à la conférence Machine Learning for Healthcare qui avait lieu à Ann Arbor en août 2019. Nous soumettrons un premier manuscrit pour publication sous peu.

Enfin, comme mentionné dans le podcast Trait Pharmacien, l’identification de comprimés (et j’imagine que ce serait applicable à bien des formes pharmaceutiques) en utilisant un réseau de neurones à convolutions démontre une efficacité prometteuse, bien que je n’ai pas connaissance de données publiées sur une application pratique de cette technologie en pharmacie.

L’IA dans les sujets connexes à la pratique de la pharmacie

Il existe également plusieurs publications sur les applications de l’IA dans des domaines qui touchent les pharmaciens sans nécessairement entrer dans l’analyse d’ordonnances comme tel. Mentionnons en particulier, sans que ce soit exhaustif, la pharmacovigilance et la surveillance de patients ou de médicaments précis (en particulier les antimicrobiens).

Pour ceux qui veulent pousser davantage: comment apprendre à créer un modèle d’apprentissage automatique ?

Pour bien comprendre les implications de l’IA et du ML, je crois qu’il est grandement préférable d’en faire soi-même, même si ce n’est qu’un petit projet. Heureusement, il est tout à fait possible d’apprendre les bases avec des livres et des cours en ligne gratuits ou peu coûteux. Le plus gros investissement à prévoir est du temps. Il faut évidemment avoir un intérêt pour les mathématiques (en particulier l’algèbre linéaire), les statistiques, et la programmation. Les techniques simples de ML peuvent être exécutées sur à peu près n’importe quel ordinateur moderne. Seule exception, pour se lancer dans les réseaux de neurones et l’apprentissage profond, il faut une machine avec une bonne quantité de mémoire vive et une carte graphique Nvidia récente.

Globalement, pour arriver à réaliser un projet d’intelligence artificielle, il faut:

Il existe un nombre impressionnant de tutoriels, de cours et de livres sur le sujet, la sélection que je vous présente est uniquement le cheminement que j’ai suivi moi-même pour y arriver. Toutes ces étapes ne sont définitivement pas obligatoires et même se recoupent un peu, l’objectif ici est simplement de partager un maximum de ressources pour ceux qui seraient intéressés à tenter l’expérience eux-mêmes.