Passer au contenu

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

#> Rows: 297,767
#> Columns: 11
#> $ cim_code       <chr> "A00", "A000", "A001", "A009", "A01", "A010", "A011", "~
#> $ cim_tmco       <int> 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0~
#> $ cim_pssr       <chr> "NNNN", "NOOO", "NOOO", "NOOO", "NNNN", "NOOO", "NOOO",~
#> $ cim_tpsy       <int> 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0~
#> $ cim_lib        <chr> "Choléra", "Choléra à Vibrio cholerae 01, biovar choler~er~
#> $ cim_code_actif <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1~
#> $ cim_categorie  <chr> "A00", "A00", "A00", "A00", "A01", "A01", "A01", "A01",~
#> $ cim_chapitre   <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", ~
#> $ cim_groupe     <chr> "A00-A09", "A00-A09", "A00-A09", "A00-A09", "A00-A09", ~
#> $ cim_precision  <lgl> FALSE, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE,~
#> $ annee_pmsi     <chr> "2024", "2024", "2024", "2024", "2024", "2024", "2024",~

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

#> Rows: 22
#> Columns: 6
#> $ cim_chapitre_num        <chr> "1", "2", "3", "4", "5", "6", "7", "8", "9", "~
#> $ cim_chapitre_intervalle <chr> "A00-B99", "C00-D48", "D50-D89", "E00-E90", "F~
#> $ cim_chapitre_lib        <chr> "Certaines maladies infectieuses et parasitair~
#> $ cim_chapitre_romain     <chr> "I", "II", "III", "IV", "V", "VI", "VII", "VII~
#> $ cim_chapitre_debut      <chr> "A00", "C00", "D50", "E00", "F00", "G00", "H00~
#> $ cim_chapitre_fin        <chr> "B99", "D48", "D89", "E90", "F99", "G99", "H59~

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

#> Rows: 275
#> Columns: 6
#> $ cim_groupe          <chr> "A00-A09", "A15-A19", "A20-A28", "A30-A49", "A50-A~
#> $ cim_groupe_lib      <chr> "Maladies intestinales infectieuses", "Tuberculose~
#> $ cim_groupe_debut    <chr> "A00", "A15", "A20", "A30", "A50", "A65", "A70", "~
#> $ cim_groupe_fin      <chr> "A09", "A19", "A28", "A49", "A64", "A69", "A74", "~
#> $ cim_groupe_chapitre <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", ~
#> $ cim_groupe_type     <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", ~

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

#> Rows: 42,887
#> Columns: 5
#> $ cim_code      <chr> "A00", "A000", "A001", "A009", "A01", "A010", "A011", "A~
#> $ cim_lib       <chr> "Choléra", "Choléra à Vibrio cholerae 01, biovar cholera~ra~
#> $ cim_categorie <chr> "A00", "A00", "A00", "A00", "A01", "A01", "A01", "A01", ~
#> $ cim_groupe    <chr> "A00-A09", "A00-A09", "A00-A09", "A00-A09", "A00-A09", "~
#> $ cim_chapitre  <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "~

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é

#> Rows: 21
#> Columns: 2
#> $ cim_code <chr> "Z5500", "Z5508", "Z551", "Z590", "Z5910", "Z5911", "Z5912", ~
#> $ cim_lib  <chr> "Analphabétisme et illettrisme", "Faibles niveaux éducatifs, ~ ~

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

#> Rows: 202
#> Columns: 4
#> $ cim_code                   <chr> "F00002", "F00012", "F00022", "F00032", "F0~
#> $ cim_lib                    <chr> "Démence sévère de la maladie d'Alzheimer, ~, ~
#> $ cim_polyhandicap_liste     <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1"~
#> $ cim_polyhandicap_liste_lib <chr> "Déficiences mentales ou psychiatriques sév~v~

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

#> Rows: 28,750
#> Columns: 5
#> $ cma_mco_code                   <chr> "A000", "A001", "A009", "A010", "A011",~
#> $ cma_mco_severite               <chr> "2", "2", "2", "2", "2", "2", "2", "2",~
#> $ cma_mco_liste_exclusion_dp     <chr> "525", "525", "525", "525", "525", "525~
#> $ annee_pmsi                     <chr> "2023", "2023", "2023", "2023", "2023",~
#> $ cma_mco_liste_exclusion_racine <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~

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

