Data PMSI
  • Formations PMSI R
  • Live coding PMSI R
  • Guide des scripts
  • Pre-requis R
  • Jeux de données
    • Jeux PMSI MCO
  1. IP-DMS par GHM
  • Formations PMSI R
  • Live coding PMSI R
  • Guide des scripts
  • Scripts MCO
  • Scripts SMR
  • Scripts PSY

Sur cette page

  • Introduction
  • Code
  • Commentaires

IP-DMS par GHM

MCO
GHM
Casemix
Auteur·rice

denis Gustin

Date de publication

11 juin 2024

Introduction

On se restreint aux séjours de sévérité 1,2,3 ou 4 d’au moins 1 nuitée et on suppose qu’on est en ex-DGF

Pour chaque séjour, on rapatrie la DMS OVALIDE correspondant au GHM du séjour via le référentiel ovalide_ghminfo_dgf1 du package refpmsi

Pour chaque GHM, on calcule le nombre de séjours, le cumul des JP de ces séjours, le nombre de journées théoriques et l’IPDMS au sens “nombre de journées établissement / nombre de journées théoriques pour le périmètre considéré.”

Code

library(dplyr)
library(refpmsi)

ovalide_ghminfo_dgf <- refpmsi::refpmsi(ovalide_ghminfo_dgf)

casemix_ghm_ipdms <- mco_rss$rum %>% 
    dplyr::select(nas,no_rss,ghm,complexite,date_entree_um,date_sortie_um) %>% 
    dplyr::mutate(.by = no_rss, 
                  date_entree_sejour = min(date_entree_um), date_sortie_sejour = max(date_sortie_um),
                  nb_jp_sejour = as.integer(date_sortie_sejour-date_entree_sejour)) %>% 
    dplyr::distinct(no_rss,ghm,complexite,date_sortie_sejour,nb_jp_sejour) %>% 
    dplyr::mutate(annee_sortie_sejour = as.character(lubridate::year(date_sortie_sejour)),
                  mois_sortie_sejour = lubridate::month(date_sortie_sejour),
                  annee_pmsi_sejour = ifelse(mois_sortie_sejour <= 2,as.character(as.integer(annee_sortie_sejour)-1L),annee_sortie_sejour)
                  ) %>% 
    dplyr::filter(complexite %in% c("1","2","3","4"), nb_jp_sejour >= 1L) %>% 
    dplyr::left_join(ovalide_ghminfo_dgf %>% dplyr::select(annee_pmsi,ghm,dms_ovalide_ghm = dms),
                     join_by(ghm == ghm, annee_pmsi_sejour == annee_pmsi)) %>% 
    dplyr::mutate(nb_jp_theorique_sejour = dms_ovalide_ghm*nb_jp_sejour) %>% 
    dplyr::group_by(ghm) %>% 
    dplyr::summarise(nb_sejour_ghm = dplyr::n(),
                     nb_jp_sejour_ghm = sum(nb_jp_sejour),
                     nb_jp_theorique_ghm = sum(nb_jp_theorique_sejour)
                     ) %>% 
    dplyr::mutate(ipdms_ghm = nb_jp_sejour_ghm/nb_jp_theorique_ghm)
casemix_ghm_ipdms %>% View

Commentaires

Ligne 6 : mco_rss$rum est un tibble des variables de la partie fixe des RUM. Voir Guide des scripts - Jeux de données

Ligne 11 : on passe d’un tibble de RUM à un tibble de séjours via le dplyr::distinct() de variables liées au séjour

Ligne 12 : forçage annee_sortie_sejour en character pour préparer la jointure avec la variable ànnee_pmside ovalide_ghminfo_dgf qui est character

Pour aller + loin :
Calcul de l’écart à la moyenne en nb_jp avec nb_jp_theorique_ghm
Rapatriemeent libellé des GHM
Etc …

L’IP-DMS est calculé dans PMSISoft MCO dans l’écran Séjour > Séjours et classification > Casemix GHM

Etre tenu au courant de la publication des nouveaux scripts PMSI R

Notes de bas de page

  1. Documentation du référentiel ovalide_ghminfo_dgf↩︎

Blog codé avec Quarto

 

Mentions légales | © Copyright 2023-2024 - DATAMIS