ACCUEIL ›BLOGS

Amélioration des systèmes de pharmacovigilance à l'aide du traitement du langage naturel sur les dossiers médicaux électroniques
-

29 mars 2020

Cette recherche se concentre sur l'amélioration Systèmes de pharmacovigilance utilisant le traitement du langage naturel sur les dossiers médicaux électroniques (DME). Notre tâche principale était de développer un modèle de PNL pour extraire les cas de réactions indésirables aux médicaments (EIM) du DME. L'équipe a dû collecter des données auprès de deux hôpitaux qui utilisent des systèmes de DME (à savoir l'hôpital de l'Université de Dodoma (UDOM) et l'hôpital Benjamin Mkapa (BM)). Au cours de la collecte et de l'analyse des données, nous avons travaillé avec des professionnels de la santé des deux hôpitaux mentionnés à Dodoma. Nous avons également utilisé l'ensemble de données public de la base de données MIMIC-III. Ces ensembles de données ont été présentés dans différents formats, CSV pour l'hôpital UDOM et MIMIC III et PDF pour l'hôpital BM comme indiqué sur le pièce jointe.

Équipe lors d'un entretien avec un pharmacologue à l'hôpital BM

Dans la plupart des cas, les pratiques de pharmacovigilance dépendent de l'analyse des essais cliniques, de la rédaction biomédicale, des examens d'observation, des dossiers de santé électroniques (DSE), du signalement spontané (RS) et des médias sociaux (Harpaz et al., 2014). En ce qui concerne notre contexte, nous avons considéré que le DME était plus informatif que d'autres pratiques, comme le suggèrent (Luo et al., 2017). Nous avons étudié les schémas des DME des deux hôpitaux. Nous avons recueilli les données des patients hospitalisés, car les patients ambulatoires auraient donné l'historique incomplet du patient. De plus, nos systèmes d'information sur la santé ne sont pas intégrés, ce qui rend difficile le suivi de l'historique complet des patients à moins que les patients n'aient été admis dans un hôpital particulier pendant un certain temps. À partir de toutes les sources de données utilisées, il y avait un modèle d'informations que nous recherchions, et cela incluait les antécédents cliniques, les antécédents du patient, les symptômes développés, les allergies / effets indésirables découverts pendant le traitement et le résumé du congé du patient.

Tout en travaillant sur les données des hôpitaux UDOM et BM, nous avons rencontré plusieurs défis qui ont amené l'équipe à se concentrer sur l'ensemble de données MIMIC-III tout en recherchant un moyen alternatif à nos données locales. Voici les défis relevés:

  • Les rapports n'indiquaient pas clairement les cas d'EIM.
  • Dans la plupart des cas, le médecin n'a pas mentionné les raisons de changer un médicament sur un patient particulier, ce qui rendait difficile de comprendre si le médicament ne fonctionnait pas bien pour un patient spécifique ou pour toute autre raison comme une réaction indésirable.
  • La justification des cas d'EIM était vague
  • Inadéquation des informations entre les patients et les médecins
  • Les patients parlent d'une manière que le médecin ne peut pas comprendre
  • Il existe un écart considérable entre les agents de santé et les autorités réglementaires (ils ne savent pas s'ils doivent signaler les cas d'EIM)
  • La question des effets indésirables est si complexe car il y a beaucoup à prendre en compte comme les interactions médicament-médicament, médicament-aliment et médicament-plante.
  • Il n'y avait pas de style de déclaration commun / cohérent chez les médecins
  • La langue utilisée pour signaler est difficile à comprendre pour un non-spécialiste.
  • Certains champs ont été laissés vides sans aucune information, ce qui a conduit à des antécédents médicaux incomplets
  • Le processus d'annotation s'est prolongé puisque nous avions un pharmacologue pour le travail.

Après avoir remarqué tous ces défis, l'équipe a soigneusement étudié la base de données MIMIC-III pour évaluer la disponibilité des données avec les cas d'EIM, ce qui aiderait à trouver le modèle de base du problème. Nous avons découvert que le tableau NoteEvent contient suffisamment d'informations sur les antécédents du patient avec toutes les indications claires des cas d'EIM et sans effet indésirable. voir le texte.

Pour commencer, nous avons pu interroger 100,000 enregistrements de la base de données avec de nombreux attributs, mais nous avons utilisé une colonne de texte trouvée dans le tableau NoteEvent avec l'historique complet du patient, y compris (antécédents du patient, médicaments, posologie, examen, changements notés pendant les médicaments , symptômes, etc.). Nous avons commencé l'annotation du premier groupe en filtrant les enregistrements pour rester avec les lignes d'intérêt. Nous avons utilisé les mots-clés suivants dans la recherche; indésirables, réactions, événements indésirables, effets indésirables et réactions. Nous avons découvert que seulement 3446 lignes contiennent des mots qui ont guidé l'équipe dans le processus d'étiquetage. Les enregistrements ont ensuite été annotés avec les étiquettes 1 et 0 pour les cas ADR et non ADR respectivement, comme indiqué dans le cahier de filtration.

En analysant les données, nous avons constaté qu'il y avait plus de cas non-ADR que de cas ADR, dans lesquels les cas non-ADR étaient 3199 et 228 cas ADR et 19 lignes de données non annotées. En raison du déséquilibre élevé des données, nous avons réduit les cas non-ADR à 1000, et nous avons appliqué des techniques d'échantillonnage (c'est-à-dire suréchantillonnage des cas ADR à 800) pour au moins équilibrer les classes afin de minimiser les biais pendant la modélisation.

Après une annotation et une analyse simple, nous avons utilisé NLTK pour appliquer les techniques de prétraitement de base pour le corpus de texte comme suit: -

  1. Conversion des phrases corpus brutes en minuscules, ce qui aide dans d'autres techniques de traitement comme l'analyse syntaxique.
  2. Tokenisation de phrase, en raison du texte dans les paragraphes, nous avons appliqué la détection des limites de phrase pour segmenter le texte au niveau de la phrase en identifiant le point de départ et le point final de la phrase.

Ensuite, nous avons travaillé avec des expressions contextuelles régulières pour extraire des informations d'intérêt des documents en supprimant certains des caractères inutiles et en les remplaçant par des déclarations ou des caractères facilement compréhensibles comme pour les directives professionnelles.

Nous avons supprimé les affixes dans les jetons qui placent les mots / jetons dans leur forme racine. De plus, nous avons supprimé les mots courants (mots vides) et appliqué la lemmatisation pour identifier la ou les parties correctes du ou des discours dans le texte brut. Après le prétraitement des données, nous avons utilisé la fréquence inverse du document (TF-IDF) de scikit-learn pour vectoriser le corpus, ce qui donne également les meilleurs mots-clés exacts du corpus.

Dans la modélisation pour créer un modèle de base, nous avons travaillé avec des algorithmes de classification utilisant scikit-learn. Nous avons formé six modèles différents qui sont Support Vector Machines, eXtreme Gradient Boosting, Adaptive Gradient Boosting, Decision Trees, Multilayer Perceptron et Random Forest, puis nous avons sélectionné trois modèles (Support Vector Machine, Multilayer Perceptron et Random Forest) qui ont mieux performé sur la validation par rapport à d'autres modèles pour une évaluation plus approfondie du modèle. Nous utiliserons également l'approche d'apprentissage en profondeur dans la prochaine phase du projet pour produire des résultats plus prometteurs pour le modèle à déployer et à maintenir en pratique. Voici la lien vers colab pour le prétraitement et la modélisation des données.

À partir de la base de données UDOM, nous avons collecté un total de 41,847 dossiers de patients en blocs de 16185, 18400 et 7262 respectivement de 2017 à 2019. L'ensemble de données a les attributs suivants (date, numéro d'admission, âge du patient, sexe, taille (kg), état d'allergie, examen, ID d'enregistrement, antécédents du patient, diagnostic et médicaments), nous l'avons réduit à 12,708 enregistrements en supprimant les colonnes manquantes et non informatives Lignes. Nous avons utilisé des expressions contextuelles régulières pour extraire les informations d'intérêt des documents comme pour les directives professionnelles. Les données nettoyées et échangées, le formatage, l'analyse et la préparation des données pour l'apprentissage automatique ont été élaborées en ce lien Colab.

À l'hôpital BM, les fichiers PDF extraits de l'EMS contiennent des dossiers patients avec les informations suivantes.

  1. Rapports de sortie
  2. Notes médicales
  3. Histoire des patients
  4. Notes de laboratoire

Les professionnels de la santé des hôpitaux respectifs ont annoté manuellement les étiquettes de chaque document, et cette tâche a pris la plupart de notre temps dans cette phase du projet. Nous continuons de collecter et d'interpréter davantage de données de ces hôpitaux.

L'équipe organise et extrait les informations des fichiers PDF de l'hôpital BM en échangeant le formatage des données, en analysant et en préparant les données pour l'apprentissage automatique. Nous avons expérimenté le traitement OCR pour les fichiers PDF afin d'extraire des données, mais nous n'avons pas généré de résultats prometteurs car plus d'informations semblaient manquer. Nous avons donc du mal à supprimer par programme le contenu de fichiers individuels et à les aligner sur les étiquettes correspondantes fournies par les professionnels.

La grande leçon que nous avons apprise jusqu'à présent est que la plupart des données stockées dans nos systèmes locaux ne sont pas informatives. Les décideurs doivent établir des normes pour guider les développeurs de systèmes pendant le développement et les praticiens de la santé lorsqu'ils utilisent le système.

Enfin et surtout, nous tenons à remercier nos parties prenantes, nos mentors et nos bailleurs de fonds pour votre implication dans nos activités de recherche. C'est grâce à un tel partenariat que nous pouvons atteindre notre objectif principal.