knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
library(dplyr)
library(stringr)
library(refpmsi)
library(tidyr)

CMD

Intitulé du référentiel : cmd

Mise à jour : 11 avril 2023

Référentiel des libellés des CMD (Catégories Majeures de Diagnostics).
Référentiel non annualisé.

Variables

refpmsi::refpmsi("cmd") %>% dplyr::glimpse()

GHM Libellés

Intitulé du référentiel : ghm_lib

Mise à jour : 11 avril 2023

Les libellés des GHM depuis 2018 dans leur dernière version.

Référentiel non annualisé.

Variables

ghm = code GHM
ghm_lib = version la plus récente du libellé GHM

refpmsi::refpmsi("ghm_lib") %>% dplyr::glimpse()

GHS Public

Intitulé du référentiel : ghs_public

Mise à jour : 11 avril 2023

Référentiel des GHS et GHM du secteur public (ex-DGF).

Référentiel annualisé au sens du PMSI MCO (2018 à 2023).

Il est recommandé de ne charger que la ou les année(s) PMSI utile(s).

Variables

ghs = code GHS
ghm = code GHM
ghm_lib = libellé du GHM
ghm_bb = borne basse du GHM
ghm_bh = borne haute du GHM
ghs_tarif = tarif du GHS
ghs_exb = tarif journalier EXB (EXtrême Bas)
ghs_exh = tarif journalier EXH (EXtrême Haut)
annee_pmsi = année PMSI

refpmsi::refpmsi("ghs_public") %>% dplyr::glimpse()

GHS Privé

Intitulé du référentiel : ghs_prive

Mise à jour : 11 avril 2023

Référentiel des GHS et GHM du secteur privé (ex-OQN).

Référentiel annualisé au sens du PMSI MCO (2018 à 2023).

Il est recommandé de ne charger que la ou les année(s) PMSI utile(s).

Variables

ghs = code GHS
ghm = code GHM
ghm_lib = libellé du GHM
ghm_bb = borne basse du GHM
ghm_bh = borne haute du GHM
ghs_tarif = tarif du GHS
ghs_exb = tarif journalier EXB (EXtrême Bas)
ghs_exh = tarif journalier EXH (EXtrême Haut)
annee_pmsi = année PMSI

refpmsi::refpmsi("ghs_prive") %>% dplyr::glimpse()

GHM intermédiaire

Intitulé du référentiel : ghm_intermediaire

Mise à jour : 11 avril 2023

Référentiel des GHM avec GHS intermédiaire

Référentiel annualisé au sens PMSI MCO (2020-2023)

Variables

refpmsi::refpmsi("ghm_intermediaire") %>% dplyr::glimpse()

GHS UHCD

Intitulé du référentiel : ghm_uhcd

Mise à jour : 11 avril 2023

Référentiel annualisé au sens PMSI MCO (2021-2023)

Pour chaque GHS UHCD et par année PMSI MCO, la liste des GHM associés

Variables

refpmsi::refpmsi("ghs_uhcd") %>% dplyr::glimpse()

Regroupements GHM

Intitulé du référentiel : ghm_regroupement

Mise à jour : 28 novembre 2022

Référentiel des regroupements des GHM en DA (Domaine d'Activité), GA (Groupe d'Activité) et GP (Groupe de Planification).

Référentiel annualisé au sens du PMSI MCO (2018-2022).

Il est recommandé de ne charger que la ou les année(s) PMSI utile(s).

Variables

ghm = code GHM
ghm_lib = libellé du GHM
aso = code ASO du GHM (Activité de SOins)
da = code DA du GHM
da_lib = libellé du DA
gp = code GP du GHM
gp_lib = libellé du GP
ga = code GA du GHM
ga_lib = libellé du GA
da_gp = concaténation des codes DA et GP du GHM
da_gp_ga = concaténation des codes DA, GP et GA du GHM
annee_pmsi = année PMSI

refpmsi::refpmsi("ghm_regroupement") %>% dplyr::glimpse()

Libellés des regroupements GHM

Intitulé du référentiel : ghm_regroupement_lib

Mise à jour : 28 novembre 2022

Libellés de tous les DA (Domaine d'Activité), GA (Groupe d'Activité) et GP (Groupe de Planification) depuis 2018.

Référentiel non annualisé.

Variables

ghm_regroupement = type de regroupement GHM (da,ga,gp)
ghm_regroupement_code = code regroupement
ghm_regroupement_lib = libellé du code regroupement

refpmsi::refpmsi("ghm_regroupement_lib") %>% dplyr::glimpse()

Regroupements des racines de GHM

