WP2 : Systèmes d’Organisation de Connaissances de santé (SOC)

1  Objectifs généraux

Le but global de ce work-package est de consolider et adapter deux logiciels importants du Système d’Information du CISMeF disponibles sur la Plateforme PlaIR.

2  Définition des priorités

Suite à une étude de « benchmarking » (comparaison de solutions) début 2015, le choix technique de la base de données NoSQL s’est porté sur le framework Java « Infinispan » (la comparaison nous a mené en outre à préférer ce nouveau paradigme technologique plutôt qu’un entrepôt SPARQL ou une « classique » base de données relationnelle).

La tâche WP2.1 a donc été le pré-requis initial à la migration de HeTOP et ECMT. Cette tâche a été réalisée entre fin 2015 et mi 2016. Ceci dit, ce socle commun de gestion des données devra, dans un futur proche, pouvoir gérer les éditions en temps réels. En effet, pour le moment, le chargement des données se fait uniquement via une réplication d’une base de données relationnelle (Oracle). L’objectif final serait d’obtenir une base de données NoSQL complètement autonome.

Concernant HeTOP, la tâche WP2.2 est en cours de finalisation. La partie technique est terminée. La partie de fond concernant les SOC en leurs enrichissements se fait soit au fil de l’eau notamment par l’équipe médicale (SJD et JFG), soit de façon massive via des mises à jour régulières par l’ingénieur d’études recruté par le projet (KB).

Concernant l’ECMT, la tâche WP2.3 est bien avancée également. Il s’agit d’ailleurs d’un travail partiellement effectué dans le cadre de la thèse de Chloé Cabot (soutenance prévue fin 2017). Un travail de tests et d’évaluation important a été effectué notamment via des participations à des challenges internationaux en matière d’indexation automatique (CLEF) (CB et LFS). De plus, un nouveau sous-projet est en cours de construction autour de l’utilisation de l’ECMT dans l’indexation des comptes-rendus médicaux de tout l’historique informatique du CHU de Rouen (environ 14 millions de textes).

2. Réalisations

2.1 Travaux en cours

Le premier logiciel est nommé HeTOP pour Health Terminology/Ontology Portal. Il s’agit d’un serveur de terminologies de santé disponible sur l’Internet via une application web et un service web pour les machines. Le principe est d’y intégrer les principaux SOC (Systèmes d’Organisation des Connaissances) en Santé utilisés et utilisables dans beaucoup de contextes en médecine et biologie. Ces SOC sont aujourd’hui des outils centraux dans la description de l’information autant sur le fond que sur la forme. HeTOP sert non seulement à les stocker, à les centraliser mais aussi à les enrichir sémantiquement grâce à l’ajout de traductions (ils peuvent être disponibles dans plusieurs langues) ou à l’ajout de relations sémantiques entre SOC différents (alignements). L’outil HeTOP existe depuis 2012 et a été l’objet de nombreuses études. Sa formalisation et sa validation ont été complétées lors de la thèse de Julien Grosjean dans le cadre du projet PlaIR (1).

L’objectif central de PlaIR2.018 pour HeTOP consiste à consolider l’application mais aussi ses fondements théoriques concernant les enrichissements sémantiques mais aussi à redévelopper complètement la partie technique « basse » pour changer de paradigme technologique. En effet, jusque-là, HeTOP fonctionnait grâce à une base de données relationnelle « classique ». Cependant, comme le volume de données de cessait de croitre, les temps de réponses (lors d’une recherche d’un concept parmi plus de 7 millions de termes) ne devenaient plus satisfaisants (plusieurs secondes). Ainsi, grâce à l’arrivée du nouveau paradigme « NoSQL », nous avons identifié des pistes d’améliorations significatives dans ce domaine. Ce type de base de données étant très récent, il est nécessaire d’effectuer des tests de non régression et surtout de s’assurer que les fonctionnalités critiques d’une base de données classique sont compatibles en NoSQL (propriétés ACID des transactions, sécurité et concurrence). Il est également obligatoire de migrer toutes les couches applicatives reliées (moteur de recherche, outils connexes, …).

