Un scandale qui a tout changé #
En 2010, la pneumologue Irène Frachon publie le livre Mediator 150 mg : combien de morts ? et déclenche le scandale du Mediator en France. De 1976 à 2009, ce médicament apparenté aux amphétamines a été prescrit comme coupe-faim alors que son autorisation n’était limitée qu’au traitement du diabète de type 2. Les conséquences ont été dramatiques : environ 2000 décès et de nombreux patients souffrant d’effets secondaires graves, en particulier des lésions cardio-vasculaires.
Face à ce désastre sanitaire, une loi relative au renforcement de la sécurité sanitaire du médicament et des produits de santé a été votée en 2011 pour imposer une nouvelle obligation aux laboratoires pharmaceutiques et entreprises du secteur de la santé : déclarer publiquement tout versement financier ou avantage en nature accordé aux professionnels de santé, hôpitaux ou associations liées à la santé. Cette mesure vise à rendre visibles les liens d’intérêt qui pourraient influencer les pratiques médicales. Une plateforme gouvernementale, Transparence Santé, a été mise en ligne pour centraliser ces déclarations et les mettre à disposition du public sous forme de données ouvertes (Open Data).
Une transparence difficilement exploitable #
Des données de mauvaise qualité #
Si l’intention derrière la plateforme Transparence Santé est louable et unique en Europe, d’importantes lacunes rendent difficile son utilisation par les citoyens. Imaginons que vous cherchiez des informations sur un médecin nommé “Leurent”. Voici ce que vous verriez sur la plateforme gouvernementale :

Un problème saute aux yeux immédiatement: plusieurs médecins apparaissent plusieurs fois dans les résultats, avec de légères variations. On trouve des entrées dupliquées à cause de différences mineures d’orthographe, de villes voisines mentionnées, ou de simples erreurs de saisie. Pour quelqu’un qui souhaite connaître les liens d’intérêt d’une personne précise, il devient difficile d’obtenir une image complète de la situation.
Ce problème est symptomatique d’un manque de bonnes pratiques dans la création de la base de données, que ce soit au niveau de la plateforme comme des laboratoires déclarants. Les bénéficiaires des avantages et rémunérations possèdent pourtant tous un identifiant national unique: le RPPS pour les professionnels de santé et le SIREN pour les associations et autres personnes morales. Il est alors aisé d’utiliser ces identifiants et leurs annuaires respectifs pour assurer une cohérence dans les données des bénéficiaires. Malheureusement, seules 50% des déclarations ont effectivement un identifiant de renseigné. Une évolution de la plateforme en 2022 a néanmoins permis d’augmenter l’utilisation du RPPS à 90%; sans cependant impacter les données relatives aux associations qui reçoivent pourtant l’essentiel des avantages et rémunérations.
Un manque d’ergonomie #
Poursuivons notre exemple en cliquant sur la page du docteur Bernard Leurent, qui ne semble pas dupliqué. Nous arrivons alors à une page qui se contente de lister toutes les déclarations relatives à ce bénéficiaire sous forme de liste.

Pour simplement connaître le montant total reçu par le bénéficiaire, il est nécessaire de télécharger au format CSV les déclarations et utiliser excel pour faire la somme des montants. Il est à noter qu’il peut être nécessaire de combiner plusieurs excels si le bénéficiaire a plusieurs comptes. Cette recherche d’information peut très rapidement devenir fastidieuse. Connaitre la répartition par entreprise est rendu encore plus compliquée par la qualité des données, une entreprise pouvant déclarer à travers différents comptes et filiales ne partageant pas nécessairement le même nom.
La base Transparence Santé sombre alors dans une situation paradoxale. Bien que proposant techniquement des données en libre accès, la qualité des données et l’interface utilisateur sont des freins significatifs à l’utilisation de ces données par la société civile.
EurosForDocs : une solution pour une véritable transparence #
Face à ce constat, l’association EurosForDocs a été créée par deux utilisateurs de Transparence Santé pour tenter d’améliorer la situation. En se basant sur les données publiques de Transparence Santé, EurosForDocs poursuit trois objectifs principaux :
- Offrir une plateforme d’exploration conviviale : Disponible gratuitement sur eurosfordocs.fr, elle permet à chacun de consulter facilement les liens d’intérêt entre laboratoires pharmaceutiques et différents bénéficiaires.
- Nettoyer et améliorer les données : L’équipe travaille à normaliser voire corriger les données. L’identification et la fusion de doublons dans les bénéficiaires joue un rôle important pour l’usabilité de la base de données.
- Accompagner les chercheurs et journalistes : EurosForDocs offre son expertise pour aider ceux qui souhaitent analyser ces données en profondeur, contribuant ainsi au débat public sur la transparence en santé. Quelques exemples de contribution sont donnés en fin d’article.
Pour répondre au premier objectif de l’association, un tableau de bord permet de rapidement se faire une idée générale de la situation. Le résultat pour le docteur Bernard Leurent propose automatiquement plusieurs visualisations : montant total reçu, répartition des versements par entreprise, évolution des sommes au fil des années, et motifs des paiements. Pour des analyses plus poussées, le détail des déclarations est également disponible et téléchargeable.