Intitulé du référentiel : rghm_regroupement

Mise à jour : 28 novembre 2022

Référentiel des regroupements des racines de GHM en DA (Domaine d'Activité), GA (Groupe d'Activité) et GP (Groupe de Planification).

Référentiel annualisé au sens du PMSI MCO (2018-2022).

Il est recommandé de ne charger que la ou les année(s) PMSI utile(s).

Variables

rghm = code racine GHM
rghm_lib = libellé de la racine GHM
aso = code ASO de la racine GHM (Activité de SOins)
da = code DA de la racine GHM
da_lib = libellé du DA
gp = code GP de la racine GHM
gp_lib = libellé du GP
ga = code GA de la racine GHM
ga_lib = libellé du GA
da_gp = concaténation des codes DA et GP de la racine GHM
da_gp_ga = concaténation des codes DA, GP et GA de la racine GHM
annee_pmsi = année PMSI

refpmsi::refpmsi("rghm_regroupement") %>% dplyr::glimpse()

OVALIDE - Table de référence GHMINFO_exDGF

Intitulé du référentiel : ovalide_ghminfo_dgf

Mise à jour : 21 juin 2023

Informations issues de la table GHMINFO_exDGF OVALIDE MCO. Les informations redondantes avec d'autres référentiels de refpmsi:: ne sont pas reprises (exemples : cma, bb, bh, ...)

Référentiel annualisé au sens du PMSI MCO (2018-2023).

Il est recommandé de ne charger que la ou les année(s) PMSI utile(s).

Variables

ghm = code GHM
tghm = type du GHM (C : chirurgical; M : médical; X : autre)
dms = durée moyenne de séjour nationale
pctdc = taux de décès national
mage = age moyen
pctcourt = pourcentage de séjours courts (parmi les séjours de durée > 1 jour). Durée d'un séjour court = borne basse ou borne basse +1
pvalo = code GHS du GHS le plus valorisé dans les GHM multi-GHS
pctpvalo = taux de séjours aux GHS plus élevés
pctcma4 = pourcentage de séjours de niveau 4 par sous-cmd (sous-cmd = 3 premières positions des GHM)
pctautres = pourcentage de séjours avec un DA autres (.8)
annee_pmsi = année PMSI

refpmsi::refpmsi("ovalide_ghminfo_dgf") %>% dplyr::glimpse()

OVALIDE - Table de référence GHMINFO_exOQN

Intitulé du référentiel : ovalide_ghminfo_oqn

Mise à jour : 21 juin 2023

Informations issues de la table OVALIDE MCO, GHMINFO_exOQN. Les informations redondantes avec d'autres référentiels de refpmsi:: ne sont pas reprises (exemples : cma, bb, bh, ...)

Référentiel annualisé au sens du PMSI MCO (2018-2023).

Il est recommandé de ne charger que la ou les année(s) PMSI utile(s).

Variables

ghm = code GHM
tghm = type du GHM (C : chirurgical; M : médical; X : autre)
dms = durée moyenne de séjour nationale
pctdc = taux de décès national
mage = age moyen
pctcourt = pourcentage de séjours courts (parmi les séjours de durée > 1 jour). Durée d'un séjour court = borne basse ou borne basse +1
pvalo = code GHS du GHS le plus valorisé dans les GHM multi-GHS
pctpvalo = taux de séjours aux GHS plus élevés
pctcma4 = pourcentage de séjours de niveau 4 par sous-cmd (sous-cmd = 3 premières positions des GHM)
pctautres = pourcentage de séjours avec un DA autres (.8)
annee_pmsi = année PMSI

refpmsi::refpmsi("ovalide_ghminfo_oqn") %>% dplyr::glimpse()

OVALIDE - Table de référence RacineINFO_exDGF

Intitulé du référentiel : ovalide_racineinfo_dgf

Mise à jour : 21 juin 2023

Informations issues de la table OVALIDE MCO, RacineINFO_exDGF.

Référentiel annualisé au sens du PMSI MCO (2018-2023).

Il est recommandé de ne charger que la ou les année(s) PMSI utile(s).

Variables

racine = code racine GHM
pctdc = taux de décès national
conf = confirmation de codage nécessaire pour la racine GHM (1 : OUI ; 0 : NON)
age2 = effet de l’âge pour les moins de 2 ans (1 : OUI ; 0 : NON)
age69 = effet de l’âge pour les plus de 69 / 79 ans (1-3 : OUI pour les plus de 69 ans ; 2-4-6 : OUI pour les plus de 79 ans ; 0 : NON)
pctcma2 = pourcentage de séjours de niveau 2 dans la racine GHM
pctcma3 = pourcentage de séjours de niveau 2 dans la racine GHM
pctexb = pourcentage de séjours en dessous de la borne basse
pctssacte = taux de séjours de 0 jours sans acte
app = racine apparentée à la racine GHM
pctapp = pourcentage de séjours dans la racine apparentée
annee_pmsi = année PMSI

