Ce texte explique rapidement le projet DRUID. Voir ma bibliographie pour des informations plus précises
Participants à ce projet :
Frédérique Laforest, Maître de
conférences
Youakim Badr, doctorant (99-03)
Mohamed Salah Boumediene, stage de DEA (01)
Arnaud Weill, stage de DEA(99)
Jonathan Garcia, stage de DEA (00)
Stefan Oprescu, stage de DEA (02)
Jean-François Bellet, Stage de mémoire CNAM (juin 00-juin 01)
Alban Alussi, stagiaire de 2ème année cycle ingénieur informatique
(été 01)
Christophe Salce, en projet de fin d'études ingénieur informatique (nov03-juin04)
André Flory, Professeur
Financements:
ACI TIPHAD (99-01)
RNTS COQUAS (01-04)
HTSC Région Haute Picardie DocPatient
(03-05)
Les bases de données et les bases de documents ont été créées pour des applications totalement différentes. Dans le premier cas, il s'agit de fournir des supports de stockage pour traiter et interroger des données dont la création et la mise à jour sont fréquentes. Dans le second cas il s'agit de retrouver des documents à l'aide de mots clés, ces documents contenant des informations stables rarement modifiées. L'arrivée d'Internet et du Web a rapproché ces deux mondes en permettant d'une part de remplir les documents à l'aide de données d’une base et d'autre part d'indexer les documents. Ces deux approches sont opposées en ce sens que l'une (données) relève des informations structurées alors que l'autre (documents) fait partie des approches que l'on appelle aujourd'hui les données semi-structurées.
Pour la gestion du dossier médical, les systèmes classiquement proposés sont fondés sur des bases de données. Pour le médecin, cette approche se traduit par des saisies dans des grilles. La variété des cas médicaux s'accommode mal de systèmes figés et rigides. Cependant, l'utilisation de bases de données pour l'analyse et le calcul est aujourd'hui la seule approche permettant d'accomplir des recherches et traitements efficaces. D'un autre côté, le document électronique est proche du dossier médical papier. Malgré les travaux entrepris à ce jour, l'utilisation directe du document comme base de données de production n'est pas encore possible : les systèmes d'interrogation de bases documentaires sont peu précis et la gestion des mises à jour y est difficile.
Dans cette étude, nous montrons comment il est possible d'allier la souplesse d’une interface documentaire et la rigueur d’une base de données. L'approche que nous proposons n'est pas globale et doit être adaptée à chaque type de métier. Elle semble pouvoir s'adapter particulièrement bien à l'informatisation du dossier médical.
Les données semi-structurées sont des données qui possèdent une structure flexible et des données hétérogènes. La plupart du temps, un ensemble de données semi-structurées est représenté sous la forme d'un graphe dont les feuilles contiennent les données et dont les nœuds et les liens représentent la structure de l'ensemble. La modification, l'ajout ou la suppression d'une donnée entraîne une modification du graphe, c'est-à-dire de la structure de l'ensemble. XML (eXtended Markup Language) est un langage qui permet de créer facilement des documents contenant des données semi-structurées. La structure des données est définie par des balises encadrant les portions d'informations. L'ensemble des balises pouvant être inclues dans un document est défini dans la DTD (Document Type Definition) associée au document.
De nombreuses équipes de chercheurs visent à développer des mécanismes d'interrogation d’informations semi-structurées se rapprochant des langages des bases de données. Pour ce faire, les requêtes sont traduites en recherches de chemins dans les graphes. On peut notamment citer XML-QL ou Lorel. Cependant, les résultats actuels restent assez éloignés des capacités des bases de données, et les problématiques liées à la recherche de chemins ne trouvent pas de solutions simples.
Les systèmes classiques actuels associent documents et données de la façon suivante :
La base de données est donc un index complexe permettant de retrouver des documents.
L’objectif de notre système est différent : nous voulons mettre à jour une base de données " classique " représentant un système d'information, et non un index d'accès à des documents. La différence par rapport aux systèmes classiques est double. Il faut :
Une manière d’extraire les informations des documents consisterait à imposer un balisage très précis des informations à insérer dans la base de données, comme illustré sur la figure 1.haut. Les recherches actuelles du domaine se fondent sur ce principe. Nous nous plaçons plutôt dans le cadre de documents où les informations à recueillir sont balisées de manière plus "lâche", pour assurer une souplesse lors de la rédaction des documents. Nous nous intéressons à des documents où le balisage encadre des paragraphes et non des informations unitaires (figure 1.bas). Le travail du processus d’analyse ne se restreint alors pas à l’extraction d’informations balisées, mais à la recherche dans un paragraphe en langage pseudo-naturel d’un certain nombre d’informations. Les termes en gras sur la figure sont les informations que le système doit retrouver afin de remplir la base de données.
| <patient id=‘245’> <nom> Dupont </nom> <prenom> Henri </prenom> <prescription> Donner <prise> 3 </prise> <unite de prise> comprimés </unite de prise> d’ <medicament id=‘12’> aspirine </medicament> <frequence> 3 </frequence> fois par jour pendant <duree> 10 </duree> <unite duree> jours </unite duree> </prescription> </patient> |
|
<patient id=‘245’> |
figure 1 : Un document balisé avec précision (en haut) et le même document avec paragraphes balisés (en bas)
Le dossier médical défini en XML contient des paragraphes matérialisés par des balises. Le médecin choisit parmi les paragraphes proposés dans la DTD ceux qui correspondent au cas traité, ceci dans l'ordre qui lui convient. Le médecin fabrique ainsi un document XML.
Le langage médical est présenté dans des classifications ou autres nomenclatures, comme la Classification International des Maladies (CIM-10) pour les diagnostics. Afin de retrouver les termes médicaux dans un document, nous utiliserons ce type de classification comme thesaurus. D'autres thésaurus concernant les médicaments, les actes radiologiques, biologiques... sont également utilisés.
Pour chaque type de paragraphe, nous avons établi un ensemble de règles permettant d'analyser le contenu des paragraphes à partir de mots provenant des thésaurus. Par exemple, dans un paragraphe " thérapeutique ", un nom de médicament sera recherché pour mettre son code dans la base de données ; il nous permettra également de retrouver des informations sur la posologie, d'autres mots comme cachet, suppositoire, goutte nous permettant de connaître le mode d'administration, etc.
C'est à partir de ces règles que nous pouvons extraire des documents des informations qui seront stockées dans la base de données. Le travail consiste donc à associer une balise à un ensemble d'attributs de la base par le biais de règles d'extraction. Ces règles d'extraction permettent de repérer des expressions dans les paragraphes, d'en extraire des informations provenant de thésaurus, et définissent les moyens d'inclure dans la base de données les informations ainsi extraites.
Les paragraphes du document électronique doivent contenir les informations nécessaires au remplissage de la base de données, mais ils peuvent également contenir toute autre information que le médecin juge utile à enregistrer, sans pour autant que ces informations soient nécessaires pour la base. Par exemple, on peut imaginer que dans un paragraphe thérapeutique, le médecin détaille le mode d'administration sans que pour autant ces informations soient transmises à la base.
La figure 2 présente les différents composants de notre prototype pour l’édition et la gestion de documents semi-structurés, ainsi que le remplissage automatique de la base de données et la recherche à l’aide de la base de données. Notre prototype est réalisé à l'aide du langage Java et sous architecture client/serveur (technologie Enterprise Java Beans). Il utilise la librairie d’IBM Alphaworks nommée XML4J écrite en Java pour l’analyse des documents. L’interface utilisateur est fondée sur le standard DOM pour la manipulation des documents. La figure 3 présente une capture de cette interface utilisateur.

