R et PMSI

Liste des médicaments anticancéreux intra-GHS : expérimentation 51 (version 2020)

Dans le cadre de l’expérimentation article 51 (voir notre article « Expérimentation article 51 pour le recueil des médicaments anticancéreux« ), certains établissements sont amenés à déclarer les médicaments anticancéreux non-inscrits sur la liste en sus ou intra-GHS.

L’ATIH a publié la version « 2020 » de cette liste de médicaments (format Excel), applicable au 1er janvier 2020 et à déclarer dans le FICHCOMP « anticancéreux intraGHS » (voir notre article « Format du FICHCOMP anticancéreux intraGHS« ).

La liste comprend 3 926 codes indications pour 891 codes UCD différents.

Chaque indication est documentée. La DCI (dénomination commune internationale associée aux codes UCD est présente.

Nous avons ajouté ce nouveau référentiel au package R refpmsi:: des référentiels PMSI avec le libellé « anticancereux_intraghs ». Disponible à partir du 12 décembre 2020.

Source : Médicaments anticancéreux intra-GHS : Expérimentation article 51 (ATIH)

Imprimer cet article – Copyright © Lespmsi.com

Répartition des GHM par UM (code R)

Nous inaugurons une série d’articles « R et PMSI » dans laquelle nous publierons régulièrement des exemples de tableau et de graphiques d’analyse PMSI en R avec mise à disposition du code R commenté.

Sujet : répartition par UM de l’activité, classée par GHM

Commentaires :
Nous avons produit un jeu de données MCO minimal sous R, correspondant à une activité MCO réaliste avec l’essentiel des variables intéressantes (DP, actes CCAM, DAS, durée, GHM, âge, …) et des données correspondant à des codages standards 

Ces variables se retrouvent dans les fichiers rss ou rsa ou sont facilement calculables à partir de celles-ci.

Dans cet exemple, nous avons filtré sur les 10 premiers GHM en terme de nombre de RUM.

La répartition de l’activité classée dans un GHM donné est faite à partir du nombre de RUM.

Tri par ordre décroissant sur le nombre de RUM.

Les référentiels PMSI sont récupérés avec le package refpmsi::

L’analyse peut évidemment être étendue à tous les GHM représentés dans un périmètre d’analyse ou recalibrée à un autre niveau (RGHM, CMD, DA, GP, …) ou sur un regroupement particulier d’UM (par pôle ou par autorisation par exemple).

La mise en forme du tableau reprend l’essentiel des « Ten Guideline for Better Tables » de John Schwabish

Le tableau est produit avec le package gt::

Intérêts :
Visualiser l’adéquation des prises en charge avec les UM
Repérer les prises en charge très majoritairement (> 90%) réalisées dans un UM pour regarder les motifs de réalisations dans les autres UM (cas particuliers justifiés ?, problèmes de codage ?)
Adéquation prises en charge / autorisation

Code R du tableau

Imprimer cet article – Copyright © Lespmsi.com

refpmsi : nouveau package R de référentiels PMSI

Nous venons de mettre en ligne refpmsinouveau package R des référentiels PMSI.

refpmsi comprend à ce jour 70 référentiels PMSI et 2 fonctions basiques (refpmsi(), même nom que le package, pour charger un référentiel et liste_refpmsi() pour visualiser la liste des référentiels directement dans R Studio).

Exemples d’utilisation de refpmsi :
avec les référentiels CIM-10
avec les référentiels GHM

Le package est open source, librement utilisable par tous.

Nous mettrons à jour les référentiels et en ajouterons régulièrement de nouveau.

Pour être tenu au courant des mises à jour et des nouveaux référentiels disponibles dans refpmsi :

    Le package est ouvert à tous les référentiels PMSI.

    N’hésitez pas à en proposer en nous écrivant directement ici : nous les ajouterons volontiers à refpmsi pour qu’un maximum de DIM et d’établissements puissent les utiliser dans leurs analyses PMSI.

    Voir aussi :
    # le github de refpmsi.
    # article « 6 raisons d’utiliser R en analyse PMSI »
    # le package nomensland, autre package R de référentiels PMSI, développé et maintenu par Guillaume Pressiat, statisticien. Ce package propose en outre des listes de requêtes.

    Copyright © Lespmsi.com – Imprimer cet article

    Nettoyage des points dans les codes CIM-10 en R

    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

    Formation R et PMSI MCO – Liste de requêtes

    Liste (non exhaustive) de quelques requêtes R et PMSI MCO qui seront présentées lors de la formation « R et PMSI MCO » qui aura lieu à Paris les 8 et 9 octobre 2020., essentiellement lors des ateliers « Traitement de données PMSI MCO et associées en R » (8 octobre 2020) et « Bibliothèque requêtes PMSI MCO en R » (9 octobre 2020)

    Le code R de chacune de ces requêtes sera fourni dans le support de la formation et dans la correction des exercices. Les résultats de certaines de ces requêtes seront illustrés graphiquement dans l’atelier « Les graphiques en R ».

    Les référentiels PMSI et tiers utilisés pour ces exercices seront fournis en début de formation.

    A l’issue de la formation, les participants seront autonomes pour coder et personnaliser ces familles de requêtes avec leurs données, en toute indépendance par rapport à leur service informatique ou à un logiciel commercial.

    # nb RUM et des séjours par filtre (GHM, regroupement de GHM, présence d’au moins 1 codage CIM-10 ou CCAM, …)
    # répartition des séjours multi-rum par nb de RUM
    # nb d’UM différents avec au moins 1 séjour groupé dans une CM ou un regroupement de GHM
    # proportion de séjours de sévérité 3 et 4
    # taux de décès
    # calcul des IP-DMS
    # activité par UM/regroupement UM (service, pôle, regroupement libre) = DMS, nb RUM, nb séjour, valorisation T2A, nb patients
    # séjours en provenance des urgences par UM/regroupement d’UM
    # séjour 0, 1 ou 2 journée(s) en HC (séjours dits « forains »)
    # codage médical par position (DP,DR,DAS) par pathologie. Tri par occurence.
    # case mix des codages CIM-10 par position (DP,DR,DAS)
    # nb accouchement dans l’établissement
    # répartition des accouchements par classe d’âge
    # nb accouchements par voie basse spontanée / assistée / instrumentale / césarienne programmée / césarienne en urgence ou pendant le travail
    # taux d’accouchement avec péridurale / épisiotomie
    # activité de réa
    # proportion des séjours avec passage en réa dans le 1er RUM par rapport au total des séjours avec passage en  réa
    # repérage des séjours avec passage en  réa dans le dernier RUM pour les séjours multi-RUM
    # regroupement des UM en services et en pôles
    # produire un case mix (exemples : case mix des GHM, des GHS, des DA)
    # case mix des DMI posés pour les séjours de chirurgie orthopédique (exemple de requêtes joignant 2 sources de données PMSI)
    # case mix des UCD dispensés pour une sélection de séjour
    # sélection de séjours via la présence ou l’exclusion d’une liste d’actes CCAM ou de codes CIM-10 ou de classification GHM
    # analyse d’activité par phénotype (exemple d’import en R d’un référentiel externe structuré)
    # calcul du score de Charlson (exemple de recours à un package métier)
    # cohérence du codage des unités typées avec les pathologies de ces unités
    # repérage des séjours substituables (exemple de codage en R d’un algorithme simple)
    # suivi de l’activité de chirurgie ambulatoire
    # ré-hospitalisation à 7 jours et 30 jours des séjours de chirurgie ambulatoire
    # régressions linéaires simples (valorisation T2A par durée de séjour)
    # suivi d’activité pluriannuel avec comparaison inter-annuelle
    # identification des séjours longs par différentes approches (dépassement d’un nombre fixe de journées ou d’un coefficient par rapport à la DMS nationale du GHM du séjour ou par rapport à la DMS du GHM dans l’établissement, dépassement de la BH, durées statistiquement aberrantes (outliers))
    # test-t de Student (exemple : comparaison de DMS pour 2 échantillons de séjours différentiés par un codage)
    # test du khi-2 (exemple : indépendance du mode de sortie par classe d’âge pour une prise en charge donnée)
    # activité de cancer Chirurgie Digestive (exemple de codage d’un algorithme INCa)
    # case mix GHS de l’activité avec DM intraGHS (exemple de jointure avec un référentiel tiers : la liste des DM intraGHS)

    Copyright © Lespmsi.com – Imprimer cet article