Une chaîne de traitement pour transformer les données #
La base Transparence Santé souffre de nombreux problèmes de qualité. Le cœur du défi technique d’EurosForDocs est alors de corriger ces données pour les rendre plus fiables et exploitables. Pour cela, nous avons mis en place un processus automatisé qui se déclenche chaque matin. Il commence par télécharger la dernière version de Transparence Santé, puis la fait passer par plusieurs étapes de nettoyage et d’amélioration. Finalement, les données nettoyées sont mise à disposition sur notre site à travers notre tableau de bord ou directement en fichier CSV. Techniquement, notre solution repose sur un code python qui orchestre des requêtes SQL qui transforment la donnée.
DuckDB est utilisé comme moteur de traitement de données. Cette variante de SQL regroupe plusieurs caractéristiques utiles à ce projet:
- Elle est optimisée pour des traitements massifs.
- Elle ne nécessite pas d’infrastructure particulière : les données sont stockées localement sur de simples fichiers.
- Elle peut s’adapter à de petites machines : on peut donc utiliser les serveurs cloud les moins chers.
L’utilisation de cette technologie nous permet de traiter les millions de déclarations efficacement, à moindre coût, et de maintenir une latence faible sur notre tableau de bord.
Par soucis de transparence, notre code source est entièrement public. Toute personnes avec des compétences en python et SQL peut télécharger le code, lancer le traitement de données sur sa machine et auditer les différentes transformations.
Notre processus de correction des données se découpe principalement en 4 parties.
- La déduplication des entreprises : Nous regroupons les différentes filiales et comptes multiples d’une même entreprise pour obtenir une vision consolidée.
- La déduplication des bénéficiaires : Nous identifions et fusionnons les entrées multiples qui correspondent à un même professionnel de santé ou une même organisation.
- La normalisation des motifs : Nous standardisons les raisons déclarées pour les versements afin de permettre des analyses cohérentes.
- La mise en relation des déclarations : Nous améliorons les liens entre les différents versements et les conventions dans lesquelles ils doivent s’inscrire.
Un système de déduplication d’entreprises presque fonctionnel #
Dans le système de Transparence Santé, une même entreprise déclarante peut apparaître sous plusieurs identités différentes. Chaque filiale peut effectuer ses propres déclarations, parfois même via plusieurs comptes distincts. Ces différents comptes ont le plus souvent des noms différents. Il devient alors plus complexe de comprendre les enjeux de liens d’intérêt lorsque le même laboratoire apparait sous plusieurs variantes. En théorie, la plateforme gouvernementale a prévu un mécanisme de déduplication. Il est possible de déclarer qu’un compte entreprise appartient à un groupement en renseignant l’identifiant d’un compte de référence (ou entreprise mère). Fusionner les comptes reliés à la même entreprise mère devrait permettre de normaliser les noms des entreprises déclarantes. On obtient alors des données plus compréhensibles. Malheureusement les entreprises déclarantes manquent de rigueur dans l’utilisation de ce mécanisme. Après fusion des comptes liés, de nombreux doublons persistent dans la base de données et nécessitent un nettoyage.
Le secteur médical ne regroupe que relativement peu d’entreprises, avec seulement 4850 comptes d’entreprises déclarés dans Transparence Santé. De plus, on s’attend à ce que les entreprises réutilisent au maximum les comptes de déclaration existants. La création de nouveau comptes devrait être occasionnelle : création de filiale ou de nouveau service, turnover de personnel, etc… Dans ces conditions, une vérification semi manuelle des doublons est encore possible.
L’image suivante montre un document de travail pour la déduplication manuelle. Pour chaque entreprise, l’entreprise mère déclarée est documentée dans la colonne E. L’équipe EurosForDocs peut attribuer un compte de référence à une entreprise déclarante dans la colonne H. Le surlignage bleu montre par exemple les différentes filiales du groupe 3M, dont certaines étaient automatiquement reliées à la maison mère française et d’autre considérées comme des entreprises indépendantes. Finalement, à travers ce système mixte de déduplication, près de 900 comptes sont fusionnés.