#> Rows: 6,292
#> Columns: 2
#> $ cma_ssr_code <chr> "A000", "A001", "A009", "A020", "A022", "A028", "A029", "~
#> $ annee_pmsi   <chr> "2024", "2024", "2024", "2024", "2024", "2024", "2024", "~

Exemples

Chargement de la CIM-10 2021

# Chargement de la CIM-10 de l'année 2021 dans la variable cim_20211
cim_2021 <- refpmsi::refpmsi("cim",2021)
head(cim_2021)
#> # A tibble: 6 x 11
#>   cim_code cim_tmco cim_pssr cim_tpsy cim_lib       cim_code_actif cim_categorie
#>   <chr>       <int> <chr>       <int> <chr>                  <int> <chr>        
#> 1 A00             3 NNNN            3 Choléra                    1 A00           
#> 2 A000            0 NOOO            0 Choléra à Vi~              1 A00            
#> 3 A001            0 NOOO            0 Choléra à Vi~              1 A00            
#> 4 A009            0 NOOO            0 Choléra, san~              1 A00           
#> 5 A01             3 NNNN            3 Fièvres typh~              1 A01           
#> 6 A010            0 NOOO            0 Fièvre typho~              1 A01           
#> # i 4 more variables: cim_chapitre <chr>, cim_groupe <chr>,
#> #   cim_precision <lgl>, annee_pmsi <chr>

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

# Chargement de la CIM-10 des années 2020 et 20211
cim_2020_2021 <- refpmsi::refpmsi("cim",2020:2021)
head(cim_2020_2021)
#> # A tibble: 6 x 11
#>   cim_code cim_tmco cim_pssr cim_tpsy cim_lib       cim_code_actif cim_categorie
#>   <chr>       <int> <chr>       <int> <chr>                  <int> <chr>        
#> 1 A00             3 NNNN            3 Choléra                    1 A00           
#> 2 A000            0 NOOO            0 Choléra à Vi~              1 A00            
#> 3 A001            0 NOOO            0 Choléra à Vi~              1 A00            
#> 4 A009            0 NOOO            0 Choléra, san~              1 A00           
#> 5 A01             3 NNNN            3 Fièvres typh~              1 A01           
#> 6 A010            0 NOOO            0 Fièvre typho~              1 A01           
#> # i 4 more variables: cim_chapitre <chr>, cim_groupe <chr>,
#> #   cim_precision <lgl>, annee_pmsi <chr>

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

#> # A tibble: 12 x 3
#>    no_rss dp_rss annee_rss
#>     <int> <chr>  <chr>    
#>  1      1 I5010  2021     
#>  2      2 Z491   2021     
#>  3      3 H251   2021     
#>  4      4 Z380   2021     
#>  5      5 S7200  2021     
#>  6      6 S0600  2020     
#>  7      7 R074   2021     
#>  8      8 J441   2020     
#>  9      9 K358   2020     
#> 10     10 R53+0  2020     
#> 11     11 S7200  2021     
#> 12     12 I5011  2020
# 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 PMSIPMSI
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
#> # A tibble: 12 x 4
#>    no_rss dp_rss annee_rss cim_lib                                              
#>     <int> <chr>  <chr>     <chr>                                                
#>  1      1 I5010  2021      Insuffisance ventriculaire gauche, avec fraction d'é~~
#>  2      2 Z491   2021      Dialyse extra-corporelle                             
#>  3      3 H251   2021      Cataracte sénile nucléaire                             
#>  4      4 Z380   2021      Enfant unique, né à l'hôpital                           
#>  5      5 S7200  2021      Fracture fermée du col du fémur                        
#>  6      6 S0600  2020      Commotion cérébrale, sans plaie intracrânienne          
#>  7      7 R074   2021      Douleur thoracique, sans précision                    
#>  8      8 J441   2020      Maladie pulmonaire obstructive chronique avec épisod~~
#>  9      9 K358   2020      Appendicites aigües, autres et non précisées            
#> 10     10 R53+0  2020      Altération [baisse] de l'état général                    
#> 11     11 S7200  2021      Fracture fermée du col du fémur                        
#> 12     12 I5011  2020      Insuffisance ventriculaire gauche, avec fraction d'é~~

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 correspondantnt
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
#> # A tibble: 12 x 5
#>    no_rss dp_rss annee_rss cim_lib                                  cim_chapitre
#>     <int> <chr>  <chr>     <chr>                                    <chr>       
#>  1      1 I5010  2021      Insuffisance ventriculaire gauche, avec~ 9           
#>  2      2 Z491   2021      Dialyse extra-corporelle                 21          
#>  3      3 H251   2021      Cataracte sénile nucléaire               7             
#>  4      4 Z380   2021      Enfant unique, né à l'hôpital            21             
#>  5      5 S7200  2021      Fracture fermée du col du fémur          19            
#>  6      6 S0600  2020      Commotion cérébrale, sans plaie intracr~ 19            
#>  7      7 R074   2021      Douleur thoracique, sans précision       18           
#>  8      8 J441   2020      Maladie pulmonaire obstructive chroniqu~ 10          
#>  9      9 K358   2020      Appendicites aigües, autres et non préc~ 11            
#> 10     10 R53+0  2020      Altération [baisse] de l'état général    18              
#> 11     11 S7200  2021      Fracture fermée du col du fémur          19            
#> 12     12 I5011  2020      Insuffisance ventriculaire gauche, avec~ 9

