FR 3112019 A1 20211231 FR 2006761 A 20200626 Système de recommandation pharmacologique Un système de recommandation pharmacologique, comprend une mémoire (4) recevant une base de données comprenant des entrées de contexte associées à une indication thérapeutique, un effet secondaire ou un terrain, et des entrées de médicament dans laquelle chaque entrée de médicament associe d’une part des données de médicament comprenant un nom générique de médicament, un nom de médicament, des données de posologie et des données galéniques, d’autre part des données de contraintes comprenant une liste d’indications thérapeutiques, une liste d’effets secondaires, une liste d’entrées d’association contre-indiquée, une liste de terrains contre-indiqués, les entrées de médicament et les entrées de contexte de la base de données étant reliées entre elles par un graphe, un analyseur (8) agencé pour recevoir en entrée des données désignant chacune des données de médicament comprenant au moins un nom générique de médicament ou un nom de médicament et des données de contexte comprenant au moins une indication thérapeutique, un effet secondaire ou un terrain, et pour déterminer à chaque fois une entrée de médicament ou une entrée de contexte, et un moteur de recommandation (10) agencé pour réaliser une requête dans le graphe à partir des entrées de médicament et des entrées de contexte déterminées par l’analyseur (8), et pour retourner des données de recommandation pharmacologique comprenant un ou plusieurs parmi - une information de correspondance déterminée partir du recouvrement entre les données de contraintes définies par les entrées de médicaments et les entrées de contexte déterminées par l’analyseur (8), - une information d’entrée de médicaments alternatifs pour une ou plusieurs des entrées de médicament déterminées par l’analyseur (8), lesquelles entrées de médicament alternatives présentent des données de contraintes qui comprennent une liste d’indications thérapeutiques compatible avec la ou les indications thérapeutiques des entrées de contexte déterminées par l’analyseur (8) et/ou la liste d’indications thérapeutiques des entrées de médicaments dont elles constituent l’alternative, une liste d’effets secondaires et/ou une liste de terrains contre-indiqués compatibles avec les effets secondaires et/ou les terrains des entrées de contexte déterminées par l’analyseur (8), et dont les listes d’entrées d’association contre-indiquée ne présentent pas de recouvrement entre elles ou avec les autres entrées de médicament déterminées par l’analyseur (8). Système de recommandation pharmacologique L’invention concerne le domaine de la pharmacologie, et en particulier la recommandation de médicaments. Lorsqu’un médecin prépare une ordonnance pour un patient, il doit s’assurer que les médicaments prescrits sont adaptés à la situation clinique de son patient. En effet, il arrive fréquemment que l’ordonnance contienne plusieurs médicaments. Tous les médicaments n’étant pas compatibles entre eux, le médecin doit donc vérifier qu’il n’y a pas de risque d’interaction médicamenteuse. Même lorsque l’ordonnance ne doit contenir qu’un seul médicament, le médecin doit vérifier que celui-ci est compatible avec le terrain physiopathologique du patient pour lequel il le prescrit. Le médecin doit également s’assurer que le ou les médicaments prescrits ne présentent pas de contre-indications pour son patient. De plus, la tolérance pour le(s) traitement(s) prescrit(s) est variable d’un patient à l’autre, le médecin doit régulièrement modifier sa prescription pour limiter sa iatrogénie. Enfin, les ruptures d’approvisionnement sont fréquentes, et le médecin est amené quotidiennement à trouver des alternatives aux traitements prescrits. Il doit alors retrouver les médicaments présentant les mêmes indications thérapeutiques et effectuer de nouveau sa démarche de sécurisation de prescription. Toutes ces vérifications rendent l’exercice de prescription complexe et dangereux, car elles représentent des sources d’erreur importantes. De surcroît, les efforts consacrés à cet exercice empêchent les médecins de consacrer toute leur énergie aux questions concernant leurs patients directement. En outre, la quantité de données concernant les médicaments est en croissance permanente, ce qui rend ces problèmes de plus en plus prégnants. Historiquement, les médecins utilisaient d’épaisses encyclopédies comme le Vidal (marque déposée) pour faire ces recherches. Celles-ci contenaient l’ensemble des médicaments approuvés par les autorités de santé, sous leur appellation commerciale. Chaque entrée comprenait une description du médicament, sa composition (en principe(s) actif(s) et en excipient(s), la dose de principe actif (ou équivalent en base de principe actif), sa forme galénique, une description des indications thérapeutiques, des effets secondaires, des terrains contre-indiqués, ainsi que des associations médicamenteuses contre-indiquées. Au fil du temps, ces encyclopédies ont été numérisées, et sont maintenant accessibles en ligne, par exemple sous le nom de base Claude Bernard (marque déposée), Thériaque (marque déposée), ou encore Vidal (marque déposée). Cependant, ces solutions ne sont qu’une simple numérisation des encyclopédies : elles proposent le simple accès à la documentation connue dans la littérature médicale ou la requête d'éléments prédéfinis pour identifier les problèmes liés à la prescription (interactions médicamenteuses, contre-indication, surveillance particulière). Il n'est pas possible de requêter une information supplémentaire à celle prédéfinie, et aucune solution/alternative n'est proposée. De plus, les informations n’étant pas normalisées, il n’est pas non plus possible de systématiser le traitement de l’information. En effet, il suffit qu’un effet secondaire ou une indication thérapeutique soient mal renseignés ou renseignés de deux manières équivalentes, mais distinctes, et une partie de l’information est irrémédiablement perdue. De ce fait, l'utilisateur doit faire plusieurs recherches au sein de plusieurs fiches médicament pour obtenir les informations : présence de l'effet secondaire, contre-indication pour un profil de patient donné, interaction avec une classe de médicament. En outre, l’existence de médicament ayant la même indication sans cet effet secondaire est une information qui n’est disponible dans aucune encyclopédie ni aucun outil : il faut passer en revue chaque médicament d'une indication puis chercher si l'effet indésirable concerné est cité. Et lorsque le médecin doit gérer plusieurs médicaments, la situation devient encore plus complexe. Enfin, il est impossible d’interroger ces solutions en langage naturel, ou du moins autrement que selon le strict formalisme de ces solutions. Des efforts ont été déployés afin de normaliser les fiches de médicaments. C’est par exemple le cas du brevet français FR 3 059 118. Cette normalisation permet d'entrer une ordonnance sur une interface, l'âge du patient, ainsi que des caractéristiques physiopathologiques (comme la grossesse, l’insuffisance rénale ou hépatique, etc…), et de détecter des interactions et effets indésirables associés. Des informations complémentaires concernant le terrain physiopathologique du patient peuvent également être proposées, les publications associées, les détails critères STOPP et le bilan partagé de médication peut être édité. Cependant, ce système ne normalise en pratique que les principes actifs. Toutes les autres informations restent « mortes », comme dans les encyclopédies connues. Ainsi, la base de données résultante offre un usage assez limité dans la pratique médicale. L’invention vient améliorer la situation. À cet effet, elle propose un système de recommandation pharmacologique, comprenant une mémoire recevant une base de données comprenant des entrées de contexte associées à une indication thérapeutique, un effet secondaire ou un terrain, et des entrées de médicament dans laquelle chaque entrée de médicament associe d’une part des données de médicament comprenant un nom générique de médicament, un nom de médicament, des données de posologie et des données galéniques, d’autre part des données de contraintes comprenant une liste d’indications thérapeutiques, une liste d’effets secondaires, une liste d’entrées d’association contre-indiquée, une liste de terrains contre-indiqués, les entrées de médicament et les entrées de contexte de la base de données étant reliées entre elles par un graphe, un analyseur agencé pour recevoir en entrée des données désignant chacune des données de médicament comprenant au moins un nom générique de médicament ou un nom de médicament et des données de contexte comprenant au moins une indication thérapeutique, un effet secondaire ou un terrain, et pour déterminer à chaque fois une entrée de médicament ou une entrée de contexte, et un moteur de recommandation agencé pour réaliser une requête dans le graphe à partir des entrées de médicament et des entrées de contexte déterminées par l’analyseur, et pour retourner des données de recommandation pharmacologique comprenant un ou plusieurs parmi - une information de correspondance déterminée à partir du recouvrement entre les données de contraintes définies par les entrées de médicaments et les entrées de contexte déterminées par l’analyseur, - une information d’entrée de médicaments alternatifs pour une ou plusieurs des entrées de médicament déterminées par l’analyseur, lesquelles entrées de médicament alternatives présentent des données de contraintes qui comprennent une liste d’indications thérapeutiques compatible avec la ou les indications thérapeutiques des entrées de contexte déterminées par l’analyseur et/ou la liste d’indications thérapeutiques des entrées de médicaments dont elles constituent l’alternative, une liste d’effets secondaires et/ou une liste de terrains contre-indiqués compatibles avec les effets secondaires et/ou les terrains des entrées de contexte déterminées par l’analyseur, et dont les listes d’entrées d’association contre-indiquée ne présentent pas de recouvrement entre elles ou avec les autres entrées de médicament déterminées par l’analyseur. Ce dispositif est particulièrement avantageux car il permet aux médecins d’utiliser de manière bien plus efficace les informations concernant les médicaments. Notamment, elle rend possible de proposer des alternatives thérapeutiques, tout en permettant à l’utilisateur d’entrer librement de l’information. Selon divers modes de réalisation, ce système peut présenter une ou plusieurs des caractéristiques suivantes : - lorsque l’analyseur détermine un nom générique de médicament, il retourne les entrées de médicament dont les données de médicament comprennent ce nom générique de médicament, - le système comprend en outre une interface utilisateur pour entrer lesdites données en entrée désignant chacune des données de médicament et/ou des données de contexte, - l’analyseur est agencé pour mettre en œuvre un moteur de reconnaissance de type NERL pour déterminer à chaque fois une entrée de médicament ou une entrée de contexte à partir desdites données en entrée désignant chacune des données de médicament et/ou des données de contexte, - l’analyseur comprend un réseau de neurones LSTM, et une couche CRF pour mettre en œuvre le moteur de reconnaissance de type NERL, et - la mémoire reçoit des entrées de médicaments dans lesquelles les données de médicament comprennent en outre des données d’ingrédients, et/ou les données de contraintes comprennent des données spécifiques telles qu’une ou plusieurs tranches d’âge, de poids et/ou de terrains physiopathologiques. L’invention concerne également un procédé de recommandation pharmacologique mis en œuvre par ordinateur, comprenant les opérations suivantes : a) Prévoir une base de données comprenant des entrées de contexte associées à une indication thérapeutique, un effet secondaire ou un terrain, et des entrées de médicament dans laquelle chaque entrée de médicament associe d’une part des données de médicament comprenant un nom générique de médicament, un nom de médicament, des données de posologie et des données galéniques, et d’autre part des données de contraintes comprenant une liste d’indications thérapeutiques, une liste d’effets secondaires, une liste d’entrées d’association contre-indiquée, une liste de terrains contre-indiqués, les entrées de médicament et les entrées de contexte de la base de données étant reliées entre elles par un graphe, b) Recevoir en entrée des données désignant chacune des données de médicament comprenant au moins un nom générique de médicament ou un nom de médicament et des données de contexte comprenant au moins une indication thérapeutique, un effet secondaire ou un terrain, c) Pour chacune des données de l’opération b), déterminer à chaque fois une entrée de médicament ou une entrée de contexte, d) Requêter le graphe de la base de données de l’opération a) à partir des entrées de médicament et des entrées de contexte de l’opération c), et retourner des données de recommandation pharmacologique comprenant un ou plusieurs parmi - une information de correspondance déterminée partir du recouvrement entre les données de contraintes définies par les entrées de médicaments et les entrées de contexte de l’opération c), - une information d’entrée de médicaments alternatifs pour une ou plusieurs des entrées de médicament de l’opération c), lesquelles entrées de médicament alternatives présentent des données de contraintes qui comprennent une liste d’indications thérapeutiques compatible avec la ou les indications thérapeutiques des entrées de contexte de l’opération c) et/ou la liste d’indications thérapeutiques des entrées de médicaments dont elles constituent l’alternative, une liste d’effets secondaires et/ou une liste de terrains contre-indiqués compatibles avec les effets secondaires et/ou les terrains des entrées de contexte de l’opération c), et dont les listes d’entrées d’association contre-indiquée ne présentent pas de recouvrement entre elles ou avec les autres entrées de médicament de l’opération c). Selon divers modes de réalisation, ce procédé peut présenter une ou plusieurs des caractéristiques suivantes : - lorsque l’opération c) détermine un nom générique de médicament, toutes les entrées de médicament dont les données de médicament comprennent ce nom générique de médicament sont retournées, - l’opération c) comprend mettre en œuvre un moteur de reconnaissance de type NERL pour déterminer à chaque fois une entrée de médicament ou une entrée de contexte à partir desdites données en entrée désignant chacune des données de médicament et/ou des données de contexte, - l’opération c) comprend mettre en œuvre un moteur de reconnaissance de type NERL comprenant un réseau de neurones LSTM, et une couche CRF, - l’opération b) est mise en œuvre au moyen d’une interface utilisateur, et/ou par accès à des données d'autres sources, en particulier par accès au Dossier Médical Patient, et - les données de médicament comprennent en outre des données d’ingrédients, et/ou les données de contraintes comprennent des données spécifiques telles qu’une ou plusieurs tranches d’âge, de poids et/ou de terrains physiopathologiques. L’invention concerne enfin un produit de programme d’ordinateur comprenant des instructions pour mettre en œuvre le procédé lorsqu’il est exécuté sur un ordinateur, et un support de stockage sur lequel le produit de programme d’ordinateur est enregistré. D’autres caractéristiques et avantages de l’invention apparaîtront mieux à la lecture de la description qui suit, tirée d’exemples donnés à titre illustratif et non limitatif, tirés des dessins sur lesquels : La figure 1 représente un exemple schématique d’un système selon l’invention, et La figure 2 représente un exemple de mise en œuvre permettant d’obtenir la base de données du système de la figure 1. Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. La figure 1 représente un exemple schématique de mise en œuvre de l’invention. Dans cet exemple, le système 2 comprend une mémoire 4, une interface utilisateur 6, un analyseur 8 et un moteur de recommandation 10. La mémoire 4 peut être tout type de stockage de données propre à recevoir des données numériques : disque dur, disque dur à mémoire flash, mémoire flash sous toute forme, mémoire vive, disque magnétique, stockage distribué localement ou dans le cloud, etc. Les données calculées par le dispositif peuvent être stockées sur tout type de mémoire similaire à la mémoire 4, ou sur celle-ci. Ces données peuvent être effacées après que le dispositif a effectué ses tâches ou conservées. Dans l’exemple décrit ici, la mémoire 4 reçoit une base de données de médicaments. Cette base de données, spécifique à l’invention, est particulière en ce qu’elle constitue la première base de données dans laquelle toutes les informations critiques de description d’un médicament, c’est-à-dire non seulement son nom générique de médicament (également appelé DCI pour Désignation Commune Internationale), mais également ses indications thérapeutiques, ses effets secondaires, les terrains contre-indiqués, et les associations avec d’autres médicaments contre-indiqués ont toutes été traitées, normalisées et formatées afin de générer une véritable base de données pivot. Comme cela a été expliqué dans l’introduction de la demande, il s’agit de la première base de ce type, les meilleurs efforts à ce jour n’ayant au mieux permis que d’unifier les DCI et les interactions médicamenteuses, car ces informations ne contiennent quasiment aucune ambiguïté. S’agissant des effets secondaires et terrains contre-indiqués, aucune base ne permet de réunir des effets secondaires identiques ou des terrains contre-indiqués identiques mais exprimés avec des termes différents. De même, certaines indications thérapeutiques peuvent se recouvrir ou être très similaires, mais aucune base de données, jusqu’à celle de l’invention n’a permis de réellement capturer ces relations. À cet effet, la figure 2 représente un exemple du procédé mis en œuvre pour obtenir la base de données de l’invention. Comme on peut le voir sur cette figure, dans une opération 200, des données génériques Dat_Gen et des données propriétaires Dat_Prop sont obtenues en exécutant une fonction Get(). La fonction Get() est dans l’exemple décrit ici une fonction qui accède à des emplacements dans lesquels sont stockés les données génériques et les données propriétaires. Les données génériques Dat_Gen peuvent par exemple être obtenues en accédant à diverses sources de données sur les médicaments, comme la base Thériaque discutée plus haut, la base de données de l’ANSM (Agence nationale de sécurité du médicament et des produits de santé), une ou plusieurs bases de données d’ontologie comme CIM-10, ATC, CISMEF, ou SNOMED-CT, , etc. Les données propriétaires Dat_Prop sont obtenues à partir de données annotées, par exemple pour établir des équivalences entre des termes désignant des effets secondaires, des terrains ou des effets thérapeutiques. Ces données ont, dans l’exemple décrit ici, été générées par la Demanderesse. Ensuite, dans une opération 220, une fonction Merg() reçoit les données génériques Dat_Gen et les données propriétaires Dat_Prop afin de normaliser les données génériques, puis les formater afin de les rendre exploitables dans le cadre de l’invention. Par exemple, ce formatage peut inclure la préparation de champs destinées à être retournées, directement au format JSON utilisé par le système 2. D’une manière générale, ce formatage peut être utilisé afin de dupliquer certaines des données organisées de la base de données sous une forme « prête à consommer » lorsqu’une requête est formulée. Comme on le verra plus bas, les données de la base de données pivot peuvent être vues comme ayant deux natures : Des entrées de médicament, qui contiennent des informations qui concernent chaque médicament, Des entrées de contexte, qui contiennent des catégories générales comme les indications thérapeutiques, les effets secondaires, les terrains, populations particulières, etc. Les entrées de médicaments associent elles-mêmes deux types de données : D’une part des données de médicament, qui concernent directement le médicament, telles qu’un nom générique de médicament, un nom de médicament, le nom du principe actif et des données de posologie et des données galéniques, D’autre part des données de contraintes qui sont associées à ce médicament, telles qu’une liste d’indications thérapeutiques, une liste d’effets secondaires, une liste d’entrées d’association contre-indiquée, une liste de terrains contre-indiqués. Les données de contraintes constituent une association d’une entrée de médicament avec une ou plusieurs entrées de contexte et/ou d’autres entrées de médicament. Dans certains modes de réalisation avantageux, les données de médicament peuvent comprendre des données d’ingrédients composant le médicament, et/ou les données de contraintes peuvent également comprendre des données spécifiques, comme des tranches d’âge, de poids ou encore de terrains physiopathologiques pour reconnaître et associer les subtilités ontologiques propres à chaque médicament pour ces données spécifiques. Dans l’exemple décrit ici, les conflits ontologiques et désambiguïsation sont résolus par des arbitrages systématiques d’experts et l’utilisation d’embeddings biomédicaux : un modèle statistique, reposant sur la méthode fastText décrite dans l’article de Bojanowski et al. " F asttext.Zip: Compressing Text Classification Models ", 2016, arXiv:1612.03651, entraîné sur des données propriétaires, plonge le vocabulaire médical dans un espace de vecteurs qui préserve la similarité sémantique. Chaque ensemble de mots peut alors être associé à un ou plusieurs représentants dans une ontologie. En sortie, la fonction Merg() retourne la base de données pivot dans laquelle toutes les informations ont été organisées comme décrit plus haut. Il va de soi que ce qui précède peut-être réalisé par parties. Par exemple, il n’est pas nécessaire de reconstruire entièrement la base de données pivot à chaque fois, et l’exécution de la fonction de la figure 2 peut permettre par exemple de seulement mettre à jour les entrées qui ont besoin de l’être compte tenu de changements dans les données génériques ou dans les données propriétaires, ou dans la base Thériaque et/ou les ontologies. Inversement, il peut également être prévu de régénérer entièrement la base de données à intervalle régulier, afin d’offrir une base « neuve » à intervalle régulier. L’interface utilisateur 6 peut être toute interface homme machine permettant à un utilisateur (par exemple un médecin) du système 2 d’entrer une requête. Cette requête peut de manière particulièrement avantageuse prendre la forme d’informations textuelles en langage naturel, et l’interface utilisateur 6 peut également l’évaluer en temps réel, afin de faire de la proposition prédictive sous forme de suggestion de remplissage. Par exemple, si un utilisateur tape l’expression « Para » dans un champ de requête de nom de médicament, l’interface utilisateur 6 peut automatiquement lui proposer d’introduire les mots « Paracétamol », ou « Paraffine », etc. L’interface utilisateur 6 propose également des entités médicales, tirées d’une base de données agréée par la HAS, sémantiquement proches de l’expression entrée par l’utilisateur, grâce aux embeddings médicaux. Par exemple, si un utilisateur tape le mot “fatigue”, l’interface utilisateur 6 propose le mot “asthénie”. L’interface utilisateur 6 peut donc prendre toute forme utile, que ce soit un clavier, un stylet, un microphone relié à une reconnaissance vocale, etc. L’entrée de ces données par l’utilisateur peut également être réalisée par le renseignement de plusieurs champs prévus à cet effet, comme un champ « Médicament » et un champ « Contexte ». Dans le champ « Médicament », un utilisateur pourra entrer un nom commercial de médicament (par exemple Advil, Dafalgan, etc.), ou un nom générique de médicament (par exemple paracétamol ou ibuprofène). Dans le champ « Contraintes », l’utilisateur pourra rentrer les thèmes sur lesquels il cherche à contraindre sa recherche de médicament. Ainsi, c’est là où il rentrera les effets secondaires qu’il cherche à éviter, par exemple l’urticaire solaire, le terrain d’un patient particulier afin d’éviter une contre-indication, par exemple “insuffisant rénal”, ou encore une indication thérapeutique qu’il cherche à soigner. L’analyseur 8 et le moteur de recommandation 10 sont des éléments accédant directement ou indirectement à la mémoire 4. Ils peuvent être réalisés sous la forme d’un code informatique approprié exécuté sur un ou plusieurs processeurs. Par processeurs, il doit être compris tout processeur adapté aux calculs décrits plus bas. Un tel processeur peut être réalisé de toute manière connue, sous la forme d’un microprocesseur pour ordinateur personnel, d’une puce dédiée de type FPGA ou SoC, d’une ressource de calcul sur une grille ou dans le cloud, d’un microcontrôleur, ou de toute autre forme propre à fournir la puissance de calcul nécessaire à la réalisation décrite plus bas. Un ou plusieurs de ces éléments peuvent également être réalisés sous la forme de circuits électroniques spécialisés tel un ASIC. Une combinaison de processeur et de circuits électroniques peut également être envisagée. Dans l’exemple décrit ici, l’analyseur 8 a pour fonction de déterminer les éléments d’une requête utilisateur à partir de l’entrée reçue de l’interface utilisateur 6. Ainsi, un utilisateur peut écrire une phrase, par exemple « traitement de maux de tête par de l’ibuprofène », et l’analyseur 8 identifiera automatiquement, une indication thérapeutique « Migraine » et un nom générique de médicament « ibuprofène ». Comme on l’a vu plus haut, l’analyseur 8 peut également, recevoir directement des chaînes de texte associées à un médicament et/ou à un contexte. L’analyseur 8 peut également recevoir des données d'autres sources (par exemple le Dossier Médical Patient, les logiciels d’aide à la prescription et hospitaliers), notamment les traitements concomitants, le terrain du patient avec ses diagnostics, son âge, son poids, etc. Dans l’exemple décrit ici, l’analyseur 8 met en œuvre un moteur de reconnaissance de type NERL (en anglais Named Entity Recognition and Linking) créé par la Demanderesse. Ce moteur repose sur un réseau de neurones LSTM (long short-term memory), suivi d'une couche CRF (Conditional Random Field), comme dans l’article scientifique Lample et al " Neural architectures for named entity recognition ", 2016, arXiv:1603.01360. Ce moteur est entraîné à partir de 100 000 extraits annotés à la main au format IOB (Inside-outside-beginning), et permet de détecter et de trouver dans un texte le ou les noms des médicaments apparentés, ou autres entités médicales comme les pathologies, symptômes, classes thérapeutiques, dosages etc. par plongement de mot (word embedding). Dans le pratique, le moteur de reconnaissance de type NERL va générer des plongements proches pour des termes médicaux similaires. Par exemple, l’asthénie et la fatigue auront des plongements proches, ce qui de fait les liera l’une à l’autre dans les requêtes de la base de données. Ainsi, la combinaison de l’analyseur 8 avec la base de données pionnière de l’invention permet de réellement utiliser tout le potentiel inexploité jusqu’à maintenant. En effet, l’ambiguïté des notions existe autant du côté des encyclopédies que des utilisateurs (par exemple les médecins). Par conséquent, la base de données pivot seule serait insuffisante, car elle correspondrait in fine à imposer une vision ontologique aux médecins. Inversement, l’analyseur 8 seul serait également insuffisant, car il ne serait pas capable de s’adapter aux subtilités des ontologies. Par contre, la combinaison des deux permet à un médecin d’exprimer sa recherche et d’accéder de manière efficace au contenu des encyclopédies de médicament, ainsi que de couvrir et questionner de manière exhaustive les informations médicales liés au médicament en question, ce qui était jusqu’ici impossible à l’aide des systèmes développés jusqu’à présent. De surcroît, l’annotation de documents scientifiques et la structuration de données brutes en ontologies propriétaires pour constituer la base de données permettent de générer des données requêtables présentant une richesse inconnue à ce jour. Par exemple, cette base de données peut contenir des données spécifiques telles que l’âge, le poids, les terrains physiopathologiques pour reconnaître et associer les subtilités ontologiques propres à chaque médicament pour ces données spécifiques. Par la suite, ces données peuvent être utilisées afin de constituer le moteur de reconnaissance de type NERL. Cela permet aux utilisateurs d’entrer des informations spécifiques aux patients listées ci-dessus en langage naturel, et d’accéder en retour à des ontologies génériques et proposer les posologies adéquates, et/ou alternatives médicamenteuses et/ou les interactions médicamenteuses en fonction des contraintes identifiées par le moteur de reconnaissance de type NERL. Ainsi, il devient par exemple possible pour un utilisateur d’obtenir la posologie optimale d’un médicament pour un patient selon son âge (différenciations selon les différents intervalles posologiques), son poids, ou encore des comorbidités. De même, la structuration des données physiopathologiques en ontologies propriétaires, tel que les différents âges, poids et les terrains contre-indiqués (par exemple insuffisance hépatique, etc.) permet aux utilisateurs d’accéder à des alternatives thérapeutiques ou d’autres informations médicales selon les spécificités des patients. Cela est réalisé par le moteur de recommandation 10, qui permet de requêter la base de données pivot à partir des informations entrées par l’utilisateur et retraitées par l’analyseur 8. Ainsi, le moteur de recommandation 10 permet de mettre en œuvre tous les cas d’utilisation qu’un tel système laisse transparaître. Par exemple, une requête de base peut être d’obtenir les médicaments permettant de traiter une indication thérapeutique. Pour cela, l’utilisateur peut par exemple ne renseigner que l’indication thérapeutique. Cette requête peut être rendue plus subtile en précisant en plus des effets secondaires à éviter, ou un terrain d’un patient. Là où l’invention prend tout son potentiel, c’est qu’il devient possible d’obtenir immédiatement la liste des médicaments connus pour provoquer un ou plusieurs effet(s) indésirable(s) donné(s) ; l’ajout d’une indication thérapeutique pourra déclencher une fonction qui identifie les autres médicaments qui soignent cette pathologie, c’est à dire les alternatives thérapeutiques, et de ne proposer que ceux qui ne provoquent pas le ou les effet(s) secondaire(s) cités dans la requête. L’ajout d’un ou plusieurs terrains physiopathologiques et des médicaments concomitants permettront d’affiner encore davantage cette liste d’alternatives thérapeutiques. De même, cette requête peut être enrichie au fil de l’eau afin de rajouter les divers médicaments qu’un patient prend déjà ou qu’un médecin envisage de prescrire. Encore une autre variante sera la recommandation d’alternatives. En effet, lorsque le moteur de recommandation 10 identifie une incompatibilité entre deux médicaments, ou un effet secondaire ou un terrain contre-indiqué, il pourra également automatiquement rechercher un médicament alternatif qui soigne l’indication thérapeutique d’un médicament désigné par l’utilisateur et qui ne présente pas de risque. Dans une variante encore plus sophistiquée, le moteur de recommandation 10 pourra automatiquement étudier toutes les possibilités d’alternative dans le cas d’une contre-indication médicamenteuse, en cherchant à remplacer l’un puis l’autre des médicaments. Le moteur de recommandation 10 peut donc émettre des recommandations et les intégrer dans une interface graphique au moyen des données au format JSON qu’il récupère de la base de données pivot sur la base de ses requêtes. Ces caractéristiques sont avantageuses, car il faut d’habitude compter au moins 10 à 15 minutes pour trouver les alternatives à un médicament, et vérifier qu'elles sont compatibles avec les traitements en cours, qu'elles ne sont pas contre indiquées avec le terrain physiopathologique du patient, et qu'elles ne provoquent pas un effet secondaire en particulier. À cela s’ajoutent les risques d’erreurs que l’invention permet d’éviter, et le fait que l’utilisateur peut mieux se concentrer sur les conseils à apporter à son patient, et moins sur ce que l’on pourrait qualifier d’intendance. Il apparaît de ce qui précède que le système 2 est particulièrement adapté à une mise en œuvre de type client / serveur, par exemple un site internet sur lequel un médecin se connecte et introduit les données de sa requête, puis l’analyseur 8 et le moteur de recommandation 10 côté serveur lui renvoient les informations pertinentes. Il va néanmoins de soi que d’autres mises en œuvre sont possibles, de manière intégrée sur une seule machine, ou autre. De plus, l’invention trouvera également à s’intégrer de manière naturelle dans un logiciel de prescription ou de délivrance médicamenteuse, ainsi qu’au sein d’un logiciel hospitalier. Système de recommandation pharmacologique, comprenant une mémoire (4) recevant une base de données comprenant des entrées de contexte associées à une indication thérapeutique, un effet secondaire ou un terrain, et des entrées de médicament dans laquelle chaque entrée de médicament associe d’une part des données de médicament comprenant un nom générique de médicament, un nom de médicament, des données de posologie et des données galéniques, d’autre part des données de contraintes comprenant une liste d’indications thérapeutiques, une liste d’effets secondaires, une liste d’entrées d’association contre-indiquée, une liste de terrains contre-indiqués, les entrées de médicament et les entrées de contexte de la base de données étant reliées entre elles par un graphe, un analyseur (8) agencé pour recevoir en entrée des données désignant chacune des données de médicament comprenant au moins un nom générique de médicament ou un nom de médicament et des données de contexte comprenant au moins une indication thérapeutique, un effet secondaire ou un terrain, et pour déterminer à chaque fois une entrée de médicament ou une entrée de contexte, et un moteur de recommandation (10) agencé pour réaliser une requête dans le graphe à partir des entrées de médicament et des entrées de contexte déterminées par l’analyseur (8), et pour retourner des données de recommandation pharmacologique comprenant un ou plusieurs parmi une information de correspondance déterminée partir du recouvrement entre les données de contraintes définies par les entrées de médicaments et les entrées de contexte déterminées par l’analyseur (8), une information d’entrée de médicaments alternatifs pour une ou plusieurs des entrées de médicament déterminées par l’analyseur (8), lesquelles entrées de médicament alternatives présentent des données de contraintes qui comprennent une liste d’indications thérapeutiques compatible avec la ou les indications thérapeutiques des entrées de contexte déterminées par l’analyseur (8) et/ou la liste d’indications thérapeutiques des entrées de médicaments dont elles constituent l’alternative, une liste d’effets secondaires et/ou une liste de terrains contre-indiqués compatibles avec les effets secondaires et/ou les terrains des entrées de contexte déterminées par l’analyseur (8), et dont les listes d’entrées d’association contre-indiquée ne présentent pas de recouvrement entre elles ou avec les autres entrées de médicament déterminées par l’analyseur (8). Système de recommandation selon la revendication 1 dans lequel, lorsque l’analyseur (8) détermine un nom générique de médicament, il retourne les entrées de médicament dont les données de médicament comprennent ce nom générique de médicament. Système de recommandation selon la revendication 1 ou 2, comprenant en outre une interface utilisateur (6) pour entrer lesdites données en entrée désignant chacune des données de médicament et/ou des données de contexte. Système selon l’une des revendications précédentes, dans lequel l’analyseur (8) est agencé pour mettre en œuvre un moteur de reconnaissance de type NERL pour déterminer à chaque fois une entrée de médicament ou une entrée de contexte à partir desdites données en entrée désignant chacune des données de médicament et/ou des données de contexte. Système selon la revendication 4, dans lequel l’analyseur (8) comprend un réseau de neurones LSTM (long short-term memory), et une couche CRF (Conditional Random Field) pour mettre en œuvre le moteur de reconnaissance de type NERL. Système selon l’une des revendications précédentes, dans lequel la mémoire (4) reçoit des entrées de médicaments dans lesquelles les données de médicament comprennent en outre des données d’ingrédients, et/ou les données de contraintes comprennent des données spécifiques telles qu’une ou plusieurs tranches d’âge, de poids et/ou de terrains physiopathologiques. Procédé de recommandation pharmacologique mis en œuvre par ordinateur, comprenant les opérations suivantes : Prévoir une base de données comprenant des entrées de contexte associées à une indication thérapeutique, un effet secondaire ou un terrain, et des entrées de médicament dans laquelle chaque entrée de médicament associe d’une part des données de médicament comprenant un nom générique de médicament, un nom de médicament, des données de posologie et des données galéniques, et d’autre part des données de contraintes comprenant une liste d’indications thérapeutiques, une liste d’effets secondaires, une liste d’entrées d’association contre-indiquée, une liste de terrains contre-indiqués, les entrées de médicament et les entrées de contexte de la base de données étant reliées entre elles par un graphe, Recevoir en entrée des données désignant chacune des données de médicament comprenant au moins un nom générique de médicament ou un nom de médicament et des données de contexte comprenant au moins une indication thérapeutique, un effet secondaire ou un terrain, Pour chacune des données de l’opération b), déterminer à chaque fois une entrée de médicament ou une entrée de contexte, Requêter le graphe de la base de données de l’opération a) à partir des entrées de médicament et des entrées de contexte de l’opération c), et retourner des données de recommandation pharmacologique comprenant un ou plusieurs parmi une information de correspondance déterminée partir du recouvrement entre les données de contraintes définies par les entrées de médicaments et les entrées de contexte de l’opération c), une information d’entrée de médicaments alternatifs pour une ou plusieurs des entrées de médicament de l’opération c), lesquelles entrées de médicament alternatives présentent des données de contraintes qui comprennent une liste d’indications thérapeutiques compatible avec la ou les indications thérapeutiques des entrées de contexte de l’opération c) et/ou la liste d’indications thérapeutiques des entrées de médicaments dont elles constituent l’alternative, une liste d’effets secondaires et/ou une liste de terrains contre-indiqués compatibles avec les effets secondaires et/ou les terrains des entrées de contexte de l’opération c), et dont les listes d’entrées d’association contre-indiquée ne présentent pas de recouvrement entre elles ou avec les autres entrées de médicament de l’opération c). Procédé selon la revendication 7, dans lequel, lorsque l’opération c) détermine un nom générique de médicament, toutes les entrées de médicament dont les données de médicament comprennent ce nom générique de médicament sont retournées. Procédé selon la revendication 7 ou 8, dans lequel l’opération c) comprend mettre en œuvre un moteur de reconnaissance de type NERL pour déterminer à chaque fois une entrée de médicament ou une entrée de contexte à partir desdites données en entrée désignant chacune des données de médicament et/ou des données de contexte. Procédé selon la revendication 9, dans lequel l’opération c) comprend mettre en œuvre un moteur de reconnaissance de type NERL comprenant un réseau de neurones LSTM (long short-term memory), et une couche CRF (Conditional Random Field). Procédé selon l’une des revendications précédentes, dans lequel l’opération b) est mise en œuvre au moyen d’une interface utilisateur, et/ou par accès à des données d'autres sources, en particulier par accès au Dossier Médical Patient. Procédé selon l’une des revendications précédentes, dans lequel des entrées de médicaments dans lesquelles les données de médicament comprennent en outre des données d’ingrédients, et/ou les données de contraintes comprennent des données spécifiques telles qu’une ou plusieurs tranches d’âge, de poids et/ou de terrains physiopathologiques. Produit de programme d’ordinateur comprenant des instructions pour mettre en œuvre le procédé selon l’une des revendications 7 à 12 lorsqu’il est exécuté sur un ordinateur. Support de stockage sur lequel est enregistré le produit de programme d’ordinateur selon la revendication 13.