Cette vignette documente les principes generaux pour l'utilisation du package pmeasyr.

1 - Gestion des archives in / out des logiciels ATIH

Cette partie du package facilite la manipulation des archives PMSI, fichiers de type :

Les fonctions permettent de dezipper 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 egalement en ligne de commande.

Le nom des fonctions dont l'objectif est de manipuler les archives commence par a.

|Nom |Fonction | |:---------|:--------------------------------------------------------------------------------------| |adezip |~ .zip - Dezippe des fichiers de larchive PMSI | |adezip2 |~ .zip - Dezippe des fichiers de l'archive PMSI, avec en parametre le nom de l'archive| |astat |~ .zip - Liste et volume des fichiers d'une archive PMSI | |adelete |~ .zip - Suppression des fichiers en fin de traitement |

adezip : dezipper

library(pmeasyr)
# Dezippage de tous les fichiers du in 2015 
# Ex : 750100042.2015.12.20160130.153012.in.zip
adezip(finess = 750100042, 
       annee = 2015, 
       mois = 12, 
       path = '~/Documents/data/mco', 
       liste = "", 
       type = "in")

# Dezippage uniquement des fichiers rsa, ano et tra du out 2015
# Ex: 750100042.2015.12.20160130.153012.out.zip
adezip(finess = 750100042, 
       annee = 2015, 
       mois = 12, 
       path = '~/Documents/data/mco', 
       liste = c("rsa", "ano", "tra"), 
       type = "out")

adelete : effacer

# Effacer les fichiers
adelete(finess = 750100042, 
        annee = 2015, 
        mois = 12, 
        path = '~/Documents/data/mco', 
        liste = c("rsa", "ano"), 
        type = "out")

astat : editer des statistiques

# Informations sur les fichiers : Date de creation, Taille
astat(path = '~/Documents/data/mco/', 
      file = '750100042.2015.12.29012016174032.out.zip', 
      view = F)

2 - Importer

Une fois les fichiers extraits des .zip, on peut utiliser les fonctions d'imports.

Le nom des fonctions permettant l'import des fichiers commence par i.

Champ MCO

|Nom |Fonction | |:---------|:----------------------------------| |irsa |~ MCO - Import des RSA | |irum |~ MCO - Import des RUM | |idiap |~ MCO - Import des DIAP | |idmi_mco |~ MCO - Import des DMI | |iium |~ MCO - Import des donnees UM | |ileg_mco |~ MCO - Import des erreurs Leg | |imed_mco |~ MCO - Import des Med | |ipo |~ MCO - Import des PO | |iano_mco |~ MCO - Import des Anohosp |

Les donnees in / out sont prises en charge.

RSA

# Import des rsa 2015
irsa(finess = 750100042, 
     annee = 2015, 
     mois = 12, 
     path = '~/Documents/data/mco')

Selon la nature des analyses a produire, plusieurs types d'imports sont possibles :

| Type|Import | |----:|:------------------------------------------------------------------------------------| | 1|Light : Partie fixe | | 2|Light+ : Partie fixe + stream en ligne (+) actes et das | | 3|Light++ : Partie fixe + stream en ligne (++) actes, das, typaut um et dpdr des um | | 4|Standard : Partie fixe + creation des tables actes, das et rsa_um | | 5|Standard+ : Partie fixe + creation des tables actes, das et rsa_um + stream (+) | | 6|Standard++ : Partie fixe + creation des tables actes, das et rsa_um + stream (++) |

# Import des rsa 2015 type 6
irsa(finess = 750100042, 
     annee = 2015, 
     mois = 12, 
     path = '~/Documents/data/mco', 
     typi = 6) -> rsa15
View(rsa15$rsa)
View(rsa15$rsa_um)
View(rsa15$actes)
View(rsa15$das)

RUM

# Import des rsa 2015
irum(finess = 750100042, annee = 2015, mois = 12, path = '~/Documents/data/mco')

Selon la nature des analyses a produire, plusieurs types d'imports sont possibles :

| Type|Import | |----:|:---------------------------------------------------------------| | 1|XLight : Partie fixe | | 2|Light : Partie fixe + stream en ligne des actes, das et dad | | 3|Standard : Partie fixe + table actes, das, dad | | 4|Standard+ : Partie fixe + stream + table actes, das, dad |

Colonnes stream

Exemples sur quelques rsa :

| Cle RSA | actes | |---------:|:---------------------------------------| |0000000001| EDSF004, EDSF004, JQGA004, JQGA004| |0000000002| EPLF002, DEQP003, DEQP007, DZQM006| |0000000003| EBQH002, EEQH002, YYYY180|

| Cle RSA | dpdrum |
|---------:|:--------------------------| |0000000004| Z098 I671| |0000000005| Z380, P741, Z380|

| Cle RSA | das | |---------:|:---------------------------------------------------| |0000000006| Z9580, Z9588| |0000000007|P011, P032, P036, P011, P032, P700, P011, P032, P036|

| Cle RSA | um | |---------:|:-----------------------| |0000000009| 01AC, 53 C| |0000000010| 51 C| |0000000011| 71 C, 04 C, 71 C|

TRA

Le fichier TRA est un fichier du out qui permet de relier les donnees anonymes du out aux donnees du in, il comprend un lien entre :