# chargement du référentiel "cim_chapitre" avec les 2 variables qui nous intéressentent
cim_chapitre <- refpmsi::refpmsi("cim_chapitre") %>% dplyr::select(cim_chapitre_num,cim_chapitre_lib)
cim_chapitre
#> # A tibble: 22 x 2
#>    cim_chapitre_num cim_chapitre_lib                                            
#>    <chr>            <chr>                                                       
#>  1 1                Certaines maladies infectieuses et parasitaires             
#>  2 2                Tumeurs                                                     
#>  3 3                Maladies du sang et des organes hématopoïétiques et certain~in~
#>  4 4                Maladies endocriniennes, nutritionnelles et métaboliques     
#>  5 5                Troubles mentaux et du comportement                         
#>  6 6                Maladies du système nerveux                                  
#>  7 7                Maladies de l'œil et de ses annexes                          
#>  8 8                Maladies de l'oreille et de l'apophyse mastoïde              
#>  9 9                Maladies de l'appareil circulatoire                         
#> 10 10               Maladies de l'appareil respiratoire                         
#> # i 12 more rows

dp_chapitre <- dp_chapitre %>% 
  # rattachement des libellés de chapitre CIM-10 via le référentiel "cim_chapitre"re"
  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 DPP
  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
#> # A tibble: 7 x 5
#>   cim_chapitre cim_chapitre_lib                          n_dp n_dp_diff liste_dp
#>   <chr>        <chr>                                    <int>     <int> <chr>   
#> 1 19           Lésions traumatiques, empoisonnements e~     3         2 S7200,S~~
#> 2 18           Symptômes, signes et résultats anormaux~     2         2 R074,R5~5~
#> 3 21           Facteurs influant sur l'état de santé e~     2         2 Z491,Z3~3~
#> 4 9            Maladies de l'appareil circulatoire          2         2 I5010,I~
#> 5 10           Maladies de l'appareil respiratoire          1         1 J441    
#> 6 11           Maladies de l'appareil digestif              1         1 K358    
#> 7 7            Maladies de l'œil et de ses annexes          1         1 H2511

Repérage des DAS interdits en DP et DR

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

#> # A tibble: 10 x 3
#>    no_rss das   annee_rss
#>     <int> <chr> <chr>    
#>  1      1 Z370  2020     
#>  2      2 I10   2020     
#>  3      3 P040  2020     
#>  4      4 F1725 2021     
#>  5      5 G473  2020     
#>  6      6 W189  2021     
#>  7      7 R600  2021     
#>  8      8 N178  2021     
#>  9      9 B952  2020     
#> 10     10 D638  2021
# 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 PMSIPMSI
  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
#> # A tibble: 3 x 5
#>   no_rss das   annee_rss cim_lib                                        cim_tmco
#>    <int> <chr> <chr>     <chr>                                             <int>
#> 1      1 Z370  2020      Naissance unique, enfant vivant                       1
#> 2      6 W189  2021      Autre chute de plain-pied, lieu sans précision        22
#> 3      9 B952  2020      Streptocoques, groupe D, et entérocoques, cau~        11

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