Le second logiciel est l’ECMT (Extracteur de Concepts Multi-Terminologique). Cet outil permet d’identifier des concepts d’intérêt dans des textes, plus particulièrement médicaux. Il se base sur les SOC définis précédemment et, grâce à des algorithmes combinatoires et de Traitement Automatique de la Langue, extrait les concepts pertinents du texte. Ce type de problématique est classique de nos jours car beaucoup de documents manuscrits ou numériques sont stockés mais restent difficiles à exploiter de façon automatique pour retrouver des informations pertinentes. À l’ère du « Big Data », il est essentiel de pouvoir valoriser toutes les données y compris celles qui sont non structurées. Typiquement, un énorme volume d’information potentiellement intéressant pourrait venir des comptes-rendus médicaux générés pour chaque visite ou examen médicaux. Cela pourrait, entre autres, venir enrichir les entrepôts de données cliniques qui commencent à apparaître à peu partout dans le monde et qui seront centraux dans un futur proche pour améliorer la prise en charge des patients, leur suivi mais aussi pour effectuer des études épidémiologiques ou faciliter la mise place de nouvelles études cliniques ou même encore de créer des indicateurs de qualité.

Tout comme HeTOP, ECMT souffrait de lenteurs importantes liées en partie à l’utilisation d’une base de données relationnelle. L’objectif et non seulement de migrer l’outil vers une base de données NoSQL mais aussi de repenser son architecture pour l’adapter au mieux à des besoins d’utilisation en masse de façon rapide et flexible (nombreux paramètres, filtres, etc. à formaliser).

Avancées au 30 octobre 2017

Avec l’arrivée de l’ingénieur d’études rémunéré par le projet (Kévin Billey), plusieurs terminologies ont été mises à jour. Un grand « chantier » de mise à plat de la méthodologie et des outils d’intégration a été entrepris ; ceci comprend la création d’un « framework » (Java) générique pour l’insertion ou la mise à jour des terminologies dans le modèle de données HeTOP. Celui-ci permet un codage plus cohérent et une maintenance aisée. En effet, les formats et structures de terminologies pouvant évoluer, il est souvent nécessaire de revenir dans le code pour adapter des détails.

De plus, ce nouveau framework permet d’assurer une automatisation plus poussée des mises à jour en évitant plusieurs étapes manuelles jusqu’alors fastidieuses.

Pour terminer l’automatisation des processus, il reste à créer des scripts de « batch » réguliers permettant de détecter si de nouvelles versions des terminologies ont été déposées sur un répertoire d’un serveur afin que la mise à jour se déclenche automatiquement sans la moindre intervention manuelle.

De nombreuses étapes de vérifications restent à effectuer pour s’assurer du bon fonctionnement de ces nouveaux programmes mais aussi de la conformité des données insérées.

Entre mi-septembre et fin octobre 2017, plusieurs terminologies ont été mises à jour via le nouveau framework (encore en évolution donc) : LPP, CCAM, CIM-10, Cladimed.

En outre, le livrable 2.1 est en cours de rédaction pour une fin prévue en décembre 2017 avec une description complète de la migration SQL vers NoSQL et des nombreux développements et nouvelles méthodologies mises en place pour la nouvelle version de HeTOP et des outils sous-jacents.

Dans le même temps, le livrable 2.2 est également en cours d’écriture afin de résumer l’ensemble des modifications structurelles et logicielles apportées à la base de données de HeTOP. Il listera également, de façon exhaustive, les terminologies insérées ou mises à jour ainsi que les différentes opérations de maintenance manuelles ou automatiques effectuées pour enrichir le contenu de ces terminologies (UMLS, traductions, alignements, etc.). Un sous-projet spécifique est d’ailleurs en préparation avec l’équipe du Département d’Information Médicale du CHU de Rouen afin d’améliorer fortement la qualité sémantique de la terminologie CIM-10 (Classification Internationale des Maladies) ; cette ressource est particulièrement importante puisqu’elle sert de référence au codage des dossiers patients dans les établissements de santé en France et que la rémunération de ces établissements dépend en grande partie de cette activité de codage (T2A). Plus de détails seront apportés dans le livrable 2.2 lorsque ce sous-projet sera avancé.