refpmsi::refpmsi("ovalide_racineinfo_dgf") %>% dplyr::glimpse()

OVALIDE - Table de référence RacineINFO_exOQN

Intitulé du référentiel : ovalide_racineinfo_oqn

Mise à jour : 21 juin 2023

Informations issues de la table OVALIDE MCO, RacineINFO_exOQN.

Référentiel annualisé au sens du PMSI MCO (2018-2023).

Il est recommandé de ne charger que la ou les année(s) PMSI utile(s).

Variables du référentiel

racine = code racine GHM
pctdc = taux de décès national
conf = confirmation de codage nécessaire pour la racine GHM (1 : OUI ; 0 : NON)
age2 = effet de l’âge pour les moins de 2 ans (1 : OUI ; 0 : NON)
age69 = effet de l’âge pour les plus de 69 / 79 ans (1-3 : OUI pour les plus de 69 ans ; 2-4-6 : OUI pour les plus de 79 ans ; 0 : NON)
pctcma2 = pourcentage de séjours de niveau 2 dans la racine GHM
pctcma3 = pourcentage de séjours de niveau 2 dans la racine GHM
pctexb = pourcentage de séjours en dessous de la borne basse
pctssacte = taux de séjours de 0 jours sans acte
app = racine apparentée à la racine GHM
pctapp = pourcentage de séjours dans la racine apparentée
annee_pmsi = année PMSI

refpmsi::refpmsi("ovalide_racineinfo_oqn") %>% dplyr::glimpse()

Listes en D et en A de l'algorithme de groupage MCO

Intitulé du référentiel : mco_fg_listes

Mise à jour : 8 octobre 2021

Année 2021.

Variables du référentiel

mco_fg_liste_code = code des listes
mco_fg_liste_lib = libellé des listes
mco_fg_liste_type = D pour les listes en D et A pour les listes en A
mco_fg_cmd = CMD dans laquelle la liste participe au groupage des séjours
mco_fg_code = code CIM-10 (liste en D) ou code acte CCAM PMSI (liste en A)
mco_fg_ccam_pmsi_extension = extension PMSI des actes CCAM PMSI
mco_fg_ccam_pmsi_phase = phase des actes CCAM PMSI
annee_pmsi = année PMSI

refpmsi::refpmsi("mco_fg_listes") %>% dplyr::glimpse()

Exemples

Chargement du référentiel des GHS Public des années 2022 et 2023

# Chargement du référentiel des GHS-GHM Public des années 2022 et 2023
ghs_2022_2023 <- refpmsi::refpmsi("ghs_public",2022:2023)
ghs_2022_2023

Rattachement du libellé GHM aux GHM

Soit un jeu de données jeu_ghm composé de 17 RUM correspondant à 14 séjours.

jeu_ghm <- tibble::tibble(no_rum = c(rep(1L,10L),1,2,1,2,3,1,1),
                          no_rss = c(seq(1L:10L),11,11,12,12,12,13,14),
                          ghm = c("06K02Z","08C321","04M053","05M092",
                                  "06M12T","04M053","20Z041",
                                  "08K041","01M201","06M12T","05M092","05M092",
                                  "04M053","04M053","04M053","16M11T","16M11T"),
                          dp_rum = c("D122","S8220","J181","I5001",
                                     "R104","J181","F102","S730","S0600",
                                     "R104","I5009","I472","J189","J960","J189","D508","D509"),
                          jp = c(0L,3L,10L,7L,0L,0L,29L,2L,3L,0L,
                                 2L,1L,2L,11L,11L,0L,0L),
                          ghs = c("2119","2808","1144","1754","2200",
                                  "1144","7267","3033","268",
                                  "2206","1754","1754","1144","1144","1144","6186","6118"),
                          annee_rss = c("2020","2019","2019","2020","2020",
                                        "2019","2019","2020","2019",
                                      "2020","2019","2019","2020","2020","2020","2020","2020"))
jeu_ghm
# chargement des GHM Public 2019 et 2020
ghm_2019_2020 <- refpmsi::refpmsi("ghs_public", 2019:2020)