| Type |Import | |---------:|:-----------------------------------| |itra |~ TRA - Import du TRA | |inner_tra |~ TRA - Ajout du TRA aux donnees Out|

# lecture du fichier tra et jointure aux rsa
itra(750100042, 2015, 12, '~/Documents/data/mco') -> tra
# Ajout du tra aux rsa :
inner_tra(rsa15$rsa, tra) -> rsa15$rsa

Champ HAD, SSR, PSY et RSF

Pour ces quatre champs, seules les donnees du out sont prises en charge par le package pour le moment. Les fichiers tra sont egalement lus (ce qui permet de rattacher les informations du out au numeros des sejours locaux - du in).

Les fonctions d'imports pour ces trois champs reposent sur le meme principe qu'en MCO.

HAD

|Nom |Fonction | |:----------|:-------------------------------------| |iano_had |~ HAD - Import des Anohosp | |imed_had |~ HAD - Import des Med | |irapss |~ HAD - Import des RAPSS | |ileg_had |~ HAD - Import des erreurs LEG |

SSR

|Nom |Fonction | |:----------|:-------------------------------------| |iano_ssr |~ SSR - Import des Anohosp | |irha |~ SSR - Import des RHA | |issrha |~ SSR - Import des SSRHA | |imed_ssr |~ SSR - Import des MED | |iium_ssr |~ SSR - Import des UM | |ileg_ssr |~ SSR - Import des erreurs LEG |

PSY

|Nom |Fonction | |:----------|:-------------------------------------| |iano_psy |~ PSY - Import des Anohosp | |ir3a |~ PSY - Import des R3A | |irpsa |~ PSY - Import des RPSA |

RSF

|Nom |Fonction | |:----------|:-------------------------------------| |irafael |~ RSF - Import des RSFA / Rafael | |iano_rafael|~ RSF - Import des RSFA / ANO |

Dico

# Obtenir les noms, labels et types de variables (character, numeric, integer, date, ...)
dico(rsa15$rsa)

Labels

# Obtenir le libelle d'une variable du PMSI
labeleasier(rsa15$rsa$SEXE, Sexe = T)
labeleasier(rsa15$rsa$ECHPMSI, Mode_entree = T)

Tidy diagnostics

Les analyses sur les diagnostics CIM-10 sont parfois fastidieuses du fait des multiples positions de diagnostics : DP principal du sejour, DR principal du sejour, DPUM, DRUM, DAS. La fonction tdiag permet de rassembler tous les diagnostics dans une seule table.

# Pour les objets rsa et rum du MCO
# Transbahuter tous les diagnostics dans une seule table
tdiag(rsa15) -> rsa15
View(rsa15$diags)
# Tous les diagnostics sont dans une table, avec un numero selon leur position  
# 1:DP, 2:DR, 3:DPUM, 4:DRUM, 5:DAS

Exemple :

|CLE_RSA |NSEQRUM|position| diag | |:---------|:------|--------|------| |0000000001| 01| 1| Z511| |0000000001| 01| 2| C18| |0000000002| 01| 1| C501| |0000000002| 01| 3| C501| |0000000002| 02| 1| D051| |0000000002| 02| 5| E109|

3 - Exemples de requetes

Nombre de rsa avec un acte

# En utilisant le package dplyr
library(dplyr)
# acte EBLA003
rsa15$rsa %>% filter(grepl('EBLA003', actes)) %>% nrow()

# actes EBLA001 ou EBLA002 ou EBLA003
rsa15$rsa %>% filter(grepl('EBLA', actes)) %>% nrow()

# actes EBLA003 ou EPLF002
rsa15$rsa %>% filter(grepl('EBLA003|EPLF002', actes)) %>% nrow()

# directement dans la table actes 
rsa15$actes %>% filter(CDCCAM %in% c('EBLA003', 'EPLF002'))  %>% 
  .$CLE_RSA %>% unique() %>% length()

Nombre de rsa avec un diagnostic

# Diagnostic categorie cancer du colon en toutes positions
rsa15$rsa %>% filter(grepl('C18', dpdrum)|grepl('C18', das)) %>% nrow()

# Autrement apres avoir utilise tdiag() :
rsa15$diags %>% filter(grepl('C18', diag)) %>% 
  .$CLE_RSA %>% unique() %>% length()

# En restreignant au dp dr du sejour (avec la variable position)
rsa15$diags %>% filter(grepl('C18', diag), position < 3) %>% 
  .$CLE_RSA %>% unique() %>% length()

4 - Help

Toutes les fonctions du package ont une page d'aide.

library(pmeasyr)
?irsa
?irum

?itra
?inner_tra

5 - Format des donnees

Le package comprend une table des formats des fichiers PMSI. Ce sont les formats inscrits dans les manuels techniques ATIH des logiciels relatifs aux champs MCO, SSR, HAD, PSY et RSF, respectivement Genrsa, Genrha, Paprica, Pivoine et Preface. On peut obtenir ces manuels pdf dans l'espace de telechargement sur le site de l'ATIH.

C'est le seul jeu de donnees inclus dans le package.

# Charger les formats des donnees
pmeasyr::formats


IM-APHP/pmeasyr documentation built on Feb. 19, 2025, 6:17 a.m.