Figure 2 : Schéma de l’implantation du système

Figure 3 : Interface de saisie des documents (un click droit permet de baliser un paragraphe)
L’interface utilisateur comporte principalement des outils d’édition, de chargement, de sauvegarde de documents et d’interrogation de la base de données. Elle transmet les commandes de l’utilisateur en vue de la prise en compte d’une nouveau document (remplissage et mise à jour de la base de données) ou d’une interrogation. L’analyseur de documents ou le SGBD sont alors invoqués. La base documentaire contient tous les modèles de documents et tous les documents créés par les utilisateurs.
Le composant de remplissage est au cœur de notre problématique. Il se décompose en trois sous-composants :
Les données sont extraites des expressions rencontrées dans le document et concernent les attributs et les tables de la base de données. Ce composant traite les documents en utilisant les DTD des documents à analyser, les thésaurus, les règles d’extraction indiquant les liens entre DTD / thesaurus / base de données. Pour l'instant, nous n'avons pas investi le domaine du traitement de la langue naturelle. L’analyseur fournit au composant de remplissage une liste de requêtes SQL à exécuter.
Ce composant envoie les requêtes SQL reçues de l’analyseur au SGBD, sous forme transactionnelle. Les documents sources des données sont également stockés sur le serveur.
Le système que nous proposons associe une base documentaire à une base de données. Il définit un outil permettant à l’utilisateur de travailler sur des documents, sans se préoccuper de la manière dont les données sont intégrées dans la base de données. Ce système permet d’analyser des documents semi-structurés, afin d’en extraire les informations qui doivent être stockées dans la base de données. Pour cela, il s’appuie sur une base de connaissances comprenant des règles d’extraction. Des requêtes sur la base de données permettent de retrouver les documents, ou d'effectuer des traitements statistiques sur les données.
Notre système ne permet pas pour le moment de gérer des images, du son ou de la vidéo dans la base de données, mais se restreint pour l'instant à la gestion d'informations textuelles. Il serait également intéressant d’assister le concepteur dans la rédaction des DTD XML et de la base de connaissances, à partir de la structure de la base de données.