On est régulièrement amené à enrichir une liste de codages CIM-10 avec des informations issues d’un référentiel CIM-10 dans lequel les codes CIM-10 sont enregistrés avec un point.
Exemple avec une liste de diags CIM-10 que l’on appelle df1
Extrait de quelques lignes de df1
filtrées sur la seule colonne DP
DP |
---|
D987 |
C098 |
K317 |
Z987 |
que l’on cherche à enrichir avec un référentiel que l’on appelle df2
Extrait de quelques lignes de df2
Codes CIM-10 | Explications | Sources |
---|---|---|
M62.3 | Le syndrome d’immobilité est une entité clinique distincte d’origine musculaire, le diagnostic doit être posé par le clinicien. Il ne s’agit pas seulement d’un état d’immobilisation du patient pour des raisons diverses. | Agora |
Q93.3 | Le syndrome de Wolf-Hirschhorn (SWH) est un trouble du développement avec anomalies faciales caractéristiques, retard de croissance pré- et postnatale, déficit intellectuel, retard psychomoteur sévère, crises d’épilepsie et hypotonie. Synonyme : Délétion distale 4p Coder les manifestations en fonction des circonstances |
ORPHANET & COCOA |
I89.0 | Le volume 3 classe en I89.0 les lymphœdèmes primitifs mais aussi secondaires. C’est bien ce code qui convient pour un lymphœdème après curage associé au code T81.7 |
Agora |
K31.7 | Polypes du tube digestif Le codage des polypes du tube digestif est à distinguer selon les compléments d’information fournis. On les code comme une tumeur bénigne du segment concerné quand ils sont précisés adénomateux. On utilise alors les catégories D12 Tumeur bénigne du côlon, du rectum, de l’anus et du canal anal ou D13 Tumeurs bénignes de parties autres et mal définies de l’appareil digestif. S’ils sont le siège d’un cancer (polype dégénéré), ils doivent être codés comme des tumeurs malignes du segment concerné. Les polypes non tumoraux et ceux dont la nature histologique n’est pas précisée sont décrits par des libellés particuliers du chapitre XI des maladies de l’appareil digestif. On y trouve en effet : – les polypes de l’estomac et du duodénum (K31.7) ; – les polypes du côlon (K63.5) ; – les polypes du rectum (K62.1) ; – les polypes de l’anus (K62.0). |
ATIH – Consignes de codage |
Source : CoCoa 2019 – Version 30 juin 2019
Problème
Pour pouvoir faire la jointure entre ces 2 data frames, il va falloir au préalable nettoyer la colonne Codes CIM-10
de df2
en supprimant les points dans les codes CIM-10
Analyse
Remplacer la colonne actuelle Codes CIM-10
de df2
par une colonne de même nom avec les codes CIM-10 nettoyés (= sans les points)
Donc appliquer à chaque code CIM-10 de la colonne Codes CIM-10
une fonction de nettoyage du point s’il existe
La colonne Codes CIM-10
est de type character
Voyons directement le code correspondant que nous commentons ensuite.
Code
delete_dot <- function(x) str_replace_all(x,"[.]","")
df2 <- df2 %>%
mutate(`Codes CIM-10` = map_chr(`Codes CIM-10`, delete_dot))
Commentaires du code
Le remplacement d’une colonne par une autre colonne : fonction mutate() de dplyr.
Mise entre du nom de la colonne car le nom comprend un espace vide.
Appliquer une même fonction sur une colonne : une fonction map() du package purrr.
On choisit map_chr() pour retourner directement une colonne chr.
Il est plus lisible de coder la fonction de nettoyage en dehors du map_chr() : c’est la fonction que l’on a appelé delete_dot(). Cela permet aussi de réutiliser librement delete_dot().
Pour le nettoyage, on a choisi de rester dans le tidyverse avec la fonction str_replace_all() du package stringr, plutôt que d’utiliser la fonction R native gsub().
str_replace_all() : tuto simple en français
Pour aller chercher les points dans les codes CIM-10, via le 2eme argument de str_replace_all(), on a codé un REGEX classique [.]
. On aurait aussi pu coder \\.
pour ce 2eme argument (moins élégant).
Le remplacement du point par rien est codé simplement ""
dans le 3eme argument de str_replace_all()
Si le code CIM-10 ne contient pas de point, str_replace_all() ne fait rien car il ne trouve pas de point.
Résultat
On vérifie que la colonne Codes CIM-10
de df2
a bien été modifiée comme voulu.
Codes CIM-10 | Explications | Sources |
---|---|---|
M623 | Le syndrome d’immobilité est une entité clinique distincte d’origine musculaire, le diagnostic doit être posé par le clinicien. Il ne s’agit pas seulement d’un état d’immobilisation du patient pour des raisons diverses. | Agora |
Q933 | Le syndrome de Wolf-Hirschhorn (SWH) est un trouble du développement avec anomalies faciales caractéristiques, retard de croissance pré- et postnatale, déficit intellectuel, retard psychomoteur sévère, crises d’épilepsie et hypotonie. Synonyme : Délétion distale 4p Coder les manifestations en fonction des circonstances |
ORPHANET & COCOA |
I890 | Le volume 3 classe en I89.0 les lymphœdèmes primitifs mais aussi secondaires. C’est bien ce code qui convient pour un lymphœdème après curage associé au code T81.7 |
Agora |
K317 | Polypes du tube digestif Le codage des polypes du tube digestif est à distinguer selon les compléments d’information fournis. On les code comme une tumeur bénigne du segment concerné quand ils sont précisés adénomateux. On utilise alors les catégories D12 Tumeur bénigne du côlon, du rectum, de l’anus et du canal anal ou D13 Tumeurs bénignes de parties autres et mal définies de l’appareil digestif. S’ils sont le siège d’un cancer (polype dégénéré), ils doivent être codés comme des tumeurs malignes du segment concerné. Les polypes non tumoraux et ceux dont la nature histologique n’est pas précisée sont décrits par des libellés particuliers du chapitre XI des maladies de l’appareil digestif. On y trouve en effet : – les polypes de l’estomac et du duodénum (K31.7) ; – les polypes du côlon (K63.5) ; – les polypes du rectum (K62.1) ; – les polypes de l’anus (K62.0). |
ATIH – Consignes de codage |
On peut maintenant faire la jointure des 2 data frame df1
et df2
via les colonnes DP
de Codes CIM-10
qui se correspondent (avec la fonction left_join() par exemple).
Copyright © LesPMSI.com