Déduplication des bénéficiaires : la guerre des clones #
Le plus grand défi technique d’EurosForDocs concerne l’identification unique des bénéficiaires dans la base de données. Contrairement aux entreprises qui sont quelques milliers, nous devons ici traiter plus de 26 millions de bénéficiaires déclarés potentiellement dupliqués. En théorie, la solution paraît simple : chaque professionnel de santé possède un numéro d’identification officiel (RPPS ou ADELI) et chaque organisation dispose d’un numéro d’entreprise (SIREN) ou d’association (RNA). Malheureusement, dans la pratique, ces identifiants sont rarement renseignés correctement dans les déclarations. Notre mission consiste donc à tenter d’attribuer un identifiant officiel à chaque déclaration qui n’en contient pas.
Notre analyse révèle deux situations bien distinctes :
- Les personnes physiques (médecins, infirmiers, etc…) : Nous disposons de plusieurs éléments pour les identifier(nom, prénom, profession, code postal). Nous pouvons croiser ces données avec l’annuaire national des professionnels de santé pour tenter d’attribuer un numéro RPPS ou ADELI à chaque bénéficiaire.
- Les personnes morales (associations, hôpitaux, etc…) : Seuls le nom et parfois le numéro SIREN ou RNA sont disponibles. Les noms d’organisations étant beaucoup moins standardisés que les noms de famille, leur déduplication automatique reste un défi que nous n’avons pas encore résolu. Un système de déduplication manuelle est néanmoins en place pour des besoins ponctuels.
Réduction de bénéficiaire par cohérence de déclaration #
Pour chaque nouvelle déclaration concernant un même bénéficiaire, les entreprises doivent répéter les informations le concernant.
On peut alors considérer qu’une entreprise qui déclare le même nom, prénom, profession et code postal de bénéficiaire entre deux déclarations fait référence à la même entité.
Ces informations définissent alors un compte bénéficiaire, identifié par un numéros efd_id.
Nous avons cependant observé que pour un même compte bénéficiaire, des identifiants différents peuvent être renseignés.
Par exemple, le compte correspondant à Jean Crochet possède deux RPPS différents.

Nous avons alors analysé en détail ces comptes. A partir des annuaires dédiés à chaque type d’identifiant, nous avons pu comparer les informations officielles liées à chaque identifiant avec celles déclarées dans Transparence Santé. Systématiquement, un seul des identifiants correspond aux valeurs des annuaires. En définissant une notion de similarité à partir du nom, prénom, de la profession et du code postal, on peut identifier automatiquement les RPPS absurdes. Dans le cas de Jean Crochet, un des RPPS correspond en réalité à Nathalie Bourgeois; ce qui conduit à un score de similarité bien inférieur à celui correspondant au RPPS correct. Nous nettoyons alors la base de données pour ne garder que les identifiants corrects.

Comment identifier un professionnel de santé parmi les doublons? #
Puisque les entreprises peuvent saisir librement les informations concernant les bénéficiaires, sans format imposé, de nombreuses variations et erreurs sont présentes pour une même personne. EurosForDocs a défini une stratégie en 3 étapes pour tenter de regrouper les comptes bénéficiaires dupliqués en une seule entité.
-
Attribuer des identifiants manquants : Pour les bénéficiaires sans numéro RPPS, nous essayons de faire correspondre leurs informations avec l’annuaire officiel des professionnels des santé. Nous commençons par les cas les plus simples (correspondance exacte de tous les champs) avant d’assouplir progressivement nos critères pour traiter les cas plus ambigus, comme les inversions nom/prénom ou les noms composés partiellement déclarés. Il est à noter que nous n’attribuons pas de RPPS si les critères identifient plusieurs professionnels différents dans l’annuaire.
-
Regrouper les comptes similaires : Certains bénéficiaires ne peuvent pas être liés à un identifiant officiel mais partagent les mêmes informations. Par exemple, deux bénéficiaires qui partagent le même nom, prénom et profession et qui n’ont pas de RPPS sont considérés comme des doublons. Cette méthode est moins fiable mais ne s’applique alors qu’aux comptes pour lesquels l’identification à partir de l’annuaire santé a échoué.
-
Fusionner tous les duplicatas : Les deux étapes précédentes ont permis de créer des liens entre les différents comptes. L’étape 1 permet de créer des liens indirect (via les RPPS, SIREN, etc…). L’étape 2 permet de relier directement deux comptes. Un algorithme de traitement de réseaux sociaux va alors regrouper tous les comptes qui appartiennent à la même communauté isolée. Chaque communauté est alors considérée comme un bénéficiaire unique et tous les comptes en faisant parti seront fusionnés. Dans l’exemple suivant, les comptes bénéficiaires (en bleu clair) créent trois communautés distinctes à travers les liens entre eux (les comptes 10 et 3 en bas de l’image) ou leur lien à un RPPS ou compte ADELI.

