Passer au contenu

CIM-10 FR à usage PMSI

Intitulé du référentiel : cim

Mise à jour : 23 mai 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_libelle = 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 SMR
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       <chr> "3", "0", "0", "0", "3", "0", "0", "0", "0", "0", "3", ~
#> $ cim_pssr       <chr> "NNNN", "NOOO", "NOOO", "NOOO", "NNNN", "NOOO", "NOOO",~
#> $ cim_tpsy       <chr> "3", "0", "0", "0", "3", "0", "0", "0", "0", "0", "3", ~
#> $ cim_libelle    <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 : 23 mai 2024

Référentiel non annualisé.

Basé sur la dernière version de la CIM-10 FR à usage PMSI.

Variables

cim_chapitre_no = numéros des chapitres de la CIM-10
cim_chapitre_libelle = libellés des chapitres de la CIM-10

#> Rows: 22
#> Columns: 2
#> $ cim_chapitre_no      <chr> "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"~
#> $ cim_chapitre_libelle <chr> "Certaines maladies infectieuses et parasitaires"~

CIM Groupe

Intitulé du référentiel : cim_groupe

Mise à jour : 23 mai 2024

Référentiel non annualisé.

Basé sur la dernière version de la CIM-10 FR à usage PMSI.

Variables

cim_groupe = premier et dernier code CIM-10 de chaque groupe de la CIM-10
cim_groupe_libelle =libellés des groupes de la CIM-10

#> Rows: 275
#> Columns: 2
#> $ cim_groupe         <chr> "A00-A09", "A15-A19", "A20-A28", "A30-A49", "A50-A6~
#> $ cim_groupe_libelle <chr> "Maladies intestinales infectieuses", "Tuberculose"~

CIM Libellé

Intitulé du référentiel : cim_libelle

Mise à jour : 23 mai 2024

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

Référentiel non annualisé.

Variables

cim_code = code CIM-10
cim_libelle = 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_libelle   <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 : 23 mai 2024

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

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: 33,555
#> 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> "2024", "2024", "2024", "2024", "2024",~
#> $ cma_mco_liste_exclusion_racine <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~

CMA SMR

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_smr_code = code CIM-10 des CMA SMR
annee_pmsi = année PMSI SMR

#> Rows: 5,514
#> Columns: 2
#> $ cma_smr_code <chr> "A000", "A001", "A009", "A020", "A022", "A028", "A029", "~
#> $ annee_pmsi   <chr> "2024", "2024", "2024", "2024", "2024", "2024", "2024", "~

Dénombrement Base nationale MCO des diagnostics

Intitulé du référentiel : denombrement_mco_diagnostic

Mise à jour : 10 septembre 2024

Dernière version (2023)

Source

Variables

#> Rows: 20,794
#> Columns: 2
#> $ diagnostic              <chr> "A000", "A001", "A009", "A010", "A011", "A014"~
#> $ denombrement_diagnostic <int> 14, NA, 14, 147, NA, NA, 3621, 497, 218, 256, ~

Exemples

Chargement de la CIM-10 2024

# Chargement de la CIM-10 de l'année 2024 dans la variable cim_20244
cim_2024 <- refpmsi::refpmsi("cim",2024)
head(cim_2024)
#> # A tibble: 6 x 11
#>   cim_code cim_tmco cim_pssr cim_tpsy cim_libelle   cim_code_actif cim_categorie
#>   <chr>    <chr>    <chr>    <chr>    <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 2023 et 2024

# Chargement de la CIM-10 des années 2023 et 20244
cim_2023_2024 <- refpmsi::refpmsi("cim",2023:2024)
head(cim_2023_2024)
#> # A tibble: 6 x 11
#>   cim_code cim_tmco cim_pssr cim_tpsy cim_libelle   cim_code_actif cim_categorie
#>   <chr>    <chr>    <chr>    <chr>    <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>

Génération du référentiel cim_libelle à partir du référentiel cim

