L’anesthésie est un processus qui permet de mener une opération chirurgicale dans les meilleures conditions possibles pour le patient, mais aussi pour le chirurgien. Une anesthésie standard se compose de trois parties : la neuroplégie, l’analgésie, et la perte de tonus musculaire.
Pour mener à bien une anesthésie, le médecin anesthésiste doit donc surveiller l’évolution d’une multitude de paramètres médicaux, et anticiper les agressions que va déclencher le chirurgien afin d’en amoindrir les effets. Pour cela, il peut jouer sur les doses de produits injectées. Il peut ainsi modifier le débit des pompes qui injectent une quantité constante de produit dans le flux sanguin, espacer les bolus, ou modifier la concentration des produits introduits par le respirateur.
Le projet d’assistance à l’anesthésie est mené en collaboration avec les anesthésistes du centre hospitalier universitaire de Brabois (le CHU). Son but est donc de fournir une aide à l’anesthésiste en regroupant les différentes données disponibles, en les recoupant, et en analysant leur évolution. Dans un premier temps, l’objectif sera d’acquérir les données, et de les présenter à l’anesthésiste sous une forme qu’il peut utiliser simplement. Ensuite, il faudra analyser ces données, afin d’isoler des règles de comportement et des motifs d’évolution des différents signaux.
Finalement, on pourra envisager de piloter directement les injections de produits, de façon à garantir une profondeur d’anesthésie suffisante tout en limitant au maximum les doses injectées. Ce projet est encore à un stade assez peu avancé, ce qui limite en particulier la quantité et la diversité des données disponibles. Cela rend difficile la construction d’un modèle adapté, comme je le montrerai par la suite.
La neuroplégie est le point le plus important pour le patient, car cette perte de conscience le protège des effets psychologiques de l’opération. Si l’on éliminait uniquement cette partie de l’anesthésie, l’opération pourrait se dérouler de façon correcte, mais le patient pourrait conserver des souvenirs subconscients de cette dernière. Des cas de ce type de traumatismes ont été observés lors de certaines anesthésies : Bien que l’opération ait semblé parfaitement réalisée, le patient en a conservé une terreur irraisonnée qu’il est incapable d’expliquer. Il refuse alors catégoriquement toute nouvelle opération, sans savoir exactement pourquoi. L’analyse a posteriori des données de l’opération ont montré une petite insuffisance au niveau de l’injection des neuroplégiques. On suppose donc que le traumatisme résultant pourrait y être lié. La perte de conscience est généralement obtenue par injection d’un composé opiacé dérivé de la morphine.
L’analgésie permet d’inhiber les comportements défensifs que l’organisme met en œuvre lorsqu’il est agressé. Ainsi, en temps normal, des hormones de stimulation telles que l’adrénaline sont déversées dans le flux sanguin à chaque coup de scalpel. Par exemple, ces hormones peuvent entraîner des modifications du rythme cardiaque et du rythme respiratoire. Ces effets sont préjudiciables à la bonne conduite d’une opération et doivent être évités. Pour cela, on recourt généralement à l’injection de morphiniques. Ces produits permettent l’inhibition des neurotransmetteurs au niveau du cerveau. Lorsqu’un patient est sous l’influence de ces substances, bien que l’information de douleur arrive au cerveau de façon normale, aucun des messages nerveux figurant la douleur ne peut être interprété.
La suppression du tonus musculaire permet au chirurgien d’opérer dans de bonnes conditions. Le relâchement des muscles permet en effet de supprimer les réflexes primaires de défense, et de conserver le patient dans un état de passivité. Sans cela, le corps se débattrait à chaque stimulation, même si la neuroplégie et l’analgésie sont correctes. Cela permet aussi de faciliter l’intubation en relâchant les muscles du cou, et d’éviter les mouvements des muscles abdominaux qui pourraient gêner le chirurgien. Cet effet est obtenu par l’injection de composés à base de curare. Ces derniers bloquent en effet le fonctionnement des synapses neuromusculaires en se fixant sur les sites récepteurs. De cette façon, les messages nerveux arrivent bien au niveau des muscles, mais ces derniers sont incapables de les interpréter.
Malheureusement, chacun de ces produits a des effets indésirables, aussi bien pendant l’opération que durant la période postopératoire. Par exemple, on sait que les morphiniques perturbent le fonctionnement du cœur et des poumons. On doit donc surveiller en permanence le rythme cardiaque, la pression artérielle, et les paramètres du respirateur. D’autre part, on a observé que plus la quantité de produits injectés augmentait, plus les effets postopératoires étaient importants et longs. Il est donc impossible d’injecter des doses massives de ces produits de façon à garantir la perte de connaissance, de douleur ou de tonus musculaire. On doit donc chercher le juste-milieu, permettant de conduire l’opération dans de bonnes conditions, tout en limitant au maximum les doses injectées, de façon à réduire les troubles postopératoires.
Pendant une opération au CHU, les données disponibles sont relativement peu nombreuses. Actuellement, trois instruments sont connectés sur un PC qui centralise l'action du médecin.
Les pousse-seringues permettent de contrôler l’injection de produits au patient. Le pilotage se fait grâce aux modèles pharmacocinétiques inspirés de ceux de Stan-Pump. Ces modèles prédisent l’évolution temporelle de la concentration d’un produit dans la portion du cerveau où il fait effet, en fonction de la quantité de produit injectée par voie veineuse. L’inversion de ces modèles permet donc de calculer la quantité de produits à injecter pour obtenir une concentration donnée en un temps optimal. Cet outil permet alors à l’anesthésiste de se concentrer sur l’effet à obtenir plutôt que sur la façon d’y arriver. Cela contribue donc à l’obtention d’une anesthésie de qualité.
Néanmoins, les données concernant l’injection des produits ne sont disponibles qu’après l’opération, au prix d’une saisie et d’une synchronisation manuelles des données. En effet, l’anesthésiste remplit au cours de l’opération une fiche administrative sur laquelle il consigne les modifications des consignes des pousses-seringues, les bolus injectés, et les paramètres du respirateur. Cependant, les volumes réellement injectés ne sont pas rendus disponibles par l’appareil. Si l’on veut pouvoir les utiliser, il est donc nécessaire de les recalculer en utilisant une nouvelle fois les modèles pharmacocinétiques.
L’ ASPECT 2000 est un instrument médical qui interprète les signaux fournis par un EEG pour fournir un indice de perte de conscience, le BIS. Pour y parvenir, il utilise principalement une analyse bi-spectrale des signaux émis par le cerveau. La répartition fréquentielle obtenue permet alors de calculer un indice que les anesthésistes de Brabois considèrent comme étant assez fiable. De nombreux signaux sont fournis par cet instrument toutes les cinq secondes. Parmi ceux-ci, il semble que seuls le BIS, le RS et l’EMG aient une utilité aux yeux des anesthésistes. La Figure suivante montre l’évolution de ces signaux en fonction de l’état du patient.
L’EMG est une mesure du courant généré par les muscles, et plus particulièrement par les mouvements oculaires. En effet, les électrodes de l’ EEG étant placées sur le front du patient, les mouvements oculaires perturbent les mesures en générant de forts signaux électriques de basse fréquence. C’est donc un indice de réveil imminent.
Inversement, le RS est une indication que certaines portions de l’ EEG sont plates. C’est donc un signal d’alarme qui indique un risque de coma, risque que l’on désire éviter tout autant que le réveil du patient. La Figure précédente rappelle toutes ces données en montrant ces divers signaux en fonction de l’endormissement du patient.
Je pense néanmoins que l’on peut tirer profit des autres données fournies pour affiner le diagnostic. Ces données incluent par exemple la SEF et la puissance totale reçue. De plus, l’appareil fournit ces données pour trois canaux, alors qu’un seul est utilisé actuellement. Le recoupement des données de divers canaux pourrait apporter une information supplémentaire.
L’ANEMON est un instrument qui analyse le rythme cardiaque pour fournir un indice sur la douleur ressentie par le patient. Pour calculer cet index, il utilise une analyse fractale de l' interval RR , analyse dont les détails sont mal connus. Selon les anesthésistes de Brabois, les informations données ne sont fiables que lorsque la perte de conscience est totale. Dans le cas où le patient n’est pas totalement endormi, il semblerait que les systèmes sympathique et parasympathique, deux systèmes nerveux complémentaires, agissent simultanément sur cet indice, faussant sa valeur de façon imprévisible.
Par contre, lorsque le patient est profondément endormi, seules restent actives les fonctions les plus basiques. A ce moment, cet indice semble indiquer de façon relativement fiable le niveau de douleur qu’endure le patient, même si ce dernier n’en a pas conscience. Toutes les 5 secondes, cet instrument fournit trois valeurs intéressantes : l’index représentant la douleur du patient, et la fréquence de ses pulsations cardiaques, mesurée de façon instantanée et sur un intervalle de temps.
L’ASPECT et l’ANEMON ont des périodes de mesures similaires (5 secondes), mais ils ne sont en général pas synchronisés. Il est donc possible que les deux paquets de données arrivent simultanément, ou alors qu’il en arrive un toutes les 2,5 secondes. Bien entendu, tous les intermédiaires sont envisageables. Enfin, si l’on se place dans l’idée de fournir des indices à l’anesthésiste, il faut bien prendre garde à ne fournir que des données temporellement cohérentes. Il serait en effet particulièrement troublant pour l’anesthésiste d’avoir sous les yeux des informations récentes, directement affichées par les instruments médicaux, ainsi que des informations basées sur les données des minutes précédentes. Cela limite donc beaucoup le temps de calcul disponible pour fournir un résultat, et par conséquent, les algorithmes susceptibles d’être utilisés.
Un projet parallèle, en partenariat avec une société finlandaise, vise à acquérir plus de données en utilisant une centrale d’acquisition spécialisée. L’avantage principal de cette collaboration tient à la récupération des données hémostatiques (la pression artérielle), et des mesures fournies par le respirateur (concentration des différents gaz). Cependant, l’inconvénient majeur de cette approche est que ces données ne seront accessibles qu’après l’opération, car aucune sortie de données n’a été prévue pendant la phase d’acquisition. Ces données pourront donc servir à la recherche de motifs intéressants, mais pas à l’assistance à l’anesthésie durant l’opération. Bien entendu, il reste possible d’envisager une telle sortie pour une version ultérieure du matériel, voir même d’incorporer directement nos modèles dans la machine.
Le module de diagnostic situé au coeur du projet d'assistance à l’anesthésie a été conçu à l'aide de l' interface de création d'agents intelligents que j'ai réalisée durant ma thèse. Voici le diagramme correspondant :
Grâce à un Thread Java, ce module est capable de stocker les données de l'opération en cours, même si la machine est actuellement occupée à calculer la situation du patient à l'instant précédant. Il garantit donc qu'aucune donnée ne sera perdue.
Ce module assure l'aggrégation de multiples capteurs en une seule observation qui sera transmise au module de diagnostic. Ainsi, ce dernier n'a pas besoin de connaître le nombre ou le type des capteurs disponibles.
Ce module permet l'abstraction d'une observation continue, telle que le BIS par exemple, en ne fournissant aux modules suivant qu'une probabilité d'observation. Ces derniers n'ont donc pas à connaître le type du ou des capteurs mis en jeu. Les capteurs ici présents sont les suivants :
Ce module générique duplique un flux de données, afin de pouvoir alimenter plusieurs modules avec les mêmes données. Ce module est rendu nécessaire par l'implantation particulière que je j'ai choisie.
Ce module est alimenté par deux flux de données simultanés : un flux de données, et un flux de qualités. Il fusionne ces deux flux en un seul, où chaque données est accompagnée d'une valeur de qualité, ce qui permet de la prendre en compte dans les traitements suivants.
Ce module calcule la variation de son flux de données en retirant la dernière valeur reçue à la moyenne des valeurs reçues au cours des n derniers pas de temps. Ici, nous utilisons un échantillon de 36 valeurs, ce qui nous donne une fenêtre de trois minutes environ.
Ce module compare deux flux de données numériques en calculant la différence terme à terme des deux flux.
Ce module implante la dynamique du système modélisé, ici un patient. Puisque le système est supposé Markovien, cette dynamique se résume à un état initial, et à une fonction permettant de faire évoluer cet état. La partie observation du modèle est déportée dans chacun des capteurs.
Ce module est responsable de l'inversion de la fonction d'observation : à partir des observations reçues et de l'état supposé du système, il essaye d'inférer le nouvel état du système.
Ce module permet à l'application hôte de récupérer le diagnostic calculé par le système. Ce module partage une instance de l'interface Java Observable, ce qui permet au programme d'être averti de la présence de données nouvelles.
Ce module permet d'ajouter une qualité de 100% à chacune des données qu'il reçoit en entrée. Ce module est rendu nécessaire par le fort typage imposé par le système de flux. Sans cela, il serait par exemple impossible de comparer un flux avec qualité à un autre, sans qualité.