# on suppose que les .rds sont déposés dans un répertoire "data" de votre projet R, sans modification de nom
# Exemples MCO
## on récupère la liste des tibbles liés aux RSS via
<- readRDS("data/mco_rss_AAAA-MM-JJ.rds")
mco_rss
## on récupère la liste des tibbles liés aux RSA via
<- readRDS("data/mco_rsa_AAAA-MM-JJ.rds")
mco_rsa
## on récupère la liste des tibbles liés aux DMI via
<- readRDS("data/mco_dmi_AAAA-MM-JJ.rds")
mco_dmi
# Exemple SMR
## on récupère la liste des tibbles liés aux RHS via
<- readRDS("data/smr_rhs_AAAA-MM-JJ.rds")
smr_rhs
# Exemples PSY
## on récupère la liste des tibbles liés aux RPS via
<- readRDS("data/psy_rps_AAAA-MM-JJ.rds")
psy_rps
## on récupère la liste des tibbles liés aux RAA via
<- readRDS("data/psy_raa_AAAA-MM-JJ.rds") psy_raa
Guide des scripts
Principes généraux des scripts PMSI R
Les scripts PMSI R publiés ici correspondent à des morceaux de codes R autonomes, répondant à des problématiques spécifiques en analyse PMSI.
Ils constituent une solution possible pour traiter la question, dans un compromis entre performance du code, lisibilité du code et pédagogie.
Chaque script est composé :
d’un intitulé explicite
d’une introduction minimale exposant l’approche algorithmique
du code du script commençant toujours avec l’appel d’un dataframe de données PMSI natives, telles qu’issues de fichiers du .in et/ou du .out
si nécessaire, d’un commentaire succinct pour expliciter un point délicat en codage R ou une manipulation spécifique de données PMSI.
Ces scripts ont vocation à être appliqués tels quels sur vos jeux de données, à être complétés, dérivés, copiés/collés dans vos scripts existant, à être lus pour apprendre le codage PMSI R.
On fait par défaut le choix d’un codage “1 traitement par ligne” pour rendre visible la logique PMSI.
On fait le choix de laisser les variables intermédiaires de calcul, là encore pour rendre visible la logique PMSI du script.
De même, on fait le choix de casser une analyse en plusieurs scripts quand son codage R en un seul script devient trop long/complexe. Dans une version de production en routine, le script pourra donc avantageusement être simplifé au niveau R.
Le niveau R des scripts est varié, du plus basique à un niveau avancé.
Pré-requis
Pré-requis métier PMSI : connaissance des règles et logiques du PMSI, maîtrise des nomenclatures, pratique de l’analyse de données PMSI.
Pré-requis R : un environnement de développement R (R Studio, VS Code), pratique minimale de la manipulation de structures de données (vecteur, dataframe), manipulations de packages R, codage d’une suite d’instructions dans un pipe.
Voir notre article “Pré-requis R” pour plus de détails.
Jeux de données
Chaque script commence avec l’appel à un jeu de données PMSI cohérent avec l’objet du script.
Ce jeu de données est constitué des seules variables natives du format ATIH correspondant à l’objet du script.
Ce jeu de données est un tibble1.
Chaque variable de ces jeux de données est supposée nettoyée2 et normalisée.
2 manières pour disposer de ce jeu de données.
Via PMSISoft Standard
Télécharger, en tant qu’administrateur d’un accès Standard PMSISoft3, la liste des tibbles du champ PMSI qui vous intéresse.
Ces listes sont des objets list
enregistrés dans un fichier .rds
L’accès Standard PMSISoft est gratuit, sans limite de temps, ouvert à la demande de tout établissement qui nous en fait la demande.
Plus d’informations :
PMSISoft MCO
PMSISoft SMR
PMSISoft PSY
Via fichiers PMSI
Produire le tibble à partir du fichier concerné du .in ou du .out ou via un export à partir du SI de votre établissement.
Important : dans chaque script, en 2ème ligne d’instruction du script, nous codons un dplyr::select()
qui sélectionne les variables du jeu dont on va se servir.
Cette sélection permet de vous “raccrocher” au script, indépendamment du nommage de votre jeu de données, car le libellé des variables utilisées est normalisé et la correspondance avec les intitulés des variables des formats de fichiers officiels est évidente.
Vous pouvez donc appliquer le script tel quel à partir de sa 2eme ligne de code, soit en renommant vos variables (via dplyr::select()
ou dplyr::rename()
) pour qu’elles correspondent à celles du script, soit en personnalisant le script avec vos intitulés de variables.
Exemple avec le script “Casemix basique séjours par complexité”
# récupération préalable du tibble correspondant à la partie fixe du fichier des rss groupés
$rum
mco_rss
# les 2 premières lignes du script sont
<- mco_rss$rum %>%
casemix_severite ::select(nas,no_rss,no_rum,ghm,complexite,date_entree_um,date_sortie_um)
dplyr
# on a sélectionné ici 7 variables dont la correspondance avec les intitulés du format est évidente :
## nas pour N° Administratif local de séjour (positions 48 à 67)
## no_rss pour Numéro de RSS
## no_rum pour N° de RUM (positions 68 à 77)
## etc...
On se base par défaut sur la dernière version des formats PMSI.
Packages R
Les scripts font appel, principalement, aux fonctions de bases R et aux fonctions des packages du Tidyverse, en particulier, et ce systématiquement, au package dplyr
Version minimale recommandée du dplyr
: 1.1.2
Pour l’accès aux référentiels PMSI, nous faisons appel au package refpmsi
Licence
Avertissement
Les informations diffusées dans cette bibliothèque de scripts sont proposées à titre purement informatif et ne sauraient constituer un conseil ou une recommandation de quelque nature que ce soit.
En conséquence, nous déclinons toute responsabilité quant à leurs utilisations. Elles ne sauraient en aucun cas engager notre responsabilité, à quelque titre que ce soit.
Notes de bas de page
un script peut faire appel, dans son déroulé à un 2eme, voire un 3eme jeu de données, pour enrichir l’analyse (exemple en MCO : rapprochement d’informations issues du RSA et du RUM).↩︎
par “nettoyée”, on entend suppression des 0 ou des espaces vides inutiles, typage cohérent de la variable, données absentes en NA, etc…
Par “normalisée”, on entend normalisation du nommage des variables : suffixation univoque (exemple “_libelle” pour les libellés), pas d’accent ou d’espace, tout en minuscule, tous les intitulés “numéro” traduits en “no”, etc…↩︎en accès Professionnel PMSISoft, l’administrateur dispose de 100% des variables de l’accès Standard et de variables calculées ou enrichies supplémentaires. Il peut donc, à partir de son export en accès Professionnel, appliquer tel quel les scripts.↩︎