cim <- refpmsi::refpmsi("cim")
cim_libelle <- cim %>% 
  dplyr::select(cim_code,cim_libelle,annee_pmsi) %>%
  dplyr::group_by(cim_code) %>%
  dplyr::arrange(desc(annee_pmsi), by_groups = TRUE) %>% 
  dplyr::filter(dplyr::row_number() == 1) %>%
  dplyr::ungroup() %>% 
  dplyr::select(cim_code,cim_libelle)
head(cim_libelle)
#> # A tibble: 6 x 2
#>   cim_code cim_libelle                                  
#>   <chr>    <chr>                                        
#> 1 A00      Choléra                                       
#> 2 A000     Choléra à Vibrio cholerae 01, biovar choleraeae
#> 3 A001     Choléra à Vibrio cholerae 01, biovar El Tor    
#> 4 A009     Choléra, sans précision                        
#> 5 A01      Fièvres typhoïde et paratyphoïde                
#> 6 A010     Fièvre typhoïdede

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  2023     
#>  2      2 Z491   2024     
#>  3      3 H251   2023     
#>  4      4 Z380   2024     
#>  5      5 S7200  2024     
#>  6      6 S0600  2024     
#>  7      7 R074   2023     
#>  8      8 J441   2024     
#>  9      9 K358   2023     
#> 10     10 R53+0  2024     
#> 11     11 S7200  2024     
#> 12     12 I5011  2023
# chargement de la CIM-10 2023 et 2024
cim_2023_2024 <- refpmsi::refpmsi("cim",2023:2024)

# rattachement à chaque DP du libellé CIM-10 correspondant au DP et à son année PMSIPMSI
jeu_dp_libelle <- jeu_dp %>% 
  dplyr::left_join(cim_2023_2024 %>% dplyr::select(cim_code,cim_libelle,annee_pmsi),
                   join_by(dp_rss == cim_code, annee_rss == annee_pmsi))
jeu_dp_libelle
#> # A tibble: 12 x 4
#>    no_rss dp_rss annee_rss cim_libelle                                          
#>     <int> <chr>  <chr>     <chr>                                                
#>  1      1 I5010  2023      Insuffisance ventriculaire gauche, avec fraction d'é~~
#>  2      2 Z491   2024      Dialyse extra-corporelle                             
#>  3      3 H251   2023      Cataracte sénile nucléaire                             
#>  4      4 Z380   2024      Enfant unique, né à l'hôpital                           
#>  5      5 S7200  2024      Fracture fermée du col du fémur                        
#>  6      6 S0600  2024      Commotion cérébrale, sans plaie intracrânienne          
#>  7      7 R074   2023      Douleur thoracique, sans précision                    
#>  8      8 J441   2024      Maladie pulmonaire obstructive chronique avec épisod~~
#>  9      9 K358   2023      Appendicites aigües, autres et non précisées            
#> 10     10 R53+0  2024      Altération [baisse] de l'état général                    
#> 11     11 S7200  2024      Fracture fermée du col du fémur                        
#> 12     12 I5011  2023      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 2023 et 2024
cim_2023_2024 <- refpmsi::refpmsi("cim",2023:2024)

# 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_2023_2024 %>% dplyr::select(cim_code, cim_libelle, cim_chapitre, annee_pmsi),
                   join_by(dp_rss == cim_code, annee_rss == annee_pmsi))
