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

CIM-10 FR à usage PMSI

Intitulé du référentiel : cim

Mise à jour : 31 janvier 2024

Référentiel annualisé au sens PMSI (2018 à 2024).
11 variables et 297 767 lignes.

Le chargement complet en local et/ou sa visualisation dans R Studio peuvent être longs. Il est recommandé de ne charger que la ou les années utile(s).

Variables

cim_code = code CIM-10
cim_lib = libellé CIM-10 long
cim_tmco = type MCO/HAD :
0 Pas de restriction particulière (valeur par défaut)
1 Diagnostic interdit en DP et DR - Autorisé ailleurs
2 Diagnostic interdit en DP et DR - Cause externe de morbidité
3 Diagnostic interdit en DP, DR et DA - Catégories et sous-catégories non vides ou code père interdit
4 Diagnostic interdit en DP – Autorisé ailleurs
cim_tpsy = type PSY
0 Pas de restriction particulière (valeur par défaut)
1 Diagnostic interdit en DP (Code imprécis, Séquelles, Cause externe de morbidités…)
3 Diagnostic interdit en DP et DA - Catégories et sous-catégories non vides ou code père interdit (et supprimé)
cim_pssr = profil SSR
digit 1 : code autorisé en finalité principale de prise en charge ? (O : oui, N : non)
digit 2 : code autorisé en manifestation morbide principale ? (O : oui, N : non)
digit 3 : code autorisé en affection étiologique ? (O : oui, N : non)
digit 4 : code autorisé en DAS ? (O : oui, N : non)
cim_code_actif =
1 : code actif dans l'année PMSI
0 : code inactif dans l'année PMSI
cim_chapitre = chapitre CIM-10 du code CIM-10
cim_groupe = groupe de catégories dans lequel s'insère le code CIM-10
cim_categorie = 3 premières positions du code CIM-10
cim_precision = TRUE si pas de code fils plus précis, FALSE sinon
annee_pmsi = année PMSI

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

CIM Chapitre

Intitulé du référentiel : cim_chapitre

Mise à jour : 31 janvier 2024

Référentiel non annualisé.

Variables

cim_chapitre_num = numéros des chapitres de la CIM-10
cim_chapitre_intervalle = premier et dernier code CIM-10 de chaque chapitre de la CIM-10
cim_chapitre_lib = libellés des chapitres de la CIM-10
cim_chapitre_romain = numérotation romaine des chapitres de la CIM-10
cim_chapitre_debut = premier code CIM-10 de chaque chapitre de la CIM-10
cim_chapitre_fin = dernier code CIM-10 de chaque chapitre de la CIM-10

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

CIM Groupe

Intitulé du référentiel : cim_groupe

Mise à jour : 31 janvier 2024

Référentiel non annualisé.

Variables

cim_groupe = premier et dernier code CIM-10 de chaque groupe de la CIM-10
cim_groupe_lib =libellés des groupes de la CIM-10
cim_groupe_debut = premier code CIM-10 de chaque groupe de la CIM-10
cim_groupe_fin = dernier code CIM-10 de chaque groupe de la CIM-10
cim_chapitre = chapitre de la CIM-10 dont dépend le groupe de la CIM-10
cim_groupe_type = type de chaque groupe
1 = groupe de premier niveau par rapport au chapitre
2 = sous-groupe par rapport à un groupe de premier niveau
3 = sous-groupe par rapport à un sous-groupe d'un groupe de premier niveau

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

CIM Libellés

Intitulé du référentiel : cim_lib

Mise à jour : 31 janvier 2024

Tous les codes CIM-10 depuis 2018 avec la dernière version de leur libellé.

Référentiel non annualisé.

Code R pour générer le référentiel à partir du référentiel cim

Variables

cim_code = code CIM-10
cim_lib = version la plus récente du libellé CIM-10
cim_categorie = catégorie CIM-10 dont dépend le groupe de la CIM-10
cim_groupe = groupe CIM-10 dont dépend le groupe de la CIM-10
cim_chapitre = chapitre CIM-10 dont dépend le groupe de la CIM-10

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

CIM Précarité

Intitulé du référentiel : cim_precarite

Mise à jour : 28 novembre 2022

Référentiel non annualisé.

Variables

cim_code = code CIM-10 des codes de précarité
cim_lib = libellés des codes CIM-10 de précarité

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

CIM Polyhandicap lourd

Intitulé du référentiel : cim_polyhandicap

Mise à jour : 28 novembre 2022

Référentiel non annualisé.

Variables

