top of page

Open-data de santé​ : explorons Open Medic, la base de données sur la consommation de médicaments

Saviez-vous…

… que vous pouvez rapidement déterminer le nombre et le profil (sexe, âge, région) des personnes se voyant délivrer tel ou tel médicament en France ? Ce tutoriel va vous expliquer comment répondre simplement à cette question en utilisant des données en accès libre (Open Data).

La CRO e-Health Services Sanoïa vous propose une série de tutos pour vous aider à apprivoiser les bases de données de santé en Open Data. En effet, énormément de données issues du système de santé français sont disponibles gratuitement. Elles sont à portée de clic pour peu que l’on dispose des bons réflexes, et des bons outils pour les exploiter ! Ce sont ces réflexes et ces outils - notamment les lignes de code Python nécessaires à l’utilisation de ces bases - que Sanoïa met gracieusement à votre disposition.


1. Quelle base open data choisir ?

1.1 Notre choix

Pour répondre à notre question sur la consommation de médicaments, nous avons choisi la base Open Medic.


Résumé : Depuis 2014, Open Medic recense l’usage des médicaments délivrés en pharmacie de ville en France. Les données sont extraites du Système National de Données de Santé (SNDS).

Origine : Open Medic est mise à disposition par l’Assurance Maladie.

Liens utiles :

Rafraîchissement des données : Une fois par an.


Description : La base Open Medic est en réalité composée de deux types de jeux de données : la "base complète" et des "bases complémentaires".

La base complète est appelée “Open Medic 20XX”. Cette base s’appuie sur les dépenses de médicaments interrégimes (i.e. regroupant tous les régimes de la sécurité sociale). Les données sont regroupées selon les caractéristiques suivantes des bénéficiaires : sexe, tranche d’âge, région de résidence ; et selon la spécialité du prescripteur. Chacun de ces groupes de consommants contient les indicateurs suivants : le nombre de boîtes délivrées, le montant remboursé et la base de remboursement.

En revanche, la base complète - contrairement à ce que l’on pourrait penser eu égard à son nom - ne contient pas le nombre de consommants de chaque médicament. Pour exploiter cette information, il est nécessaire d'utiliser les "bases complémentaires".

Les bases complémentaires sont nommées “NB_20XX_XXXX”. Toutes ces bases complémentaires contiennent les indicateurs suivants : le nombre de consommants, le nombre de boîtes délivrées, le montant remboursé et la base de remboursement. Il existe plusieurs versions en fonction des différents niveaux de la classification hiérarchique des médicaments (de ATC1 à ATC5, puis CIP13). Voici un exemple pour mieux comprendre cette classification :


a. Un médicament appartient à une famille (“classe ATC5”), qui elle-même appartient à une famille plus grande (“classe ATC4”), etc... Prenons par exemple deux anticoagulants : Xarelto® et Eliquis®.



Astuce : Retrouvez la classe ATC en cherchant le principe actif du médicament sur le site suivant : https://www.whocc.no/atc_ddd_index/


b. Un même médicament peut avoir plusieurs formes galéniques, plusieurs dosages, et chacun plusieurs conditionnements. Chaque conditionnement a un Code Identifiant de Présentation (CIP13) unique. Prenons l’exemple de l’anticoagulant Xarelto®.



Puis, chacune des 6 hiérarchies (CIP ou ACT5,4,3,2,1) est sub-divisée en 8 bases de données pour permettre aux utilisateurs de choisir la finesse des variables dont il a besoin (sexe, âge, région du bénéficiaire, spécialité du prescripteur). Au total, ce sont 6 x 8 = 48 bases complémentaires qui sont constituées chaque année.

Le descriptif des données est disponible ici : Descriptif de la base de données Open Medic.


Limites : Les données collectées portent uniquement sur les médicaments délivrés en pharmacie de ville et ne contiennent donc pas les médicaments délivrés à l’hôpital.

De même, les données exposées sont des données statistiques, agrégées et figées. En effet, si un même bénéficiaire a consommé des prestations pour 2 codes CIP13, il sera comptabilisé 2 fois.


1.2 Jeu de données utilisé dans notre exemple

Le principal défi pour l’utilisation d’Open Medic est de concilier finesse des données et volumétrie du fichier. En effet, le fichier le plus détaillé fait plus de 400 Mo, incompatible avec les logiciels courants type Excel.

Nous avons choisi une base de données de finesse moyenne s’appuyant sur la classification CIP13 (famille “NB_2021_cip13” ) enrichi des variables : sexe, âge et région du bénéficiaire (fichier “NB_2021_cip13_age_sexe_reg.CSV.gz” ). Ce fichier fait néanmoins 40Mo donc il nécessite un filtrage avant d’être manipulé -par exemple- par un tableur bureautique.


2. Exemple complet (avec code)

2.1 Utilisez notre Python

Notre code Python est implémenté sur Google Collaboratory (Code Python Open Medic). Il est en accès libre, cependant un compte Google est nécessaire pour pouvoir l’exécuter.

Alternativement vous pouvez copier/coller le code et l'exécuter dans votre environnement Python préféré.


2.2 Données nécessaires en entrée

Filtrer les données pour se concentrer sur un médicament d’intérêt nécessite d’en connaître le ou les CIP13.