Concernant l’ECMT, un travail important sur la migration à la technologie NoSQL a été entrepris autant sur la structure du programme que sur les méthodologies employées. De plus, une attention particulière a été apportée aux performances de l’outil afin de pouvoir indexer un document de taille « moyenne » en moins de 100 ms. Dans ce cadre, une étude formelle devrait débuter sous peu (décembre 2017) afin de confronter cette nouvelle version de l’ECMT à un corpus d’envergure : environ 14 millions de documents médicaux (comptes-rendus, courriers, etc.) du CHU de Rouen (dans le cadre de l’activité d’informatique médicale liée à un projet interne d’entrepôt de données cliniques). Plus de détails seront apportés dans le livrable 2.3 lorsque ce sous-projet sera avancé.

Avancées au 30 Avril 2018

L’enrichissement du contenu terminologique d’HeTOP s’est poursuivi par l’évolution du framework JAVA concernant le développement de nouveaux programmes ETL (Extract-Transform-Load) qui permettent les mises à jour des SOC présents dans HeTOP. Un tel programme a récemment été réalisé pour actualiser la NCIt (National Cancer Institute Thesaurus) et d’autres sont en cours de finalisation pour OMIM (Online Mendelian Inheritance in Man), la base EntrezGene de NCBI, HPO (Human Phenotype Ontology) et ORDO (Orphanet Rare Disease Ontology).

D’autres programmes ETL ont aussi été créés pour intégrer de nouveaux SOC de Santé dans HeTOP : les Médicaments Virtuels (MédicaBase), la DO (Disease Ontology) ainsi que la CIM-10 (Classification Internationale des Maladies) en langue anglaise et la CIM-9 en langues anglaise et allemande. Pour cette dernière, d’autres langues seront bientôt ajoutées. Sera aussi prochainement inclus dans HeTOP d’autres SOC comme les ressources terminologiques de Santé produites par l’INIST par exemple, ainsi que la CIM-11 qui devrait être finalisée et publiée dans les prochains mois.

La plupart des programmes ETL ont par la suite resservi pour remettre à jour certains SOC car ceux-ci furent actualisés en début d’année : c’est le cas de la CIM-10, la CCAM (Classification Commune des Actes Médicaux) et de la classification des dispositifs médicaux Cladimed ; ou bien sont édités tous les mois comme la LPP (Liste des Produits et Prestations) ou encore les Médicaments Virtuels de MédicaBase.

Pour étendre l’automatisation du processus, un script « BATCH » a été créé puisqu’il est capable de déclencher le programme de mise à jour dès qu’une nouvelle version d’un SOC est déposée sur un serveur. Pour l’instant, son utilisation est pertinente pour la LPP et les Médicaments Virtuels de MédicaBase car ils sont régulièrement édités. Il faudra s’assurer pour les autres SOC que leur format de mise à jour demeure contant afin qu’il ne soit pas nécessaire de reprendre le programme pour l’adapter.

 Le travail d’enrichissement a continué en mettant dans un premier temps à jour les données d’UMLS (Unified Medical Language System), un méta-thésaurus regroupant et mettant en correspondance de nombreux SOC en Santé. UMLS a la particularité d’attribuer des identifiants uniques (appelés CUI) à tous les concepts, et l’intérêt est lorsque que des concepts partagent le même CUI car cela signifie que ces concepts, même s’ils sont de sources différentes, sont strictement équivalents du point de vue d’UMLS. Ce méta-thésaurus dispose également d’un réseau sémantique permettant de qualifier les concepts par l’intermédiaire de types sémantiques (maladie, symptôme, substance, dispositif, etc.).

Ensuite, un programme a été créé pour établir des alignements inter-terminologiques (c’est-à-dire des correspondances entre deux concepts identiques mais provenant de terminologies différentes). Ce programme contient un algorithme spécifique permettant de caractériser chaque alignement par un score de ‘fiabilité’ calculé en fonction des critères qui ont permis l’alignement (similitude des termes, données UMLS, etc.). Ce score constitue donc une aide pour la validation de ces alignements. Ainsi de nombreuses propositions d’alignements ont été générés de manière automatique (plus de 200 000) à partir des concepts des 14 principaux SOC (MeSH, SNOMED-CT, NCIt, MEDDRA, etc.) et environ 16% ont été validés à ce jour.