cim_code = code CIM-10 des codes de polyhandicap lourd
cim_lib = libellés des codes CIM-10 de polyhandicap lourd
cim_polyhandicap_liste = numéro de la liste de polyhandicap lourd à laquelle est rattaché le code
1 = Déficiences mentales ou psychiatriques sévères
2 = Troubles moteurs
3 = Critères de mobilité réduite
4 = Restrictions extrêmes de l’autonomie
cim_polyhandicap_liste = libellés des listes de polyhandicap lourd

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

CMA MCO

Intitulé du référentiel : cma_mco

Mise à jour : 27 février 2023

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

Source : Annexe 4 du volume 1 des manuels des GHM

Variables

cma_mco_code = code CIM-10 des CMA MCO
cma_mco_severite = niveau de sévérite (2, 3 ou 4) des CMA
cma_mco_liste_exclusion_dp = numéro de la liste d’exclusions entre diagnostic principal (DP) et CMA
cma_mco_liste_exclusion_racine = numéro de la liste d’exclusions entre racines de GHM et CMA
annee_pmsi = année PMSI MCO

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

CMA SSR

Intitulé du référentiel : cma_ssr

Mise à jour : 31 janvier 2024

Référentiel annualisé au sens PMSI SSR (de 2018 à 2024)

Source : Annexe 6 du volume 1 des manuels des GME

Variables

cma_ssr_code = code CIM-10 des CMA SSR
annee_pmsi = année PMSI SSR

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

Exemples

Chargement de la CIM-10 2021

# Chargement de la CIM-10 de l'année 2021 dans la variable cim_2021
cim_2021 <- refpmsi::refpmsi("cim",2021)
head(cim_2021)

Chargement de la CIM-10 des années 2020 et 2021

# Chargement de la CIM-10 des années 2020 et 2021
cim_2020_2021 <- refpmsi::refpmsi("cim",2020:2021)
head(cim_2020_2021)

Association du libellé CIM-10 aux DP

Soit un mini jeu de données jeu_dp composé de 12 codes DP de RSS mono-RUM

jeu_dp <- tibble::tibble(no_rss = seq(1:12),
                         dp_rss = c("I5010","Z491","H251","Z380",
                                    "S7200","S0600","R074",
                                    "J441","K358","R53+0","S7200","I5011"),
                         annee_rss = sample(c("2020","2021"),12,replace = TRUE))
jeu_dp
# chargement de la CIM-10 2020 et 2021
cim_2020_2021 <- refpmsi::refpmsi("cim",2020:2021)

# rattachement à chaque DP du libellé CIM-10 correspondant au DP et à son année PMSI
jeu_dp_libelle <- jeu_dp %>% 
  dplyr::left_join(cim_2020_2021 %>% dplyr::select(cim_code,cim_lib,annee_pmsi),
                   by = c("dp_rss" = "cim_code", "annee_rss" = "annee_pmsi"))
jeu_dp_libelle

Case mix par chapitre CIM-10

Avec le jeu de données jeu_dp de l'exemple précédent.

# chargement de la CIM-10 2020 et 2021
# cim_2020_2021 <- refpmsi::refpmsi("cim",2020:2021)

# rattachement aux codes DP des libellés CIM-10 et des numéros de chapitre CIM-10 correspondant
dp_chapitre <- jeu_dp %>% 
  dplyr::left_join(cim_2020_2021 %>% 
                     dplyr::select(cim_code, cim_lib, cim_chapitre, annee_pmsi),
                   by = c("dp_rss" = "cim_code",
                          "annee_rss" = "annee_pmsi"))
dp_chapitre

# chargement du référentiel "cim_chapitre" avec les 2 variables qui nous intéressent
cim_chapitre <- refpmsi::refpmsi("cim_chapitre") %>% dplyr::select(cim_chapitre_num,cim_chapitre_lib)
cim_chapitre

dp_chapitre <- dp_chapitre %>% 
  # rattachement des libellés de chapitre CIM-10 via le référentiel "cim_chapitre"
  dplyr::left_join(cim_chapitre, by = c("cim_chapitre" = "cim_chapitre_num")) %>%
  # regroupement par chapitre
  dplyr::group_by(cim_chapitre,cim_chapitre_lib) %>%
  # par chapitre, calcul du nombre de DP, du nombre de DP différent et de la liste des DP
  dplyr::summarise(n_dp = dplyr::n(),
                   n_dp_diff = dplyr::n_distinct(dp_rss),
                   liste_dp = paste0(dp_rss, collapse = ","),
                   .groups = "drop") %>% 
  # tri descendant sur le nombre de DP
  dplyr::arrange(desc(n_dp))
dp_chapitre

Repérage des DAS interdits en DP et DR

Soit un mini jeu de données jeu_das composé de 10 DAS.

jeu_das <- tibble::tibble(no_rss = seq(1:10),
                            das = c("Z370","I10","P040","F1725",
                                       "G473","W189","R600",
                                       "N178","B952","D638"),
                            annee_rss = sample(c("2020","2021"),10,replace = TRUE))
