# Médicaments de la liste en sus
Crédits
Cette fiche a été rédigée par Noémie Courtejoie (Drees).
Quelques modifications apportées suite à la contribution de Guillaume Desjeux.
15/05/2025 - Mise-à-jour, notamment avec l’ajout de codes SAS par le Health Data Hub en collaboration avec Alira Health
A savoir : Des références peuvent être données à la fin de la fiche. La dernière date de modification se situe tout en bas à droite.
# Présentation des médicaments facturés “en sus” des tarifs des séjours hospitaliers
A partir de 2018, la tarification à l’hôpital se base principalement, plus de 50% du financement, sur la tarification à l’activité (T2A) (cf. Financement des établissements de santé (opens new window), Ministère de la Santé et Propositions de l’Assurance Maladie pour 2019 (opens new window)).
Chaque champ du PMSI a une tarification différente basée sur des systèmes de classification spécifiques dont les détails se trouvent dans le glossaire (le GHS (Groupe Homogène de Séjour) pour le PMSI-MCO, le GHT (Groupe Homogène de Tarifs) pour le PMSI-HAD, et le GMT (Groupe Médico-Tarifaire) pour le PMSI-SMR (anciennement SSR). De plus, les fiches sur les requêtes type permettent d’identifier les séjours des champs MCO, HAD,SMR et RIM-P. En psychiatrie (PMSI-RIM-P), le financement repose surtout sur une DA (Dotation Annuelle).
En complément des tarifs de prise en charge par les régimes d’assurance maladie, certains éléments peuvent être facturés en sus. Il peut s’agir, par exemple, de suppléments liés à des unités médicales spécialisées, de majorations liées à la durée du séjour, ou encore de dépenses spécifiques comme les médicaments coûteux ou les dispositifs médicaux implantables (DMI), qui sont facturés séparément, c’est-à-dire en sus du séjour.
# Médicaments onéreux facturés en sus des tarifs des séjours hospitaliers
Les médicaments de la liste en sus peuvent être prescrits :
Dans les établissements de santé (ES), publics et privés, au cours de séjours en MCO, HAD, SMR et RIM-P.
Dans les ES publics, au cours d’actes et consultations externes (ACE) en MCO et SMR.
En principe, les hôpitaux reçoivent un tarif de l’Assurance Maladie pour chaque séjour hospitalier, incluant notamment le coût des médicaments administrés. Toutefois, certains traitements innovants et très coûteux ne peuvent pas être intégrés dans ce forfait standard. Pour garantir l’accès à ces médicaments sans pénaliser financièrement les établissements, un dispositif spécifique a été mis en place : la "liste en sus". Les traitements figurant sur cette liste sont facturés "en sus", c’est-à-dire en plus du tarif du séjour.
Pour des informations concernant les critères d’inscription et de radiation de la liste en sus, consulter le site du Ministère de la santé (opens new window).
# Définition de la liste en sus et Unités Communes de Dispensation (UCD)
La liste en sus définit un ensemble d’unités communes de dispensation (UCD), c’est-à-dire le plus petit conditionnement pharmaceutique auquel correspondent un code et un libellé.
Chaque UCD est identifié par les éléments suivants : sa dénomination (nom de marque, Dénomination Commune Internationale (DCI), nom du laboratoire), sa forme galénique, son dosage et son conditionnement.
Un code UCD est un code numérique, historiquement sur 7 caractères et aujourd’hui sur 13 (cf. Arrêté de décembre 2021 relatif à la codification des médicaments (opens new window). Les médicaments inscrits sur la liste en sus sont référencés dans les tables du SNDS au format UCD 7 ou UCD 13 (caractères), selon la table utilisée et la période de codage. Le support de formation Nomenclature des consommables – UCD (opens new window)) proposé par l’ATIH, la CNAM et le HDH, décrit l’historique du format de disponibilité des codes UCD dans les différentes tables de la base principale du SNDS.
Source : Support de formation Nomenclature des consommables – UCD (opens new window)).
Différences entre les codes UCD et codes CIP
Dans la base principale du SNDS, les codes UCD permettent l’identification des médicaments de la liste en sus hospitalière (PMSI et DCIR) et en rétrocession hospitalière (DCIR). Selon le Code de la santé publique (article R 5126 -102), la rétrocession hospitalière est « la dispensation par une pharmacie à usage intérieur de médicaments non disponibles en officine de ville à des patients non hospitalisés ». Les médicaments délivrés en pharmacie de ville sont, quant à eux, identifiables dans le SNDS à travers les codes CIP (Code Identifiant de Présentation). Pour plus de détails sur le CIP, consulter la fiche Cibler selon les médicaments. Un fichier de correspondance (opens new window) entre les codes CIP7, UCD7, CIP13 et UCD13 est disponible sur le site de l’Agence du Numérique en Santé (ANS). |
La liste initiale a été publiée au Journal Officiel de la république française le 10 mai 2005 : « Arrêté du 4 avril 2005 pris en application de l'article L. 162-22-7 du code de la sécurité sociale et fixant les spécialités pharmaceutiques prises en charge par l'assurance maladie en sus des prestations d'hospitalisation ». Cette liste est ensuite mise à jour par des arrêtés modificatifs.
Sur le site de l’ATIH, vous trouverez le fichier historique (opens new window) qui permet de retracer toutes les modifications apportées à cette liste (inscription, radiation, modification de tarifs, modification du libellé UCD, etc.), ainsi que la date de prise d’effet de ces modifications.
Un tarif de responsabilité (opens new window) est fixé pour chaque UCD par le Comité Economique des Produits de Santé (CEPS), conformément à l’accord du 30 mars 2004, sous la forme d’avis publiés dans le journal officiel de la république française. Il est à noter qu’il y a un décalage dans le temps entre l’inscription sur la liste et la fixation d’un tarif de responsabilité.
# Autres types de médicaments onéreux ou innovant ayant un statut particulier
En plus des médicaments de la liste en sus au sens strict, d’autres types de médicaments peuvent être remboursés “en sus” des tarifs des séjours hospitaliers :
- Les médicaments soumis à une Autorisation d’Accès Compassionnel (AAC) ou à une Autorisation d’Accès Précoce (AAP) en MCO, SMR et HAD (cf. Nomenclatures ATIH (opens new window)).
- Les AAC et AAP remplacent les Autorisation Temporaire d’Utilisation (ATU (opens new window)), à partir du 1er juillet 2021 (cf. Publication (opens new window) sur le site du Ministère de la santé.
- L'ATIH restitue également des statistiques (opens new window) sur la consommation annuelle des médicaments en sus au niveau national, déclinées par année et par molécule.
- Les médicaments thrombolytiques pour le traitement de l’AVC ischémique (MCO)
- Les médicaments coûteux hors liste en sus et hors AAC/AAP (HAD)
Détails des médicaments soumis à un AAC ou une AAP (ex-ATU)
En France, il existe depuis plusieurs années des dispositifs permettant aux patients et aux professionnels d'accéder à des médicaments qui ne disposent pas d'une Autorisation de Mise sur le Marché (AMM) dans une indication thérapeutique donnée. Pour en savoir plus sur ces différents dispositifs ainsi que leurs objectifs, consulter la fiche : Médicaments en accès dérogatoire, ou encore le document Questions réponses - Réforme Accès dérogatoire aux médicaments non autorisés en France pour le traitement de pathologies graves (opens new window) produit par l’ANSM.
Depuis le 1er juillet 2021, une refonte totale du système dérogatoire d’accès et de prise en charge des médicaments a été effectuée.
Accès dérogatoire aux médicaments :
Avant cette date, il n’existait pas moins de six dispositifs d’accès dérogatoire aux médicaments, chacun avec ses propres critères d’accès et de prise en charge.
Cette refonte a eu pour objectifs de :
- Répondre aux besoins thérapeutiques tels que couverts par les dispositifs ATU et RTU (Recommandation Temporaire d'Utilisation) ;
- Être plus homogène, simple et lisible pour les acteurs ;
- Permettre un accès plus rapide aux patients ;
- Être attractif pour les entreprises ;
- Offrir des garanties de soutenabilité financière pour notre système de santé.
En effet, les modifications successives apportées à ces 6 dispositifs au cours du temps avaient eu pour effet de complexifier les mécanismes d’accès et de prise en charge, les rendant peu lisibles pour l’ensemble des acteurs.
De plus, le périmètre du dispositif des RTU se recoupait avec celui des ATU avec une procédure longue et dépendante des laboratoires.
Deux nouveaux dispositifs d’accès et de prise en charge par l’Assurance maladie sont entrés en vigueur Lien de référence (opens new window) :
- L’accès précoce qui vise les médicaments répondant à un besoin thérapeutique non couvert, susceptibles d’être innovants et pour lesquels le laboratoire s’engage à déposer une autorisation de mise sur le marché (AMM) ou une demande de remboursement de droit commun ;
- L’accès compassionnel qui vise les médicaments non nécessairement innovants, qui ne sont initialement pas destinés à obtenir une AMM mais qui répondent de façon satisfaisante à un besoin thérapeutique non couvert.
*Source : Site du Ministère de la santé (opens new window)
La table de référence (opens new window) contenant la liste des médicaments en AAP/AAC est disponible sur le site de l’ATIH et le graphique ci-dessous donne des informations détaillées sur le passage de 6 dispositifs avant la refonte à 2 dispositifs actuellement :
Source : Document (opens new window) produit par l’ANSM et la HAS sur les réformes de l’accès dérogatoire aux médicaments
# Les médicaments facturés « en sus » des tarifs des séjours hospitaliers dans le PMSI
Cette section présente la méthode d’extraction du montant des dépenses en sus, à l’hôpital, dans les secteurs public et privé, à partir des tables du PMSI.
# Les tables et variables à considérer
Pour les utilisateurs ayant accès aux données exhaustives via le portail SNDS, les tables se trouvent dans la bibliothèque ORAVUE. Pour les utilisateurs ayant un accès sur projet via le portail SNDS ou toute autre plateforme sécurisée, ces tables sont accessibles dans le dossier contenant leur extraction SNDS. Les tableaux ci-dessous contiennent les libellés des variables, les variables et les tables concernées. Pour plus d’informations, se référer au dictionnaire interactif (opens new window) des variables du SNDS.
L’historique de la remontée des médicaments de la liste en sus dans la base principale du SNDS n’est pas le même dans tous les champs du PMSI ( Concepts PMSI, Concepts PMSI-MCO, Historique des données).
# Tables et variables communes aux champs MCO, HAD et SMR
Médicaments de la liste en sus (ES publics) | ||||
---|---|---|---|---|
T_MCOaaMED | T_HADaaMED | T_SSRaaMED | ||
Numéro FINESS de l’établissement | ETA_NUM | ETA_NUM_EPMSI | ETA_NUM | |
Numéro séquentiel du séjour | RSA_NUM | RHAD_NUM | RHA_NUM | |
Code UCD* (sur 13 caractères) | UCD_UCD_COD | UCD_UCD_COD | UCD_UCD_COD | |
Code indication des spécialités pharmaceutiques** inscrites sur la liste en sus (lien (opens new window)) | COD_LES | COD_LES | - | |
Prix d'achat multiplié par le nombre administré | ADM_NBR_PRI | ACH_PRI_ADM | ACH_PRI_ADM | |
Nombre administré éventuellement fractionnaire | ADM_NBR | ADM_NBR | ADM_NBR | |
Année de la date d'administration | DAT_ADM_ANN | ADM_ANN | ADM\_ANN | |
Mois de la date d'administration | ADM_MOIS | ADM_MOIS | ADM_MOIS | |
Nombre de séjours impliqués (pour MCO et HAD) | NBR_SEJ | SEJ_NBR | - | |
Année période | ANN | ANN | ANN | |
Mois période | MOI | MOIS | MOIS |
*Attention : ne pas confondre avec la variable « UCD_COD
», qui a été supprimée des tables T_MCOaaMED
et T_SSRaaMED
en 2014.
**Cette variable n'existe pas en SMR et est disponible seulement à partir de 2018 en MCO et HAD.
Médicaments en AAP/AAC (ex-ATU) (ES publics et privés) | |||
---|---|---|---|
T_MCOaaMEDAPAC (ou T_MCOaaMEDATU jusqu’à 2021 inclus) | T_HADaaMEDAPAC (ou T_HADaaMEDATU jusqu’à 2021 inclus) | T_SSRaaMEDAPAC (ou T_SSRaaMEDATU jusqu’à 2021 inclus) | |
Numéro FINESS de l’établissement | ETA_NUM | ETA_NUM_EPMSI | ETA_NUM |
Numéro séquentiel du séjour | RSA_NUM | RHAD_NUM | RHA_NUM |
Code UCD* (sur 13 caractères) | UCD_UCD_COD | UCD_UCD_COD | UCD_UCD_COD |
Prix d'achat multiplié par le nombre administré | ACH_PRI_ADM | ACH_PRI_ADM | ACH_PRI_ADM |
Nombre administré éventuellement fractionnaire | ADM_NBR | ADM_NBR | ADM_NBR |
Année de la date d'administration | ADM_ANN | ADM_ANN | ADM_ANN |
Mois de la date d'administration | ADM_MOIS | ADM_MOIS | ADM_MOIS |
Année période | ANN | ANN | ANN |
Mois période | MOI | MOIS | MOI |
*Attention : ne pas confondre avec la variable UCD_COD
, qui a été supprimée des tables T_MCOaaMEDATU
et T_SSRaaMEDATU
en 2015.
Médicaments en liste en sus (ES privés) | |||
---|---|---|---|
T_MCOaaFH | T_HADaaFH | T_SSRaaFH | |
Numéro FINESS de l’établissement | ETA_NUM | ETA_NUM_EPMSI | ETA_NUM |
Numéro séquentiel du séjour | RSA_NUM | RHAD_NUM | RHA_NUM |
Code UCD* (sur 13 caractères) | UCD_UCD_COD (0 à gauche) | UCD_UCD_COD (13 caractères, avec 000 à gauche) | UCD_UCD_COD (0 à gauche) |
Code indication des spécialités pharmaceutiques** inscrites sur la liste en sus (lien (opens new window)) | COD_LES | COD_LES | - |
Prix d'achat unitaire TTC | ACH_PRI | ACH_PRI | ACH_PRI |
Prix unitaire facturé | PRI_UNI_FAC | - | PRI_UNI_FAC |
Quantité | QUA_COD | QUA_COD | QUA_COD |
Montant total facturé TTC | FAC_TOT | FAC_TOT | FAC_TOT |
Coefficient de fractionnement | COE_TAU | COE_TAU | FRACT_COE |
Année de début du séjour | ENT_ANN | ENT_ANN | ENT_ANN |
Mois de début du séjour | ENT_MOI | ENT_MOI | ENT_MOI |
*Attention : ne pas confondre avec la variable UCD_COD
définie sur 7 caractères, disponible dans les tables T_MCOaaFH
et T_HADaaFH
.
**Cette variable n'existe pas en SMR et est disponible seulement à partir de 2018 en MCO et HAD.
# Tables et variables spécifiques MCO
Médicaments thrombolytiques pour le traitement de l’AVC ischémique (ES publics) | |
---|---|
T_MCOaaMEDTHROMBO | |
Numéro FINESS de l’établissement | ETA_NUM |
Numéro séquentiel du séjour | RSA_NUM |
Code UCD* (sur 13 caractères) | UCD_UCD_COD |
Prix d'achat multiplié par le nombre administré | ACH_PRI_ADM |
Nombre administré éventuellement fractionnaire | ADM_NBR |
Année de la date d'administration | ADM_ANN |
Mois de la date d'administration | ADM_MOIS |
Année période | ANN |
Mois période | MOI |
*Attention : ne pas confondre avec la variable « UCD_COD
» supprimée de la table T_MCOaaMEDTHROMBO
en 2014.
Médicaments rétrocédés des établissements publics dans le cadre de la pharmacie à usage interne pour les ACE (ES publics) | |
---|---|
T_MCOaaFHSTC | |
Numéro FINESS de l’établissement | ETA_NUM |
Numéro séquentiel de l’ACE | SEQ_NUM |
Code UCD* (sur 13 caractères) | UCD_UCD_COD (0 à gauche) |
Prix d'achat unitaire TTC | ACH_PRU_TTC |
Quantité | QUA |
Montant total facturé TTC | FAC_MNT |
Coefficient de fractionnement | FRACT_COE |
Année de début du séjour/prise en charge | ENT_ANN |
Mois de début du séjour/prise en charge | ENT_MOI |
*Attention : ne pas confondre avec la variable UCD_COD
définie sur 7 caractères dans la table T_MCOaaFHSTC
.
# Tables et variables spécifiques HAD
Médicament coûteux hors liste en sus et hors ATU (ES publics) | |
---|---|
T_HADaaMEDCHL | |
Numéro FINESS de l’établissement | ETA_NUM_EPMSI |
Numéro séquentiel du séjour | RHAD_NUM |
Code UCD (sur 13 caractères) | UCD_UCD_COD |
Prix d'achat multiplié par le nombre administré | ACH_PRI_ADM |
Nombre administré éventuellement fractionnaire | ADM_NBR |
Année de la date d'administration | ADM_ANN |
Mois de la date d'administration | ADM_MOIS |
Année période | ANN |
Mois période | MOIS |
# Tables et variables spécifiques RIM-P
T_RIPaaFH (ES privés) | |
---|---|
Numéro FINESS de l’établissement | ETA_NUM_EPMSI |
Numéro séquentiel du séjour | RIP_NUM |
Code UCD (sur 13 caractères) | UCD_UCD_COD (0 à gauche) |
Prix d'achat unitaire TTC | ACH_PRI |
Quantité | QUA_COD |
Montant total facturé TTC | FAC_TOT |
Coefficient de fractionnement | COE_TAU |
Année de début du séjour | ENT_ANN |
Mois de début du séjour | ENT_MOI |
# Tables et variables spécifiques au fichier historique des médicaments liste en sus
a. PMSI MCO et HAD
Le fichier historique des médicaments en liste en sus mis à disposition par l’ATIH présente les dates d'inscription et de radiation de chaque UCD.
Pour les champs MCO et HAD, ce fichier est téléchargeable depuis ce lien (opens new window), et sera nommé HIST_LES
dans la suite de cette fiche.
Fichier historique liste en sus pour les champs MCO et HAD (HIST_LES) | |
---|---|
Variable | Libellé |
UCD 7 | Code UCD sur 7 caractères |
UCD 13 | Code UCD sur 13 caractères |
Libellé UCD | Libellé du code UCD |
Date publication | Date de publication au journal officiel de la république française |
Date effet* | Date d’effet de la publication la publication. |
Evénement | Inscription/modification/tarif/radiation |
Prix, € | Tarif de responsabilité |
*En l'absence de mention dans le texte, la date d'effet est le lendemain de sa publication au journal officiel de la république française.
En vue de retrouver les dates d’appartenance à la liste en sus de chaque code UCD, il est nécessaire de créer au préalable la table HIST_LES_dates
à partir du fichier historique des médicaments en liste en sus HIST_LES
. Cette table contient une ligne par code UCD
.
HIST_LES_dates | |
---|---|
Variable | Libellé |
UCD_7 | Identique à la variable "UCD 7" de la table HIST_LES |
UCD_13 | Identique à la variable "UCD 13" de la table HIST_LES |
DATE_INSCRIPTION | Correspond, pour un même code UCD, à la date minimale d’effet* pour l’événement de type "inscription" de la table HIST_LES . En l’absence de cette date, la date d’effet* associée aux événements de type « modification » ou "tarif" est utilisée. |
DATE_RADIATION | Correspond à la date d’effet* lorsque l’événement est de type "radiation" dans la table HIST_LES |
TARIF_RESP | Correspond à la valeur de "Prix, €" pour les enregistrements dont l’événement est de type "tarif" dans la table HIST_LES . Cette valeur représente le tarif de responsabilité applicable au produit. |
*Si la date d’effet est manquante, le lendemain de la date de publication est utilisée à la place.
Le code SAS ci-dessous permet de créer la table HIST_LES_dates
à partir de la table HIST_LES
:
/* Étape 1 : Lire le fichier historique des médicaments en liste en sus (HIST_LES)
Attention : mettre à jour le chemin d’accès vers le fichier Excel */
proc import datafile="chemin_acces/historique_liste_ucd_en_sus_052025.xls"
out=WORK.HIST_LES
dbms=xls replace;
getnames=yes;
run;
/* Étape 2 : Prétraitement - création de la date d'effet finale et renommage des variables UCD 7 et UCD 13
Rappel : La date d'effet finale correspond à la date d'effet lorsque celle-ci est renseignée.
En l'absence de date d'effet, c'est le lendemain de la date de publication qui est retenu. */
data HIST_LES;
set HIST_LES (rename=('UCD 7'n=UCD_7 'UCD 13'n=UCD_13));
format date_eff_finale date9.;
if not missing('Date effet*'n) then date_eff_finale = 'Date effet*'n;
else if not missing('Date publication'n) then date_eff_finale = 'Date publication'n + 1;
run;
/* Étape 3 : Création de la date d'inscription */
proc sql;
create table date_inscription_finale as
select UCD_7, UCD_13,
min(date_eff_finale) as DATE_INSCRIPTION format=date9.
from HIST_LES
where upcase(Evénement) contains "INSCRIPTION"
or upcase(Evénement) contains "MODIFICATION"
or upcase(Evénement) = "TARIF"
group by UCD_7, UCD_13;
quit;
/* Étape 4 : Création de la date de radiation */
proc sql;
create table date_radiation as
select UCD_7, UCD_13,
min(date_eff_finale) as DATE_RADIATION format=date9.
from HIST_LES
where upcase(Evénement) contains "RADIATION"
group by UCD_7, UCD_13;
quit;
/* Étape 5 : Création du tarif de responsabilité */
proc sort data=HIST_LES out=tarif_sorted;
by UCD_7 UCD_13 date_eff_finale;
run;
data tarif_resp;
set tarif_sorted;
by UCD_7 UCD_13;
if upcase(Evénement) = "TARIF" and 'Prix, €'n > 0 then TARIF_RESP = 'Prix, €'n;
where upcase(Evénement) = "TARIF";
keep UCD_7 UCD_13 TARIF_RESP;
run;
proc sort data=tarif_resp;
by UCD_13 descending TARIF_RESP;
run;
proc sort data=tarif_resp nodupkey;
by UCD_13;
run;
/* Étape 6 : Table finale HIST_LES_dates */
proc sql;
create table HIST_LES_dates as
select distinct a.UCD_7, a.UCD_13,
b.DATE_INSCRIPTION,
c.DATE_RADIATION,
d.TARIF_RESP
from HIST_LES as a
left join date_inscription_finale as b on a.UCD_7 = b.UCD_7 and a.UCD_13 = b.UCD_13
left join date_radiation as c on a.UCD_7 = c.UCD_7 and a.UCD_13 = c.UCD_13
left join tarif_resp as d on a.UCD_7 = d.UCD_7 and a.UCD_13 = d.UCD_13;
quit;
data HIST_LES_dates;
set HIST_LES_dates;
UCD_13_CHAR = put(UCD_13,$13.);
run;
b. PMSI SMR
Le champ SMR du PMSI dispose de sa propre liste des spécialités pharmaceutiques, qui constitue le référentiel utilisé pour identifier les traitements coûteux et les médicaments inscrits sur la liste en sus. Ce fichier est téléchargeable depuis le site du ministère de la Santé : lien (opens new window).
# Les filtres à appliquer pour les dépenses associées aux médicaments sur la liste en sus
Cette section présente les filtres à appliquer pour le calcul des dépenses liées aux médicaments inscrits sur la liste en sus. Pour chaque filtre, un exemple de code SAS est proposé afin de faciliter sa mise en œuvre. Les noms des variables utilisés dans les filtres pouvant varier d’un champ PMSI à un autre, se référer aux tableaux de la section Les tables et variables à considérer.
# Séjours en ES public
La plupart de ces filtres sont issus de la documentation de l’ATIH sur les méthodes d'analyse des dépenses liées aux molécules onéreuses et dispositifs implantables (opens new window)(PMSI MCO, SMR et HAD).
a. Critères de suppression des données incohérentes
Ces critères concernent les tables suivantes (où XXX=MCO,HAD,SSR) :
T_XXXaaMED
,T_XXXaaMEDATU
,T_XXXaaMEDAPAC
,T_MCOaaMEDTHROMBO
,- et
T_HADaaMEDCHL
.
La liste des filtres de suppression des données incohérentes :
- Nombre UCD = 0 et prix d’achat > 0
- Nombre UCD = 0 et prix d’achat = 0
- Nombre UCD < 0 ou prix d’achat < 0
- Nombre UCD >=100 (l’ATIH ne recommande d’utiliser ce filtre qu’en SMR)
- Codes UCD erronés (à vide ou indéterminés)
- Année d’administration < N-2
L’exemple codé ci-dessous porte sur la table T_MCOaaMED
mais reste applicable aux autres tables en adaptant le nom de la variable relative au prix d’achat (par exemple : utiliser ACH_PRI_ADM
au lieu de ADM_NBR_PRI
, voir la section Les tables et variables à considérer).
/* Exemple de code SAS (accès permanent portail CNAM,
à adapter pour un accès sur projet) :
application de ces critères de suppression à la table T_MCO23MED */
data T_MCO23MED_filtered;
set ORAVUE.T_MCO23MED;
if not (
/* # Nombre UCD = 0 et prix d’achat > 0 */
(ADM_NBR = 0 and ADM_NBR_PRI > 0) or
/* # Nombre UCD = 0 et prix d’achat = 0 */
(ADM_NBR = 0 and ADM_NBR_PRI = 0) or
/* # Nombre UCD < 0 ou prix d’achat < 0 */
(ADM_NBR < 0 or ADM_NBR_PRI < 0) or
/* # Nombre UCD >= 100 (l’ATIH ne recommande d’utiliser ce filtre qu’en SMR) */
(Nombre_UCD >= 100) or
/* # Codes UCD erronés (à vide ou indéterminés) */
missing(UCD_UCD_COD)
);
run;
b. Critère de suppression relatif à la vérification de l’appartenance à la liste en sus
Ce filtre s’applique aux tables suivantes :
T_MCOaaMED
,T_HADaaMED
etT_SSRaaMED
.
Note : Pour vérifier l’appartenance à la liste en sus, on récupère le mois et l’année d’administration des médicaments, et on ne conserve que les médicaments qui étaient dans la liste en sus au moment de l'administration. Si le mois et l’année d’administration sont vides, l'ATIH recommande d'utiliser le mois et l’année de sortie de l'hôpital à la place.
L’exemple codé ci-dessous ne porte que sur les tables T_MCOaaMED
. Pour l’appliquer aux tables T_HADaaMED
et T_SSRaaMED
, il suffit de remplacer les noms de variables DAT_ADM_ANN
par ADM_ANN
(année d’administration) et « MOI » par « MOIS » (mois d’administration) (cf. section Tables et variables communes aux champs MCO, HAD et SMR ). Pour les tables T_SSRaaMED
, une adaptation supplémentaire du code doit être effectuée en utilisant le fichier historique des médicaments en liste en sus spécifique au PMSI-SMR tel que décrit à la section Tables et variables spécifiques au fichier historique des médicaments liste en sus.
/* Exemple de code SAS (accès permanent portail CNAM,
à adapter pour un accès sur projet) :
Définition d’une date d’administration des médicaments
en appliquant la recommandation de l’ATIH et application du critère
de suppression à la table T_MCO23MED */
/* Etape 1 : Définition du mois et de l'année d'administration
des médicaments selon la recommandation de l’ATIH */
data T_MCO23MED_avec_date_adm;
set T_MCO23MED;
/* Définition du mois et de l'année d'administration finale */
if not missing(DAT_ADM_ANN) and not missing(ADM_MOIS) then do;
ANNEE_ADM_FINALE = DAT_ADM_ANN;
MOIS_ADM_FINALE = ADM_MOIS;
end;
else if not missing(ANN) and not missing(MOI) then do;
ANNEE_ADM_FINALE = ANN;
MOIS_ADM_FINALE = MOI;
end;
/* Création de la date d'administration finale */
if not missing(ANNEE_ADM_FINALE) and not missing(MOIS_ADM_FINALE) then
DATE_ADM_FINALE = mdy(MOIS_ADM_FINALE, 1, ANNEE_ADM_FINALE);
else
DATE_ADM_FINALE = .;
format DATE_ADM_FINALE date9.;
run;
/* Etape 2 : Application du critère de suppression
NB : la table HIST_LES_dates a été construite dans le code SAS de la section
"Tables et variables spécifiques au fichier historique des médicaments liste en sus" */
proc sql;
create table T_MCO23MED_final as
select a.*, b.DATE_INSCRIPTION, b.DATE_RADIATION
from T_MCO23MED_avec_date_adm as a
left join WORK.HIST_LES_dates as b
on a.UCD_UCD_COD = b.UCD_13_CHAR
where DATE_ADM_FINALE between b.DATE_INSCRIPTION and b.DATE_RADIATION;
quit;
c. Conservation des séjours effectivement valorisés
Pour identifier les séjours valorisés, il faut utiliser les tables de valorisation ou de prise en charge (où XXX=MCO,HAD,SSR):
- En ES publics :
T_XXXaaVALO
ouT_XXXaaSTC
etT_RIPaaSTC
; - En ES privés :
T_XXXaaFA
etT_RIPaaFA
; - Pour les ACE :
T_MCOaaVALOACE
ouT_MCOaaFASTC
etT_SSRaaFASTC
.
La clé de chaînage avec ces tables, détaillée dans le tableau ci-dessous, permet de ne conserver que les dépenses en sus associées à des séjours/consultations valorisés (cf. Fiches sur les dépenses de santé dans les ES publics et dans les ES privés pour plus d’informations sur la valorisation des séjours).
Champ | Table | Couple de variables pour la clé de chaînage |
---|---|---|
MCO | T_MCOaaVALO T_MCOaaSTC T_MCOaaFA | ETA_NUM – RSA_NUM |
MCO | T_MCOaaVALOACE | ETA_NUM – SEQ_NUM |
MCO | T_MCOaaFASTC | ETA_NUM – SEQ_NUM |
HAD | T_HADaaVALO T_HADaaSTC T_HADaaFA | ETA_NUM_EPMSI – RHAD_NUM |
SSR | T_SSRaaVALO T_SSRaaSTC T_SSRaaFA | ETA_NUM – RHA_NUM |
SSR | T_SSRaaFASTC | ETA_NUM – SEQ_NUM |
RIM-P | T_RIPaaSTC T_RIPaaFA | ETA_NUM_EPMSI – RIP_NUM |
A savoir
Les tables T_XXXaaMEDAPAC
(où XXX=MCO,HAD,SSR), ou T_XXXaaMEDATU
jusqu’en 2021 inclus, sont les seules à contenir à la fois des lignes associées à des séjours et consultations en ES publics et en ES privés, et donc leurs variables de jointure associées. |
/* Exemple de code SAS :
sélection des séjours valorisés dans la table T_MCO23MED */
proc sql;
create table T_MCO23MED_SEJ_VALORISES as
select a.*, b.*
from ORAVUE.T_MCO23MED as a
inner join ORAVUE.T_MCO23VALO as b
on a.ETA_NUM = b.ETA_NUM
and a.RSA_NUM = b.RSA_NUM
where b.VALO <> '0' or b.VALO is null;
quit;
d. Filtres supplémentaires sur les quantités et les prix
Avant de sommer les montants des différentes lignes pour obtenir des montants par UCD, par séjour ou par bénéficiaire, il faut diviser les quantités et prix d’achat par la variable “Nombre de séjours impliqués”.
Cette variable existe pour les champs MCO et HAD. Elle n’existe pas pour le champ SMR car pour un même numéro administratif (combinaison ETA_NUM
et RSA_NUM
), il peut y avoir plusieurs numéros de RSA.
Ces filtres ne s’appliquent donc qu’aux tables suivantes (où XXX=MCO,HAD) :
T_XXXaaMED
,T_XXXaaMEDATU
etT_XXXaaMEDAPAC
,T\_MCOaaMEDTHROMBO
,- et
T_HADaaMEDCHL
.
L’exemple codé ci-dessous ne porte que sur les tables T_MCOaaMED
, mais est applicable aux autres tables en adaptant le nom de la variable relative au nombre de séjours impliqués (utiliser SEJ_NBR
au lieu de NBR_SEJ
) et celui du prix d’achat (utiliser ACH_PRI_ADM
au lieu de ADM_NBR_PRI
) (cf. section Les tables et variables à considérer).
/* Exemple de code SAS (accès portail CNAM,
à adapter pour un accès sur projet) :
application des filtres relatifs à l’ajustement des prix
à partir de la table T_MCO23MED */
data T_MCO23MED_QUA_PRIX_AJ;
set ORAVUE.T_MCO23MED;
run;
/* Calcul du nombre administré ajusté (ADM_NBR_AJ)
et du prix d’achat ajusté (ADM_NBR_PRI_AJ) */
if NBR_SEJ > 0 then do;
ADM_NBR_AJ = ADM_NBR / NBR_SEJ;
ADM_NBR_PRI_AJ = ADM_NBR_PRI / NBR_SEJ * ADM_NBR;
end;
else do;
ADM_NBR_AJ = ADM_NBR;
ADM_NBR_PRI_AJ = ADM_NBR_PRI;
end;
run;
e. Filtres supplémentaires sur les prix
Dans ces tables, le prix d’achat négocié est disponible. En effet, l'ES arrive souvent à descendre au-dessous du tarif de responsabilité par négociation avec les laboratoires (puis l'établissement et l'Assurance Maladie se partagent les bénéfices).
Le remboursement est borné par le tarif de responsabilité. Il est toutefois possible de trouver dans les bases un prix supérieur au tarif de responsabilité. Il est suggéré d’ajouter un filtre pour remplacer le prix par le tarif de responsabilité si le prix est supérieur au tarif de responsabilité, avec une différence de prix de plus de 10 %.
Ce filtre s’applique aux tables suivantes :
T_MCOaaMED
,T_HADaaMED
etT_SSRaaMED
.
L’exemple codé ci-dessous ne porte que sur les tables T_MCOaaMED
, mais est applicable aux autres tables en utilisant le prix d’achat ajusté calculé à partir de la variable ACH_PRI_ADM
au lieu de ADM_NBR_PRI
(cf. section Les tables et variables à considérer).
/* Exemple de code SAS (accès permanent portail CNAM,
à adapter pour un accès sur projet) :
application du filtre sur les prix à la table T_MCO23MED */
/* Ce code SAS utilise la table HIST_LES_dates
qui a été construite plus tôt dans le code. */
proc sql;
create table T_MCO23MED_PRIX_AJ as
select
a.*,
b.TARIF_RESP,
/* Calcul du prix final plafonné à 110% du tarif de responsabilité */
case
when not missing(b.TARIF_RESP)
and a.ADM_NBR_PRI_AJ > b.TARIF_RESP * 1.1
then b.TARIF_RESP
else a.ADM_NBR_PRI_AJ
end as PRIX_FIN
from T_MCO23MED_QUA_PRIX_AJ as a
left join HIST_LES_dates as b
on a.UCD_UCD_COD = b.UCD_13_CHAR;
quit;
f. Cas particulier de l’Avastin
L’Avastin (codes UCD : 9261104 et 9261110) peut être identifié à la fois dans les tables T_MCOaaMED
et T_MCOaaMEDATU
/T_MCOaaMEDAPAC
.
Depuis 2016, l'ATIH recommande de rassembler toutes les dépenses liées à l’Avastin et de les compter avec les dépenses de la table T_MCOaaMED
.
Il faut donc :
- Aller chercher les dépenses liées à l'Avastin dans
T_MCOaaMEDAPAC
(ouT_MCOaaMEDATU
jusqu’en 2021 inclus) ; - Les ajouter aux dépenses liées à l'Avastin dans
T_MCOaaMED
; - Supprimer les doublons identifiées sur la base des variables : Finess de l’établissement, Numéro séquentiel de séjour, Code UCD, Mois, Année et Indication.
/* Exemple de code SAS (accès portail CNAM, à adapter pour un accès sur projet) :
identification de l’Avastin en 2023 */
/* Étape 1 : Création d'une macro-liste des codes UCD7 */
%let ucd7_avastin1 = 9261104;
%let ucd7_avastin2 = 9261110;
/* Étape 2 : Sélection de l’Avastin dans la table T_MCO23MED */
data med_filtre;
set ORAVUE.T_MCO23MED;
ucd7 = substr(UCD_UCD_COD, 6, 7);
if ucd7 in ("&ucd7_avastin1", "&ucd7_avastin2");
run;
/* Étape 3 : Sélection de l’Avastin dans la table T_MCO23MEDAPAC */
data medapac_filtre;
set ORAVUE.T_MCO23MEDAPAC;
ucd7 = substr(UCD_UCD_COD, 6, 7);
if ucd7 in ("&ucd7_avastin1", "&ucd7_avastin2");
run;
/* Étape 4 : Fusion des deux tables */
data T_MCO23_Avastin_all;
set med_filtre medapac_filtre;
run;
/* Étape 5 : Suppression des doublons sur les colonnes clés */
proc sort data=T_MCO23_Avastin_all out=T_MCO23_Avastin nodupkey;
by ETA_NUM RSA_NUM UCD_UCD_COD MOI ANN COD_LES;
run;
# Séjours en ES privé et ACE en ES public
Ces filtres s’appliquent aux tables
T_MCOaaFHSTC
,T_MCOaaFH
,T_HADaaFH
, etT_SSRaaFH
.
Les noms de variables sont spécifiés dans les tableaux de la section Les tables et variables à considérer.
Critères de suppression :
- Nombre UCD = 0 ou Nombre UCD = . ou Montant facturé = .
- Coefficient de fractionnement = 0
- Codes UCD erronés (vides ou indéterminés)
- Molécules administrées hors période d’appartenance à la liste en sus (à vérifier de la même façon que pour la table MED)
/* Exemple de code SAS (accès permanent portail CNAM,
à adapter pour un accès sur projet) :
application de ces critères de suppression à la table T_MCO23FHSTC */
/* Ce code SAS utilise la table HIST_LES_dates
qui a été construite dans le code SAS de la section 2.1.5. */
data T_MCO23FHSTC_FILTERED;
merge ORAVUE.T_MCO23FHSTC (in=a)
HIST_LES_dates (in=b rename=(UCD_13_CHAR=UCD_UCD_COD));
by UCD_UCD_COD;
/* Créer la date d'administration des médicaments */
DATE_ADM_FINALE = mdy(ENT_MOI, 1, ENT_ANN);
/* Appliquer les filtres de suppression */
if QUA = 0
or missing(QUA)
or missing(FAC_MNT)
/* Coefficient de fractionnement = 0 */
or FRACT_COE = 0
/* Codes UCD erronés (à vide ou indéterminés) */
or missing(UCD_UCD_COD)
/* Molécules administrées hors période d’appartenance
à la liste en sus */
or DATE_ADM_FINALE < DATE_INSCRIPTION
or DATE_ADM_FINALE > DATE_RADIATION
then delete;
run;
::: warming A noter
La HAS a développé un algorithme pour les médicaments en AAP/AAC disponible sur le son dépôt GitLab (opens new window).
:::
Note : .
# Les médicaments facturés « en sus » des tarifs des séjours hospitaliers dans le DCIR
Les remboursements des médicaments de la liste en sus des établissements de santé privés à but lucratif (ES privés) se trouvent également dans le DCIR.
Ils sont regroupés sous le code prestation 3320 « Pharmacie hospitalière en sus du ghs » dans la variable PRS_NAT_REF
de la table prestation ER_PRS_F
. Le détail des remboursements par code UCD se trouve dans la table affinée ER_UCD_F
(variable UCD_UCD_COD
) en posant le filtre UCD_TOP_UCD
=1 (la modalité 0 correspond aux rétrocessions).
La table ER_UCD_F
porte sur la pharmacie hospitalière codée rétrocédée, ainsi que les médicaments en sus du GHS (molécule coûteuse) (cf. Fiche Dépenses dans les tables affinées) :
- La variable
UCD_UCD_COD
donne l’information affinée du code UCD ; - La variable
UCD_TTF_MNT
, le montant TTC facturé ; - et la variable
UCD_DLV_NBR
, le nombre d'unités délivrées.