dp_chapitre
#> # A tibble: 12 x 5
#>    no_rss dp_rss annee_rss cim_libelle                              cim_chapitre
#>     <int> <chr>  <chr>     <chr>                                    <chr>       
#>  1      1 I5010  2023      Insuffisance ventriculaire gauche, avec~ 9           
#>  2      2 Z491   2024      Dialyse extra-corporelle                 21          
#>  3      3 H251   2023      Cataracte sénile nucléaire               7             
#>  4      4 Z380   2024      Enfant unique, né à l'hôpital            21             
#>  5      5 S7200  2024      Fracture fermée du col du fémur          19            
#>  6      6 S0600  2024      Commotion cérébrale, sans plaie intracr~ 19            
#>  7      7 R074   2023      Douleur thoracique, sans précision       18           
#>  8      8 J441   2024      Maladie pulmonaire obstructive chroniqu~ 10          
#>  9      9 K358   2023      Appendicites aigües, autres et non préc~ 11            
#> 10     10 R53+0  2024      Altération [baisse] de l'état général    18              
#> 11     11 S7200  2024      Fracture fermée du col du fémur          19            
#> 12     12 I5011  2023      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_no,cim_chapitre_libelle)
cim_chapitre
#> # A tibble: 22 x 2
#>    cim_chapitre_no cim_chapitre_libelle                                         
#>    <chr>           <chr>                                                        
#>  1 1               Certaines maladies infectieuses et parasitaires              
#>  2 2               Tumeurs                                                      
#>  3 3               Maladies du sang et des organes hématopoïétiques et certains~ns~
#>  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

casemix_chapitre <- dp_chapitre %>% 
  # rattachement des libellés de chapitre CIM-10 via le référentiel "cim_chapitre"re"
  dplyr::left_join(cim_chapitre, join_by(cim_chapitre == cim_chapitre_no)) %>%
  # regroupement par chapitre
  dplyr::group_by(cim_chapitre,cim_chapitre_libelle) %>%
  # par chapitre, calcul du nombre de DP, du nombre de DP différent et de la liste des DPP
  dplyr::summarise(nb_dp = dplyr::n(),
                   nb_dp_different = dplyr::n_distinct(dp_rss),
                   liste_dp = paste0(dp_rss, collapse = ","),
                   .groups = "drop") %>% 
  # tri descendant sur le nombre de DP
  dplyr::arrange(desc(nb_dp))
casemix_chapitre
#> # A tibble: 7 x 5
#>   cim_chapitre cim_chapitre_libelle               nb_dp nb_dp_different liste_dp
#>   <chr>        <chr>                              <int>           <int> <chr>   
#> 1 19           Lésions traumatiques, empoisonnem~     3               2 S7200,S~~
#> 2 18           Symptômes, signes et résultats an~     2               2 R074,R5~5~
#> 3 21           Facteurs influant sur l'état de s~     2               2 Z491,Z3~~
#> 4 9            Maladies de l'appareil circulatoi~     2               2 I5010,I~
#> 5 10           Maladies de l'appareil respiratoi~     1               1 J441    
#> 6 11           Maladies de l'appareil digestif        1               1 K358    
#> 7 7            Maladies de l'œil et de ses annex~     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  2023     
#>  2      2 I10   2024     
#>  3      3 P040  2023     
#>  4      4 F1725 2024     
#>  5      5 G473  2024     
#>  6      6 W189  2024     
#>  7      7 R600  2024     
#>  8      8 N178  2023     
#>  9      9 B952  2024     
#> 10     10 D638  2024
# chargement de la CIM-10 2023 et 2024
cim_2023_2024 <- refpmsi::refpmsi("cim",2023:2024)

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_2023_2024 %>% dplyr::select(cim_code,cim_libelle,cim_tmco,annee_pmsi),
                   join_by(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_libelle                                    cim_tmco
#>    <int> <chr> <chr>     <chr>                                          <chr>   
#> 1      1 Z370  2023      Naissance unique, enfant vivant                1       
#> 2      6 W189  2024      Autre chute de plain-pied, lieu sans précision 2        
#> 3      9 B952  2024      Streptocoques, groupe D, et entérocoques, cau~ 11

Listes des CMA MCO par niveau - sortie Excel

library(dplyr)
library(refpmsi)

cim_libelle <- refpmsi::refpmsi("cim_libelle")
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_libelle %>% dplyr::select(cim_code,cim_libelle),
                   join_by(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 de cma mco 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, join_by(cim_code == cim_code)) %>% 
  dplyr::filter(cim_pssr != cim_pssr_2023)
# résultat : Z515 devient autorisé en morbidité principale