jeu_das
# chargement de la CIM-10 2020 et 2021
# cim_2020_2021 <- refpmsi::refpmsi("cim",2020:2021)

das_interdit_dp_dr <- jeu_das %>% 
  # rattachement à chaque DAS du type MCO et du libellé CIM-10, correspondant à son année PMSI
  dplyr::left_join(cim_2020_2021 %>% dplyr::select(cim_code,cim_lib,cim_tmco,annee_pmsi),
                   by = c("das" = "cim_code", "annee_rss" = "annee_pmsi")) %>%
  # filtre sur les types MCO 1 "Diagnostic interdit en DP et DR - Autorisé ailleurs" 
  # et 2 "Diagnostic interdit en DP et DR - Cause externe de morbidité" 
  dplyr::filter(cim_tmco %in% c(1,2))
das_interdit_dp_dr

Listes des CMA MCO par niveau - sortie Excel

library(dplyr)
library(purrr)
library(readr)
library(stringr)
library(refpmsi)

cim_lib <- refpmsi::refpmsi("cim_lib")
cma_mco <- refpmsi::refpmsi("cma_mco")

# liste de 3 tibbles correspondant aux 3 listes de CMA par niveau
cma_mco_niveau <- cma_mco %>% 
    dplyr::filter(annee_pmsi == "2023") %>% 
    dplyr::select(cma_mco_code,cma_mco_severite) %>% 
    dplyr::left_join(cim_lib %>% dplyr::select(cim_code,cim_lib), by = c("cma_mco_code" = "cim_code")) %>% 
    dplyr::group_split(cma_mco_severite) %>% 
    # nommage des listes
    setNames(unique(cma_mco$cma_mco_severite))

# génération des 3 excels correspondant aux 3 niveaux
# dans le répertoire du projet
cma_mco_niveau %>% 
    purrr::iwalk(~ readr::write_excel_csv2(.x, stringr::str_c("cma_mco_niveau_",.y, ".csv")))

Comparaison CIM-10 2023 et 2022

library(dplyr)
library(refpmsi)

# Y-a-t-il des codes CIM-10 2023 avec un type mco (tmco) différent de leur tmco 2022 ?
cim <- refpmsi::refpmsi("cim")
cim_2022 <- cim %>% dplyr::filter(annee_pmsi == "2022") %>% dplyr::select(cim_code,cim_tmco)
cim_2023 <- cim %>% dplyr::filter(annee_pmsi == "2023") %>% dplyr::select(cim_code,cim_tmco_2023 = cim_tmco)
cim_2022 %>% 
    dplyr::inner_join(cim_2023, by = c("cim_code" = "cim_code")) %>% 
    dplyr::filter(cim_tmco != cim_tmco_2023)
# résultat : aucune différence

# Y-a-t-il des codes CIM-10 2023 avec un type ssr (pssr) différent de leur pssr 2022 ?
cim_2022 <- cim %>% dplyr::filter(annee_pmsi == "2022") %>% dplyr::select(cim_code,cim_pssr)
cim_2023 <- cim %>% dplyr::filter(annee_pmsi == "2023") %>% dplyr::select(cim_code,cim_pssr_2023 = cim_pssr)
cim_2022 %>% 
    dplyr::inner_join(cim_2023, by = c("cim_code" = "cim_code")) %>% 
    dplyr::filter(cim_pssr != cim_pssr_2023)
# résultat : Z515 devient autorisé en morbidité principale

Sources

Nomenclature CIM-10 2023 : Fichiers nomenclature CIM10 pour les champs MCO,HAD, SSR et PSY (ATIH)
CIM-10 FR à usage PMSI 2023 - version du 31 mars 2023 (ATIH)
CIM-10 FR à usage PMSI 2022 - version du 04 octobre 2022 (ATIH)
CIM-10 FR à usage PMSI 2021 - version du 12 mars 2021 (ATIH)
CIM-10 FR à usage PMSI 2020 - version du 21 août 2020 (ATIH)
CIM-10 FR à usage PMSI 2019 - version du 21 novembre 2019 mars 2019 (ATIH)
CIM-10 FR à usage PMSI 2018 - version du 23 avril 2018 (ATIH)
Guide de lecture OVALIDE MCO 2022 (ATIH)
Manuel des GHM 2023 - Volume 1 (ATIH)
Manuel des GHM 2022 - Volume 1 (ATIH)
Manuel des GHM 2021 - Volume 1 (ATIH)
Manuel des GHM 2020 - Volume 1 (ATIH)
Manuel des GHM 2019 - Volume 1 (ATIH)
Manuel des GHM 2018 - Volume 1 (ATIH)



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