Enfin, un second programme a été créé afin de proposer des synonymes et des traductions aux concepts d’HeTOP. Les termes proposés sont déterminés à partir du réseau d’alignements (réseau sémantique) des concepts et un score de ‘fiabilité’ est aussi attribué à chaque terme pour aider à sa validation : plus ce score est élevé, plus la proposition est pertinente. Dans le cadre du renforcement sémantique de la CIM-10, ce programme a parmi de générer massivement des propositions de synonymes (plus de 18 000) dont un travail de validation est en cours par le collège d’experts de l’équipe.

Disease Ontology n’étant qu’en anglais, un long travail de traduction a été entamé mais ce travail se fait également au fil de l’eau notamment grâce aux alignements proposés.

Concernant l’ECMT, un gros effort a été fourni par plusieurs membres de l’équipe : au niveau technique, l’adaptation du cœur de l’outil a été terminée et au niveau fonctionnel, plusieurs études d’évaluation ont débuté.

La tâche technique la plus complexe a été d’adapter la recherche des termes à partir du texte dans le S3M.

L’algorithme original du sac-de-mots a été légèrement modifié pour améliorer les performances du système. En effet, dans l’algorithme initial, le principe était de chercher les combinaisons de mots des plus longues au plus courtes (un seul mot donc) en les comparant à la base de termes (HeTOP). La nouvelle méthodologie consiste d’abord à stocker temporairement (cache) l’ensemble des termes contenant chacun des mots d’un sac-de-mots donné. Cet ensemble est ensuite retraité par des suites d’intersections entre mots pour enfin en tirer les termes finaux correspondants au sac-de-mot. L’alliance d’un cache et d’un traitement brut par mots à permis d’améliorer considérablement les performances puisque cette méthode utilise d’une part la mémoire vive, d’autre part la parallélisation et enfin la puissance brute de la recherche textuelle Lucene.

 Plusieurs autres briques logicielles dont l’ECMT dépend ont été migrées sans difficultés.

Au niveau de l’exploitation, deux grandes études ont été conduites :

–    Étude quantitative sur les résultats de l’annotation automatique d’environ 12 millions de documents de santé issus du CHU de Rouen (entre 2000 et 2017). Il s’agit principalement de comptes-rendus hospitaliers/imagerie/chirurgie/analyses, courriers et ordonnances. L’annotation s’est effectuée sur une durée de 24 heures grâce à l’utilisation d’une machine très parallèle (144 cœurs, 1To RAM) ; cette expérimentation montre d’ailleurs la vélocité de l’outil et amène une possibilité très importante, encore impossible il y a plusieurs années : ré-annoter entièrement d’énormes corpus dans un temps relativement restreint. Ceci est d’une importance capitale car les algorithmes, méthodes et contenus terminologiques sont amenés à évoluer régulièrement ; il est donc indispensable de corriger/améliorer l’annotation au fur et à mesure en ré-annotant tout le corpus. Par ailleurs, les résultats de l’analyse quantitative sont intéressants quoi que non surprenants : les terminologies les plus généralistes sortent le plus d’annotations. Plus de 5 milliards d’annotations ont été générées, puis, via un filtre pour écarter les concepts les plus fréquemment jugés faux ou non pertinents, ce nombre est passé à 2,6 milliards. Les résultats plus approfondis sont en cours de publication.

–     Étude qualitative sur un échantillon aléatoire de documents du corpus cité ci-avant. À partir des annotations générées par ECMT et via une interface graphique (outil web) permettant de valider les concepts identifiés, des experts ont évalué pour chacun d’eux s’il était « valide », « faux », « non pertinent » ou « indéterminé ». Par ailleurs, à chaque fois qu’un concept était évalué comme « faux », l’erreur était catégorisée pour ainsi construire une liste d’erreurs types soit du programme ECMT (sac-de-mots, stemming, etc.) soit des contenus terminologiques (synonymes faux, etc.). Dans le cadre d’un stage de M1 en Santé Publique par Mlle Majdouline Lahrach (mémoire en cours de rédaction), cette évaluation a permis de passer d’une f-mesure de 0,457 à 0,630 après une première itération de corrections. Avec un travail plus approfondi sur le plan technique et sur le plan terminologique, il est légitime de penser qu’il serait possible d’atteindre la barre des 0,7 de f-mesure avant la fin de l’année 2018 (seuil critique en français selon la littérature).