jeu_ghm_libelle <- jeu_ghm %>%
  # rattachement des libellés aux GHM via la jointure (ghs, annee_pmsi)
  dplyr::left_join(ghm_2019_2020 %>% dplyr::select(ghs,ghm_lib,annee_pmsi),
                   by = c("ghs" = "ghs", "annee_rss" = "annee_pmsi"))
jeu_ghm_libelle

Rattachement DMS nationale aux séjours

Dans un premier temps, on rattache les DMS nationales issues d'OVALIDE MCO à chaque séjour.

Puis on compare la DS des séjours avec ces DMS nationales pour les séjours pour lesquels cela a un sens (séjours avec une DS > 0).

# Chargement des DMS nationales des années PMSI 2019 et 2020
dms_nat <- refpmsi::refpmsi("ovalide_ghminfo_dgf", 2019:2020) %>% dplyr::select(ghm,dms,annee_pmsi)
dms_nat

jeu_ghm_dms <- jeu_ghm %>%
  # rattachement des DMS OVALIDE
  dplyr::left_join(dms_nat, by = c("ghm" = "ghm", "annee_rss" = "annee_pmsi")) %>%
  # nouvelle variable ecart_dms
  # nouvelle variable ratio_ecart_dms. = NA pour les cas jp = 0
  dplyr::mutate(ecart_dms = jp - dms,
                ratio_ecart_dms = ifelse(jp != 0L, round(jp/dms,2), NA_real_))
jeu_ghm_dms %>% print(n = 15, width = Inf)

Enfin, on peut filtrer les séjours qui ont une DS >= 2,5 x la DMS nationale de leur GHM pour repérer des séjours, à priori, particulièrement longs.

sej_2.5_dms <- jeu_ghm_dms %>% dplyr::filter(ratio_ecart_dms >= 2.5)
sej_2.5_dms %>% print(width = Inf)