Astuce : Il existe 2 types de codes CIP, un à 7 chiffres et un autre à 13 chiffres. Open Medic utilise celui à 13 chiffres (CIP13).


2.3 Cherchez le(s) CIP13

Dans cet exemple nous choisissons de déterminer le profil (sexe, âge, région) des patients consommant du Xarelto® 20mg, un anti-coagulant, en France.

Une recherche sur la base de données publique des médicaments nous permet de choisir le médicament que l’on cherche.


Note : par souci de simplicité, nous ne nous intéressons dans cet exemple qu’à un seul dosage du médicament en question. Si vous voulez analyser la consommation totale de ce médicament, pour tous les dosages, toutes les formes, tous les conditionnements, vous devrez prendre tous les codes CIP13.


Etape 1 : Rechercher le médicament dans la base



Etape 2 : Aller sur sa fiche :



Etape 3 : Choisir le ou les codes CIP que l’on souhaite analyser.



En résumé :

  • Il y a deux conditionnements pour le Xarelto® 20 mg : il y a donc 2 codes CIP13 à copier/coller.

  • Les codes CIP13 du Xarelto® 20 mg sont : 34009 219 230 5 6 et 34009 581 419 6 6.


2.4 Algorithme de notre code

Notre code exemple réalise les actions suivantes :

  • Télécharger la base Open Medic : la base hébergée sur le site de l’assurance maladie étant protégée par un mécanisme anti-robot, le code utilise une copie stockée sur nos serveurs

  • Interroger l’utilisateur sur le(s) code(s) CIP13 à utiliser : vous pouvez copier/coller même avec des espaces et vous pouvez consulter plusieurs CIP à la fois en les séparant par des virgules

  • Parcourir le volumineux fichier Open Medic ligne à ligne

  • Monter dans un dataframe (i.e. un tableau de données filtrées, nommé “short_list” dans le code) les lignes correspondant au(x) code(s) CIP13 à utiliser

  • Forcer le type de certaines variables du dataframe (pour des contraintes de présentation du tableau)

  • Translater les valeurs de certaines variables avec un dictionnaire pour une meilleur lisibilité

  • Afficher les résultats sous forme de tableau

  • Exporter le dataframe dans un fichier Excel.


2.5 Résultats de notre code

L'exécution du code Python affiche :


ATTENTION : L'exécution du code prend un peu de temps… soyez patient. Et surveillez bien le bas de la fenêtre : c’est là que vous est demandé le code CIP après quelques secondes d'exécution.

Etape 1 :



Etape 2 : Les tableaux et graphiques sont ensuite affichés ainsi :


Sortie 1 :



INFO : l’absence de résultat pour le CIP13 34009 581 419 6 6 s’explique par le fait qu’il n’y a aucune consommation en 2021.


Sortie 2 :



Sortie 3 :



Sortie 4 :


Étape 3 : Le fichier filtré se télécharge automatiquement.


Ce que l'on peut en dire :

Nous avons déterminé le nombre de consommants et analysé trois caractéristiques du profil des patients traités par du Xarelto® 20 mg : le sexe, l’âge et la région des bénéficiaires :

  • En 2021, le nombre total de consommants de Xarelto® 20 mg était de 503 818 pour la boîte de 28 comprimés et 0 pour la boîte de 1 comprimé (Sortie 1),

  • Le Xarelto® 20 mg est majoritairement délivré à des hommes : parmi toutes les personnes ayant pris ce médicament en 2021, 304 122, soit 60,4%, étaient des hommes (Sortie 2),

  • Le Xarelto® 20 mg est majoritairement délivré à des patients âgés de 60 ans ou plus : parmi toutes les personnes ayant pris ce médicament en 2021, 408 522 personnes, soit 81,1%, avaient plus de 60 ans (Sortie 3),

  • Le Xarelto® 20 mg est majoritairement délivré à des patients en Île-de-France : parmi toutes les personnes ayant pris ce médicament en 2021, 73 092 personnes, soit 14,5%, habitent en Île-de-France (Sortie 4).


3. Autres usages possibles

Ce jeu de données permet de répondre à une multitude d’autres questions :

  • Quelles ont été les évolutions de la consommation du médicament X entre 2015 et 2021 ? (pour cela il faudra utiliser les bases des années précédentes)

  • Pour un même médicament X, quelle est la répartition des délivrances selon les formes ou les dosages ? (seringue vs auto-injecteur, dosage 5 mg vs dosage 10 mg, etc.)

  • Quelle est la spécialité des médecins prescrivant le médicament X en France ? (pour cela il faudra utiliser le fichier plus détaillé NB_2021_cip13_age_sexe_reg_spe.CSV.gz)

  • Pour l’ensemble des médicaments similaires en termes thérapeutiques ou pharmacologiques (ATC), quels sont les profils des consommants ? (pour cela il faudra utiliser le regroupement ATC3 ou ATC4).


4. Aller plus loin

Nous espérons vous avoir convaincus de l’utilité et du potentiel des données en Open Data. Cet exemple était volontairement simple à des fins pédagogiques mais des usages épidémiologiques plus poussés sont possibles !

👍 Retrouvez l’ensemble de nos fiches sur LinkedIn en suivant notre page Linkedin.

👉 Si vous avez des projets d’utilisation ou de génération de données, notre équipe se tient à votre disposition : contact@sanoia.com !

Comments


bottom of page