3 Les archives PMSI
Cette partie aborde le point de départ des études PMSI : les archives PMSI. Ces archives sont les fichiers en entrées / sorties des logiciels de l’ATIH.
Les manuels techniques de ces logiciels, relatifs aux champs MCO, SSR, HAD, PSY et RSF, respectivement Genrsa, Genrha, Paprica, Pivoine et Preface sont disponibles dans l’espace de téléchargement sur le site de l’ATIH.
3.1 Arborescence des archives
Le package pmeasyr prend en charge les données des quatre champs PMSI MCO, SSR, HAD, PSY ainsi que les RSF.
Placer les archives dans un répertoire, par exemple ici dans ~/Documents/data/mco
:
Vous noterez que pour chaque champ PMSI il est conseillé d’utiliser un répertoire indépendant, ceci est nécessaire dans la mesure où le nom des archives PMSI ne contient pas l’information champ MCO, RSF, etc., il faut organiser l’archivage champ par champ, dans des répertoires différents.
# Créer l'arborescence à partir de R
= c('mco', 'ssr', 'had', 'psy', 'rsf')
champs <- "~/Documents/data"
emplacement sapply(champs, function(x){dir.create(file.path(emplacement, x))})
3.1.1 Sous Unix
Chaque utilisateur dispose de son path ‘~’, qui équivaut par exemple à : ‘/home/gui/’.
3.1.2 Sous Windows
Chaque utilisateur dispose de son répertoire, exemple C:/Users/gui/
. Et souvent, sans l’utilisation de projets RStudio, les chemins d’accès aux données sont pénibles à configurer dans chaque programme.
Mais dans R, le symbole ‘~’ utilisé sur windows dans un chemin d’accès aux fichiers renvoie au répertoire Documents de l’utilisateur : C:/Users/gui/Documents
.
path.expand('~')
renvoie C:/Users/gui/Documents/
.
Par conséquent sur Windows le répertoire à créer pour localiser les fichiers d’archives pmsi sera : C:/Users/gui/Documents/Documents/data
.
N.B.: Nous proposons ici que les utilisateurs de pmeasyr
utilisent ce chemin générique pour leurs programmes. L’avantage qui en découle : le partage de programme ne nécessite pas de changer le chemin d’accès, puisque c’est le même.
3.2 Informations sur les archives
Le nom des fonctions dont l’objectif est de manipuler les archives commence par a.
La fonction astat
permet d’éditer des statistiques sommaires sur les fichiers contenus dans une archive.
Nom | Fonction |
---|---|
astat | ~ *.zip - Liste et volume des fichiers d’une archive PMSI |
# Informations sur les fichiers : Date de creation, Taille
::astat(path = '~/Documents/data/mco/',
pmeasyrfile = '750100042.2015.12.29012016174032.out.zip',
view = F)
3.3 Dézippage
Cette partie du package facilite la manipulation des archives PMSI, fichiers de type :
finess.annee.mois.date_et_heure_de_creation.in.zip
finess.annee.mois.date_et_heure_de_creation.out.zip
Les fonctions permettent de dézipper les fichiers depuis R
en ligne de commande, sans intervention manuelle de l’utilisateur. L’avantage est d’obtenir un processus ne relevant pas d’interventions externes au logiciel R
(pour pouvoir garder trace des etapes, et faciliter la reproduction, tout est inscrit dans un programme, dans un flux de processus). Une fois que les traitements et analyses sur les fichiers sont faits, il est possible d’effacer les archives également en ligne de commande.
Nom | Fonction |
---|---|
adezip | ~ *.zip - Dezippe des fichiers de l’archive PMSI |
adezip2 | ~ *.zip - Dezippe des fichiers de l’archive PMSI, avec en parametre le nom de l’archive |
# Dezippage uniquement des fichiers rsa, ano et tra du out 2015
# Ex: 750100042.2015.12.20160130.153012.out.zip
::adezip(finess = 750100042,
pmeasyrannee = 2015,
mois = 12,
path = '~/Documents/data/mco',
liste = c("rsa", "ano", "tra"),
type = "out")
# Dezippage uniquement des fichiers rss, dmi et med du in 2015
# Ex: 750100042.2015.12.20160130.153012.out.zip
::adezip(finess = 750100042,
pmeasyrannee = 2015,
mois = 12,
path = '~/Documents/data/mco',
liste = c("rss", "dmi", "med"),
type = "in")
3.4 Suppression
À la fin d’une étude, il est inutile de garder les fichiers dézippés hors de l’archive, on peut les effacer : c’est ce que permet la fonction adelete()
.
# Effacer les fichiers
::adelete(finess = 750100042,
pmeasyrannee = 2015,
mois = 12,
path = '~/Documents/data/mco',
liste = c("rsa", "ano", "tra"),
type = "out")
::adelete(finess = 750100042,
pmeasyrannee = 2015,
mois = 12,
path = '~/Documents/data/mco',
liste = c("rss", "med", "dmi"),
type = "in")