Case mix en DA (Domaine d'Activité) des séjours

case_mix_da <- jeu_ghm %>%
  # rattachement des codes DA aux séjours
  dplyr::left_join(refpmsi::refpmsi("ghm_regroupement",2019:2020) %>% dplyr::select(ghm,da,da_lib,annee_pmsi),
                   by = c("ghm"= "ghm", "annee_rss" = "annee_pmsi")) %>%
  # regroupement en DA
  group_by(da,da_lib) %>%
  # calcul du nombre de RUM et du nombre de séjours par DA
  dplyr::summarise(n_rum = dplyr::n(),
                   n_sej = dplyr::n_distinct(no_rss),
                   .groups = "drop")
case_mix_da

Séjours et gradation des prises en charge ambulatoires

Dans un premier temps, on repère les séjours groupés dans un GHM concerné par la gradation des prises en charge ambulatoires et on rattache le GHS plein et le GHS intermédiaire.

sej_ghm_gradation_ambulatoire <- jeu_ghm %>%
  # filtre sur l'année 2020, seule année concernée dans notre data set
  dplyr::filter(annee_rss == 2020) %>%
  # rattachement GHS plein et GHS intermédiaire pour les GHM concernés
  dplyr::left_join(refpmsi::refpmsi("ghm_intermediaire"),
                   by = c("ghm" = "ghm_intermediaire", "annee_rss" = "annee_pmsi")) %>%
  # filtre sur les séjours concernés
  dplyr::filter(!is.na(ghs_plein))
sej_ghm_gradation_ambulatoire

Dans un second temps, on repère les seuls séjours classés dans un GHS intermédiaire

sej_ghs_intermediaire <- sej_ghm_gradation_ambulatoire %>%
  # filtre sur les séjours dont le GHS = le GHS intermédiaire associé
  dplyr::filter(ghs == ghs_intermediaire)
sej_ghs_intermediaire

Liste des codes CIM-10 d'une liste D

# Chargement du référentiel des listes D et A de l'algorithme de groupage MCO V2021
mco_fg_listes <- refpmsi::refpmsi("mco_fg_listes", 2021)
mco_fg_listes

On choisit d'extraire les codes CIM-10 de la liste D-0401 ""Bronchite ou asthme"

Le DP d'un séjour appartenant à cette liste amène le séjour concerné en racine 04M03 "Bronchites et asthme, âge supérieur à 17 ans" ou 04M02 "Bronchites et asthme, âge inférieur à 18 ans"

liste_D_0401 <- mco_fg_listes %>%
  # on ne garde que des variables qui nous intéressent pour une liste en D
  dplyr::select(mco_fg_liste_code, mco_fg_liste_lib, mco_fg_cmd, mco_fg_code) %>%
  dplyr::filter(mco_fg_liste_code == "D-0401")
liste_D_0401

Script similaire pour extraire les actes CCAM PMSI d'une liste A.

Diagnostics d'entrée d'une CMD

On choisit d'extraire les diags d'entrée de la CMD 01

# on a chargé le référentiel mco_fg_listes dans la variable mco_fg_listes
diag_cmd_01 <- mco_fg_listes %>%
  dplyr::filter(mco_fg_cmd == "01", mco_fg_liste_type == "D") %>%
  # argument.keep_all = TRUE pour garder les colonnes
  dplyr::distinct(mco_fg_code, .keep_all = TRUE) %>%
  # colonnes qui nous intéressent + réordonnancement
  dplyr::select(mco_fg_code, mco_fg_cmd, mco_fg_liste_code, mco_fg_liste_lib)
diag_cmd_01

Rattachement des libellés des listes D aux DP

Niveau R avancé

Soit un mini-jeu de données de 12 séjours avec le DP, le GHM et l'année PMSI du séjour

jeu_dp_ghm <- tibble::tibble(no_rss = seq(1:12),
                         dp_rss = c("I5010","S7220","H269","Z380",
                                    "S7200","S0600","R074","J441",
                                    "K358","R53+0","S7200","I5011"),
                         ghm_rss = c("05M091","08M041","02C05J","15M05A",
                                     "08C471","01M201","05M13T","04M202",
                                     "06C091","23M20Z","08C471","05M092"),
                         annee_rss = sample(c("2020","2021"),12,replace = TRUE))
jeu_dp_ghm

1ere étape : construire le tibble des diagnostics d'entrée de toutes les CMD concernées par une introduction de groupage par le DP

# on a chargé le référentiel mco_fg_listes dans la variable mco_fg_listes
diag_cmd <- mco_fg_listes %>%
  dplyr::filter(mco_fg_liste_type == "D") %>%
  # nest_by = group_by + summarise + rowwise (expérimental dplyr 1.0.7)
  dplyr::nest_by(mco_fg_cmd, .key = "diag_entree") %>%
  # dégroupage du rowwise généré par nest_by
  dplyr::ungroup() %>%
  # traitement de la list_column des diags d'entrée
  dplyr::mutate(diag_entree = purrr::map(diag_entree, ~ dplyr::distinct(.x, mco_fg_code, .keep_all = TRUE) %>% dplyr::select(c("mco_fg_code", "mco_fg_liste_code", "mco_fg_liste_lib"))))
diag_cmd

2eme étape : rattachement du libellé de la liste D correspondant au DP pour la CMD du séjour

jeu_dp_ghm_liste_D <- jeu_dp_ghm %>%
  # extraction de la CMD du séjour
  dplyr::mutate(cmd_rss = stringr::str_sub(ghm_rss,1,2)) %>%
  dplyr::left_join(diag_cmd %>% tidyr::unnest(diag_entree),
                            # jonction via dp et cmd. Rappel : plusieurs listes D possibles pour un DP
                            by = c("dp_rss" = "mco_fg_code",
                                   "cmd_rss" = "mco_fg_cmd"
                                   ))
jeu_dp_ghm_liste_D

Remarque : pas de libellé de liste D pour le DP Z380 "Enfant unique, né à l'hôpital" d'un séjour classé dans la CMD 15 "Nouveau-nés, prématurés et affections de la période périnatale" car, dans cette CMD, le groupage ne commence pas par le DP.

Génération des regroupements GHM d'une nouvelle année

Soit un jeu de données jeu_ghm composé de 17 RUM correspondant à 14 séjours.

library(dplyr)
library(refpmsi)
ghm_regroupement <- refpmsi::refpmsi("ghm_regroupement")

Sources

Manuel de groupage GHM 2023 - Volume 1 (ATIH)
Arrêté tarifaire MCO 2023 (Ministère de la Santé - Arrêté 2023)
Arrêté tarifaire MCO 2022 (Ministère de la Santé - Arrêté 2022)
Arrêté tarifaire MCO 2021 (Ministère de la Santé - Arrêté 2021)
Arrêté tarifaire MCO 2020 (Ministère de la Santé - Arrêté 2020)
Arrêté tarifaire MCO 2019 (Ministère de la Santé - Arrêté 2019)
Arrêté tarifaire MCO 2018 (Ministère de la Santé - Arrêté 2018)
Regroupements des GHM et RGHM 2022 (ATIH)
OVALIDE MCO - Tables de référence 2022 (ATIH)
Données du volume 2 du manuel des GHS 2023 (ATIH)



DenisGUSTIN/refpmsi documentation built on Feb. 6, 2024, 9:53 p.m.