SndsTools : développement de fonctions d’extraction paramétrables et réutilisables sur les périmètres les plus communs pour les études sur le SDNS (PMSI, DCIR, ALD, …)

GitHub

Lien vers le repo : GitHub

Objectifs de l’algorithme

Outils de ciblage dans la base principale du SNDS
Outils de manipulation / transformation de la base principale du SNDS

Les codes du projet SndsTools permettent d’extraire des données de recours aux soins du SNDS (Système National des Données de Santé) pour une population donnée. 

Sous la forme d’un paquet (librairie) R, ces codes simplifient les étapes d’extraction de données du SNDS sur un périmètre utilisé dans la majorité des études sur le SNDS. 

Les principales fonctionnalités couvertes à ce jour sont les suivantes :

  • Effectuer l’extraction des tables individuelles pour les données suivantes :
    • Consultations dans le DCIR,
    • Médicaments dans le DCIR,
    • Affections de longue durée (ALD),
    • Hospitalisations dans le MCO,
    • Consultations dans le MCO.
  • Intègre les requêtes mois par mois sur la date de flux pour les données DCIR conformément aux recommandations de la CNAM.
  • Intègre les filtres qualités usuels pour exclure les lignes indésirables (ex. PRS_DPN_QLP != 71 pour exclure les remontées pour information dans le DCIR).

Le projet est centré sur une utilisation compatible avec le portail SNDS pour les organismes avec accès permanent (profil 108). 

Cependant, le fonctionnement grâce à la connexion à une moteur de base de données générique permet de facilement utiliser le code développé sur d’autres plateformes. A ce jour, une connexion avec une base de données DuckDB est déjà implémenté (notamment utilisée pour les tests unitaires des fonctions).

Le projet vise à couvrir progressivement plus de cas d’usages, en associant aux fonctions d’extraction des exemples de requête et d’étude simples.

Auteur(s)

Autorités administratives indépendantes et consultatives
Matthieu Doutreligne

Haute Autorité de santé

Organisme de recherche
Antoine Belloir

Institut du Cerveau

Établissement de santé
Thomas Soeiro

Assistance Publique – Hôpitaux de Marseille

Organisme de recherche
Marc Dibling

Institut du Cerveau

Autorités administratives indépendantes et consultatives
Nelly Le Guen

Haute Autorité de santé

Autorités administratives indépendantes et consultatives
Catherine Bisquay

Haute Autorité de santé

Domaine médical

Cancers
Maladies cardio-vasculaires
Diabète
Maladies neurodégénératives
Santé mentale et Psychiatrie
Périnatalité et Santé reproductive
Maladies respiratoires
Maladies infectieuses
Enfants et Pédiatrie
Personnes âgées et Gériatrie
Autre

Méthodologie

Les fonctions d’extraction identifiées sont celles utilisées par Antoine Belloir lors d’une étude effectuée à l’ICM.

Après copie sur github, plusieurs discussions ont permis de se focaliser sur les points suivants : 

  • Ajouter une documentation à chaque fonction en prenant soin que cette documentation soit cohérente d’une fonction à l’autre
  • Ajouter des tests unitaires pour chaque fonction d’extraction. Test de chaque fonction d’extraction sur le portail SNDS avant l’inclusion dans la branche principale du code.
  • Utilisation de dplyr plutôt que la syntaxe SQL : discussion non résolue totalement.
  • Normalisation des paramètres de chaque fonction ainsi que de leur nom. 
  • Gestion des tables archivées 
     

L’ensemble de ces décisions sont tracées dans les issues du projet github. Chaque changement du code est d’abord effectué dans une branche dédiée par un contributeur, puis est relu et validé par un autre contributeur avant d’être intégré dans la branche principale du projet. 

 
Les prochaines pistes de travail pourraient inclure (non-exhaustif) : 

  • Ajout d’une étude « exemple » utilisant les fonctions du paquet,
  • Passe complète sur les filtres qualité et référence vers des documents de la CNAM, 
  • Ajout dans chaque fonction d’un paramètre affichant à l’utilisateur la requête SQL effectuée, 
  • Ajout de données fictives pour les tests en se basant sur les schémas du SNDS,
  • Extension des fonctions d’extraction (ex. autres champs du PMSI, actes CCAM).

Langage de programmation

R
SQL

Données utilisées

Données d'application

Base principale
Données tabulaires

Les données utilisées sont celles du SNDS sur le portail de la CNAM. Nous privilégions le profil 108 accordé aux organismes ayant un accès permanent au SNDS.

Validation

Validé

La validation du code s’effectue par relecture par les contributeurs, test unitaire et test sur le portail SNDS. Le projet ne comporte (à ce jour) pas d’algorithme d’apprentissage statistique supervisé donc cette partie ne semble pas pertinente. 
 

Maintenance

Régulière

Maintenu par les auteurs sans garantie.

Comment installer l’algorithme ?

Sur le portail SNDS de la CNAM

Pour une utilisation sur le portail SNDS, il est nécessaire de copier/coller le code source du paquet sur le portail SNDS. Pour cela, il faut suivre les étapes suivantes :

## 1. En local (sur votre ordinateur) : Copier le fichier contenant toutes les fonctions : sndsTools_all.R

## 2. Sur le portail CNAM, coller le fichier sndsTools.R sur le portail CNAM

## 3. Sur le portail CNAM, charger toutes les fonctions du paquet :

source("sndsTools_all.R")

 

Plus de détails sont fournis sur la page de prise en main de la documentation : https://sndstoolers.github.io/sndsTools/articles/paresnds.html 

Comment utiliser l’algorithme ?

Pour les personnes intéressées par le fonctionnement du projet, les scripts dans le dossier notebooks donnent des exemples d’utilisation pour chaque fonction d’extraction : https://github.com/SNDStoolers/sndsTools/tree/main/notebooks 

De plus chaque fonction d’extraction est documentée en détail. Les références sont disponibles dans l’onglet correspondant de la documentation du paquet : https://sndstoolers.github.io/sndsTools/reference/index.html 

Support

Point de contact sur GitHub

https://github.com/SNDStoolers/sndsTools/issues

Contributions

Ce projet est un effort communautaire. Les nouveaux contributeurs sont les bienvenus. Les règles de décision et de gouvernance sont détaillées un document de gouvernance.

Un guide de contribution décrit les différents moyens de contribuer et les étapes pour y parvenir. 

Licence et conditions d’utilisation

License permissive EUPL :  LICENCE PUBLIQUE DE L'UNION EUROPÉENNE v. 1.2