14 requetr : rédiger, exécuter des requêtes pmsi
Cette partie de pmeasyr
concerne la rédaction et l’exécution de requêtes pmsi. Quelques exemples d’abord puis une présentation de ce qu’il est possible de faire avec (et, de manière complémentaire, de ce qu’il n’est pas possible de faire).
14.1 Définir une requête
14.1.1 Exemple simple
<- list(
requete_simple actes = "EPLF002",
activites_actes = "1"
)
Ici on cherchera tous les séjours avec un acte EPLF002 codé en activité 1.
14.1.2 Exemple plus complexe
= list(diags = "E66",
requete_complexe positions_diags = 5,
dureemax = 0,
ghm = '28Z',
agemax = 18,
diags_exclus = "C")
# positions_diags : 1 dp rsa, 2 dr rsa, 3 dp um, 4 dr um, 5 das
Ici on cherchera tous les séjours avec un diagnostic E66 en das, d’une durée de 0 jour, avec un ghm en 28Z, où l’âge du patient est au maximum 18 ans, et sans aucun diagnostic commençant par C.
14.2 Requêtes sur des rsa importés avec irsa
Il faut d’abord importer les rsa avec un type d’import 6 et “préparer les rsa” avec la fonction prepare_rsa()
:
irsa(p, typi = 6) -> rsa
prepare_rsa(rsa) -> rsa
Exemple de requêtes :
<- list(
exemple_requete actes = c('QEFA003','QEFA005','QEFA010','QEFA013','QEFA015','QEFA019','QEFA020')
)
La commande suivante renvoie un tibble
(tableau) contenant les clés rsa correspondants à cette requête :
requete(rsa, exemple_requete)
Il est possible de retourner d’autres variables que la clé rsa uniquement, en les spécifiant :
requete(rsa, exemple_requete, vars = c('nas', 'agean', 'actes', 'diags', 'ghm'))
14.3 Requêtes sur des rsa dans la base de données
C’est le même principe seulement il faut spécifier la connexion à la table et l’année de la requête plutôt que l’objet rsa :
requete_db(con, 16, exemple_requete, vars = c('nas', 'agean', 'actes', 'diags', 'ghm'))
14.4 Éléments possibles pour une requête
Élément | Commentaire |
---|---|
agemin | Âge minimum en années (inclus) |
agejrmin | Âge minimum en jours (inclus) |
agejrmax | Âge maximum en jours (inclus) |
agemax | Âge maximum en années (inclus) |
dureemin | Durée minimum en jours (inclus) |
dureemax | Durée maximum en jours (inclus) |
ghm | Liste de ghm ou racine de ghm : exemple : 08C24, 08C241 |
diags_exclus | Diagnostics à exclure en toutes positions |
poidsmin | Poids minimum (inclus) |
poidsmax | Poids maximum (inclus |
ghm_exclus | ghm à exclure en toutes positions |
autres | Autres éléments de requête au niveau rsa partie fixe, exemple ‘agegest < 37’ |
diags | Diagnostic ou liste de diagnostics à rechercher |
positions_diags | Positions des diagnostics à chercher, voir les positions de la table diags (de 1 à 5) |
actes | Acte ou liste d’actes à rechercher |
activites_actes | Activité pour laquelle chercher les actes |
14.5 Lancer plusieurs requêtes
Les fonctions lancer_requete()
et lancer_requete_db()
permettent de lancer une ou plusieurs requêtes lorsque l’on a défini une liste de requêtes.
14.5.1 Exemple de liste de requêtes
<- list(requete_1 = list(actes = "EBLA003", nom = "pac", thematique = "pac"),
deux_requetes requete_2 = list(ghm = "28Z", nom = "seances", thematique = "CMD 28")
)
14.5.2 Lancement
# Pour des rsa importés avec irsa
lancer_requete(rsa, deux_requetes, vars = c('nas', 'duree', 'ghm'))
# Pour des rsa dans une base de données
lancer_requete_db(con, 16, deux_requetes, vars = c('nas', 'duree', 'ghm'))
La commande suivante renvoie un tibble
(tableau) contenant les clés rsa correspondants à ces requêtes avec deux variables identifiant le nom et la thématique de la requête correspondante.