Comptage des consultations en ACE dans le PMSI sur une période définie

Bonjour,
Je cherche à compter le nombre de consultations en ACE reçues par patient, sur une certaine période.

Je me base donc sur la table T_MCOaaFCSTC, liée à la table T_MCOaaCSTC grâce à eta_num et seq_num, en filtrant pour éliminer les codes retours en erreur et les duplicats d’eta_num, et en filtrant ACT_COD sur les codes de consultations.

Un code est disponible sur la documentation du HDH pour décrire les ACE du mois de janvier 2017 en termes de nombre de séjours, en dénombrant le nombre de couples (eta_num||seq_num) distincts, mais je ne sais pas si je peux utiliser cette méthode pour dénombrer précisément les consultations (Actes et consultations externes | Documentation du SNDS & SNDS OMOP).

En effet, dans certains cas où il y a plusieurs lignes par couple (eta_num||seq_num), je me demande s’il ne faut pas en tenir compte. Je joins ci-dessous un exemple avec des données fictives qui correspond aux cas que je rencontre :

Ici, j’ai l’impression qu’il y a deux consultations, une le 01/01/2017, et l’autre 30 jours plus tard, le 31/01/2017. Il faudrait donc tenir compte des 2 consultations et de leurs dates respectives, pour bien compter les consultations sur une période donnée.

Est-il valide de considérer qu’une consultation s’est effectivement déroulée à chaque date EXE_SOI_DTD + DEL_DAT_ENT ?

Merci d’avance pour votre aide,

Astrid

Bonjour Astrid,

Je n’ai malheureusement pas la réponse mais je me demande s’il ne pourrait pas s’agir d’actes qui seraient réalisés en plusieurs phases, ce qui impliquerait que le patient doit revenir à l’hôpital plusieurs fois pour une même séquence ?
Pour vérifier cela, peut-être pouvez-vous essayer de croiser avec la table T_MCOaaFMSTC également et regarder ce que cela donne au niveau de la variable PHA_ACT ?
Peut-être qu’il ne s’agit pas du tout de cela, auquel cas je n’ai pas l’explication.

Bien cordialement,

Tim Vlaar - Health Data Hub

Bonjour Tim,

Merci pour votre réponse.
J’ai sélectionné les lignes de la table T_MCOaaFMSTC correspondant aux couples (eta_num, seq_num) qui présentaient des duplicats, la variable PHA_ACT est toujours égale à 0. Après vérification, dans toute ma base T_MCOaaFMSTC, je n’ai que quelques observations avec PHA_ACT différent de 0.

Pour information, nous avons remarqué que la variable SOR_MOI correspondait au mois de la date EXE_SOI_DTD+DEL_DAT_ENT.

Bien cordialement,

Astrid

Bonjour.

Pourrait-il s’agir d’un type de consultations externes nécessitant des séances régulières sur une période, par exemple dialyse ? Avez-vous PSH_MDT=« 19 » (séances) ?

Cordialement.

Axel Renoux - Hôpitaux de Toulouse et INSERM UMR 1295 Cerpop

Bonjour,

Merci Axel pour votre suggestion, je viens de vérifier, la variable PSH_MDT ne prend pas la valeur 19 pour les couples ETA_NUM, SEQ_NUM retrouvés avec plusieurs lignes, sauf dans de très rares cas.

En plus des observations avec la variable DEL_DAT_ENT différente, j’ai également des couples ETA_NUM, SEQ_NUM avec plusieurs observations et des codes d’actes différents, ou bien des codes de spécialités EXE_SPE différents, voire même tout simplement deux observations identiques.

Pour un même couple ETA_NUM, SEQ_NUM, si on a une ligne avec ACT_COD='C' et une ligne avec ACT_COD='CS', peut-on considérer que le patient a eu deux consultations ?

Merci,
Bien cordialement,
Astrid

Je note que je fais davantage de filtres que ceux que vous listez (hormis celui sur les consultations que je ne fais pas. Ceci fait-il disparaître le problème ?

proc sql;
create table consult_extern_MCO_20aa as
select &liste_de_vos_variables.
from T_MCOaaCSTC c /ACE NIR/date/
INNER JOIN T_MCOaaFCSTC b
on c.eta_num = b.eta_num
and c.seq_num = b.seq_num
and c.nir_ret = ‹ 0 › and c.nai_ret = ‹ 0 › and c.sex_ret = ‹ 0 › and c.ias_ret = ‹ 0 › and c.ent_dat_ret = ‹ 0 ›
/*elimination des finess geographiques pour APHP, APHM, HCL */
and c.eta_num not in (‹ 130780521 ›, ‹ 130783236 ›, ‹ 130783293 ›, ‹ 130784234 ›, ‹ 130804297 ›, ‹ 600100101 ›, ‹ 750041543 ›,‹ 750100018 ›, ‹ 750100042 ›, ‹ 750100075 ›, ‹ 750100083 ›, ‹ 750100091 ›, ‹ 750100109 ›, ‹ 750100125 ›,‹ 750100166 ›, ‹ 750100208 ›, ‹ 750100216 ›, ‹ 750100232 ›, ‹ 750100273 ›, ‹ 750100299 ›, ‹ 750801441 ›,‹ 750803447 ›, ‹ 750803454 ›, ‹ 910100015 ›, ‹ 910100023 ›, ‹ 920100013 ›, ‹ 920100021 ›, ‹ 920100039 ›,‹ 920100047 ›, ‹ 920100054 ›, ‹ 920100062 ›, ‹ 930100011 ›, ‹ 930100037 ›, ‹ 930100045 ›, ‹ 940100027 ›,‹ 940100035 ›, ‹ 940100043 ›, ‹ 940100050 ›, ‹ 940100068 ›, ‹ 950100016 ›, ‹ 690783154 ›, ‹ 690784137 ›,‹ 690784152 ›, ‹ 690784178 ›, ‹ 690787478 ›, ‹ 830100558 ›)
INNER JOIN T_MCOaaFASTC f /ajout pour les ACE d’un filtre sur les séjours facturables à l’assurance maladie d’après la table des en-tête de facture/
on c.eta_num = f.eta_num
and c.seq_num = f.seq_num
and f.SEJ_FAC_AM ne ‹ 0 ›
INNER JOIN T_MCOaaVALOACE v /à partir de 2013, Valorisation des actes et consultations externes/
on c.eta_num = v.eta_num
and c.seq_num = v.seq_num
and v.VALO ne ‹ 0 › /Type de valorisation du séjour/
and v.MNT_BR > 0 /Montant Base de remboursement total/
;
quit;

Edit : ce forum a transformé dans le message ci-dessus les apostrophes en crochets et les commentaires en slashs.

Bonjour,
Merci pour le code ! J’ai pris comme variables d’intérêt: c.eta_num, c.seq_num, c.num_enq, c.exe_soi_dtd, b.del_dat_ent, b.act_cod, b.exe_spe. Quand je fais tourner cela sur l’année 2017, je trouve au moins 2 lignes pour plus de la moitié des couples (ETA_NUM, SEQ_NUM)

proc sql;
create table consult_extern_nb_obs as
select (eta_num || seq_num) as eta_num_seq_num, count() as nb_obs,
from consult_extern_MCO_20aa
group by eta_num_seq_num;
create table consult_extern_min2_obs as
select *
from consult_extern_nb_obs
where nb_obs>=2;
select count(distinct(eta_num_seq_num)) « Nombre de couples eta_num, seq_num »
from consult_extern_nb_obs;
select count(distinct(eta_num_seq_num)) « Nombre de couples eta_num, seq_num avec 2 observations ou plus »
from consult_extern_min2_obs;
quit;