Cette stratégie de déduplication nous permet de réduire considérablement le nombre de doublons. Sur plus de 6 millions de comptes de professionnels de santé, 1.6 millions demeurent après la déduplication. Il reste probablement une quantité significative de doublons parmi nos bénéficiaires finaux puisque 780 000 comptes n’ont à ce jour aucun identifiant.
Le défi de la normalisation des motifs de versement #
À l’origine, les entreprises pharmaceutiques documentaient les raisons de leurs versements aux professionnels de santé dans un simple champ de texte libre. Cette absence de standardisation rendait l’analyse des données pratiquement impossible. Les motifs variaient considérablement d’une déclaration à l’autre : allant de descriptions détaillées de conférences spécifiques à de simples mentions comme “repas”, voire restant entièrement vides. Pour remédier à cette situation, une mise à jour de la plateforme Transparence Santé en 2022 a introduit une nomenclature de 48 valeurs de motifs. Cependant, malgré cette amélioration, de nombreuses entreprises contournent cette standardisation en sélectionnant simplement la catégorie “AUTRE” puis en renseignant dans un champ complémentaire leurs descriptions personnalisées. Certains “AUTRE” motifs correspondent même exactement à l’une des 48 catégories officielles. L’image suivante nous montre ainsi la variété de motifs “AUTRE” que l’on va chercher à normaliser. Face à ce défi, EurosForDocs a développé une approche combinant traitements manuels et analyses automatisées par mots-clés. On passe alors de 18 millions des motifs non renseignés à 1.2 millions.

Relier les paiements aux contrats : une comptabilité plus précise #
Dans le système de transparence des liens d’intérêts, les laboratoires pharmaceutiques doivent d’abord déclarer un contrat (convention) avec un professionnel de santé en précisant le montant global prévu, puis déclarer séparément chaque paiement réel effectué dans le cadre de ce contrat. On a donc une problématique de double comptage des montants : une fois dans la convention en tant que montant prévisionnel et une fois pour le paiement réel. Pour éviter ces doubles comptages, EurosForDocs déduit du montant des conventions les montants réels des rémunération et avantages liés. Le montant final d’une convention que nous affichons est alors le reliquat, ou reste à dépenser de la convention.
Pour obtenir la vision la plus précise possible de ces reliquats (et donc réduire les risque de double comptage), il faut s’assurer que tous les paiements réels soient effectivement reliés à une convention. En pratique, de nombreux paiements apparaissent sans lien avec leur contrat initial. EurosForDocs tente alors de relier les rémunérations et avantages orphelins à des conventions et étant plus permissif sur l’entreprise déclarante et le compte bénéficiaire.
Conclusion #
La plateforme Transparence Santé est un grand pas en avant vers une plus grande transparence dans l’industrie pharmaceutique. La qualité des données limite cependant le potentiel de la plateforme. Des initiatives comme EurosForDocs montrent qu’il est possible de transformer des données brutes et peu fiables en informations claires et exploitables. Mais cela nécessite un travail de nettoyage méticuleux et une approche rigoureuse. Ce projet illustre non seulement les défis techniques de la gestion des données, mais aussi l’importance de rendre ces informations accessibles et compréhensibles pour tous; afin de garantir une véritable transparence dans le domaine de la santé. Dans un monde de plus en plus dépendant des données, il est essentiel que nous ne nous contentions pas de rendre les données disponibles, mais que nous les rendions également utilisables, compréhensibles et fiables.
Exemples de collaborations #
-
Vaccin contre la grippe : la recommandation des sociétés de gériatrie manque de transparence
-
Addictions au sexe et aux jeux : des malades de Parkinson s’estiment floués par un labo
-
Marchandage et lobbying : les dessous de l’annonce du milliard de Sanofi