Tous ces travaux autour de l’ECMT ont permis de définir des méthodes et de développer des outils qui serviront de base à l’amélioration continue du programme et des contenus terminologiques. Tous ces éléments sont développés dans le livrable 2.3.

Avancées au 30 Octobre 2018

Concernant le contenu HeTOP, plusieurs SOC ont été mis à jour : la Classification Internationale des Maladies 9ème version encore utilisée dans plusieurs pays (mais pas en France), RadLex (radiologie), HPO (maladies rares), NCIt (cancer), CISP-2 (soins primaires), ORDO/HRDO (maladies rares), NABM (biologie) et le DeCS (extension sud-américaine du MeSH).

Les programmes ETL d’intégration sont désormais stabilisés.

Un travail approfondi a été entrepris pour consolider le réseau sémantique des ressources incluses dans HeTOP ; il s’agit de créer des “alignements” entre concepts de SOC différents qui sont autant de relations sémantiques importantes pour ainsi constituer un réseau sémantique multi-terminologique et inter-lingue. Les intérêts sont multiples : cela permet de passer d’un système de codage à un autre par exemple ou encore d’échanger des données tout en conservant le sens mais en s’adaptant aux SOC spécifiques de tel ou tel système. Ce processus est appelé interopérabilité sémantique. Le réseau sémantique HeTOP est unique ; en plus de celui de l’UMLS, il propose des relations sémantiques vers des concepts “non UMLS” comme par exemple, des concepts issus de SOC français.

Dans ce cadre, des algorithmes existants, mais sur les anciennes technologies, ont été repris et améliorés notamment en ce qui concerne le scoring ; des alignements automatiques sont proposés pour les experts humains afin de leur faire gagner un maximum de temps lors de la curation manuelle. Cette étape est fastidieuse et complexe puisque les connaissances évoluent et sont spécifiques de domaines pointus. L’outil d’alignement automatique développé par l’équipe intègre un score à chaque alignement en fonction des caractéristiques sémantiques des concepts impliqués. Plus le score est haut, plus l’expert peut avoir confiance en l’alignement. Le site web de HeTOP a été adapté pour intégrer un onglet spécifique à la validation des alignements automatiques produits.

En utilisant ces mêmes méthodes, il est également possible d’effectuer des traductions automatiques de libellés de concepts ou encore de proposer des synonymes pour enrichir le lexique d’un SOC en particulier. Ces programmes ont été développés et utilisés en routine.

Un module de statistiques est en cours de développement pour afficher des bilans en nombres sur le S3M (nombre de concepts, traductions, alignements, etc.). Ce module s’appuie sur la base de données NoSQL et a donc été pensé en tant que tel (c’est plus complexe que d’exploiter une base de données SQL dans ce cadre).

Pendant le prochain semestre, plusieurs SOC vont être mis à jour, avec parfois un programme ETL à développer de façon ad hoc : FMA (anatomie humaine), LOINC (résultats de laboratoire) ou encore la version 2018 de l’UMLS (réseaux et types sémantiques).

Concernant ECMT, l’objectif actuel est d’offrir un support méthodologique à deux doctorants en CIFRE avec la société OMICX qui travaillent sur l’apprentissage automatique pour représenter les documents de façon vectorielle. Divers échanges et premiers tests ont montré des résultats encourageants qui pourraient notamment servir de filtre à l’ECMT actuel pour éviter du bruit (faux positifs) voire pour apporter du rappel (faux négatifs).

D’autres phases de correction de l’outil ainsi que de la base terminologique sont planifiées à partir du deuxième trimestre 2019.

Livrables attendus

Livrable 2.1 : Choix d’une solution de base de données NoSQL basée sur un état de l’art de solutions NoSQL libres et des test de développement et performances. Rapport de migration des données et service web d’accès au cache NoSQL (prévu fin 2017).

Livrable 2.2 : Adaptation du Serveur 3M à la solution NoSQL choisie. Rapports annuels de mises à jour du Serveur 3M en fonction des nouveaux SOC, SOC mis à jour et enrichissements par les experts (décembre 2017 puis chaque année du projet).

Livrable 2.3 : Adaptation de l’ECMT à la solution NoSQL choisie et création d’un service web dédié (décembre 2017 puis chaque année du projet).