# Table VISIT_OCCURRENCE

# Description

Cette table contient les événements qui se produisent lorsqu'une personne interagit avec le système de santé pendant une certaine période. Par exemple lorsqu'un patient se rend dans un établissement de soins de santé ou bien lorsqu'un personnel médical se rend chez un patient, ou bien lors d'une téléconsultation ou encore lorsque la visite est de courte durée ou donne lieu à une hospitalisation.

La table VISIT_OCCURRENCE contient les durées pendant lesquelles une personne reçoit sans interruption des actes médicaux d'un ou de plusieurs prestataires dans un lieu de soins. Les visites sont classées en plusieurs catégories : soins ambulatoires, hospitalisation, urgences et soins de longue durée. Les personnes peuvent passer de l'un à l'autre de ces milieux au cours d'un séjour/traitements.

Le concept de visite est décrit par des concepts dans le domaine des visites, qui forment une structure hiérarchique. Les concepts possibles dans le format OMOP-CDM sont :

  • Inpatient visit (opens new window) (Visite de patient hospitalisé) Concept_ID = 9201 : Personne se rendant à l'hôpital, sur un site de soins, occupant un lit, pour une durée de plus d'une journée, avec des médecins et d'autres prestataires disponibles en permanence pour fournir un service 24 heures sur 24

  • Emergency Room Visit (opens new window) (Visite de la salle d'urgence) Concept_ID = 9203 : Personne qui se rend dans un établissement de soins de santé spécialisé dans le traitement des urgences, sur un site de soins, dans un délai d'un jour, avec des médecins et des prestataires disponibles en permanence pour fournir un service 24 heures sur 24

  • Emergency Room and inpatient visit (opens new window) (Salle d'urgence et visite des patients hospitalisés) Concept_ID = 262 : Personne qui se rend aux urgences, puis est hospitalisée, lorsque le service des urgences fait partie de l'hôpital et que la transition entre les urgences et les autres services de l'hôpital n'est pas définie.

  • Non-hospital institution visit (opens new window) (Visite d'un établissement non hospitalier) Concept_ID = 42898160 : Personne se rendant dans un établissement spécialisé pour des raisons de santé, sur un site de soins, sans médecin mais avec la présence possible d'autres prestataires de soins, en permanence, pour fournir un service 24 heures sur 24

  • Outpatient visit (opens new window) (Visite ambulatoire) Concept_ID = 9202: Personne qui se rend dans un établissement de soins ambulatoires spécialisé, dans un site de soins, dans un délai d'un jour, sans lit, avec des médecins ou des prestataires de services médicaux qui fournissent des services pendant la visite

  • Home visit (opens new window) (Visite à domicile) Concept_ID = 581476: Prestataire visitant une personne, sans site de soins, dans un délai d'un jour, fournissant un service

  • Telehealtd visit (opens new window) (Visite en téléconsultation) Concept_ID = 5083: Le patient s'engage avec le fournisseur par le biais des médias de communication

  • Pharmacy visit (opens new window) (Visite en pharmacie) Concept_ID = 581458 : Personne qui se rend à la pharmacie pour délivrer un médicament, sur un site de soins, dans la journée

  • Laboratory Visit (opens new window) (Visite du laboratoire) Concept_ID = 32036 : Visite d'un patient dans un établissement spécialisé, sur un site de soins, dans un délai d'un jour, en vue d'une analyse biologique.

  • Ambulance Visit (opens new window) (Visite en ambulance) Concpet_ID = 581478 : Personne utilisant un service de transport dans le but d'effectuer l'une des autres visites, sans site de soins, dans un délai d'un jour, éventuellement avec des prestataires accompagnant la visite et fournissant le service.

  • Case Management Visit (opens new window) : Visite de gestion de cas Concept_ID = 38004193 : Personne en contact avec le système de soins de santé, sans site de soins, dans un délai d'un jour, sans prestataire, à des fins administratives

La durée de la visite, ou "durée du séjour", est définie comme suit : visit_end_date - visit_start_date Pour toutes les visites, cette durée est inférieure à 1 jour, sauf pour les visites de patients hospitalisés (inpatient visit) et les visites d'établissements non hospitaliers (Non-hospital institution Visits). Le CDM contient également la table VISIT_DETAIL dans laquelle sont stockées des informations supplémentaires sur la visite, par exemple les transferts entre unités lors d'une visite de patient hospitalisé.

# Commentaires généraux

  • Pour le PMSI, on retient deux types de visite :

    • Visites avec hospitalisation (au moins 1 nuit) : tables C du PMSI. Le concept_id associé est "9201 : inpatient visit"

    • Visites sans hospitalisation (le patient ne reste pas pour une nuit) : tables ACE (Actes et Consultations Externes, voir la documentation SNDS) du PMSI. Le concept_id associé est "9202 : outpatient visit".

  • Pour le DCIR, il n'y a pas de "inpatient_visit". En effet, les séjours hospitaliers des établissements publics remontent à la fois dans le PMSI et le DCIR, on les retire donc du DCIR pour éviter les doublons. Pour distinguer les visites en pharmacie, en laboratoire et en ville (outpatient), on utilise le code de prestation de référence (prs_nat_ref), et leur correspondance avec les trois concept_id : "9202 : outpatient visit", "581458 : pharmacy visit" et "32036 : laboratory visit".

  • Comme pour les tables LOCATION et CARE_SITE, on retire les établissements de _ER_ETE_F pour lesquels ( etb_cat_rg1 > 1203 ET ete_cat_cod ) OU ( ete_cat_cod ∊ [362 ; 422 ] ) (cf partie LOCATION)

  • On traite séparément les visites qui remontent des établissements de santé (ER_ETE_F) et les autres (ER_PRS_F dont on a enlevé les lignes qui sont dans ER_ETE_F)

# Tables et variables utilisées dans le SNDS

Tables du PMSI :

T_MCOaaC

  • eta_num
  • rsa_num
  • exe_soi_dtd
  • exe_soi_dtf
  • T_RIPaaC

  • eta_num_epmsi
  • rip_num
  • exe_soi_dtd
  • exe_soi_dtf
  • T_SSRaaC

  • eta_num
  • rha_num
  • exe_soi_dtd
  • exe_soi_dtf
  • nir_ano_17
  • T_SSRaaB

  • eta_num
  • rha_num
  • eta_num_geo
  • hos_typ_um
  • T_MCOaaCSTC

    • eta_num
    • seq_num
    • exe_soi_dtd
    • exe_soi_std

    T_HADaaC

    • eta_num_epmsi
    • rhad_num
    • exe_soi_dtd
    • exe_soi_dtf

    T_SSRaaCSTC

    • eta_num
    • seq_num
    • exe_soi_dtd
    • exe_soi_dtf

    Tables du DCIR :

      _ER_ETE_F

    • ben_nir_psa
    • etb_pre_fin
    • exe_soi_dtd
    • exe_soi_dtf
    • pse_spe_cod
    • pse_act_nat
    • dcir_visit_id
    • dcir_visit_key

      _ER_PRS_F

    • ben_nir_psa
    • etb_pre_fin
    • exe_soi_dtd
    • exe_soi_dtf
    • pse_spe_cod
    • pse_act_nat
    • dcir_visit_id
    • dcir_visit_key

    # Tables et variables utilisées dans le modèle OMOP

    PERSON

    • person_id
    • person_source_value

    CARE_SITE

    • care_site_id
    • care_site_source_value

    SOURCE_TO_CONCEPT_MAP

    • target_concept_id
    • source_code
    • source_vocabulary_id

    PROVIDER

    • provider_id
    • provider_source_value

    # Variables au format OMOP remplies

    Variables Description Type Clé primaire Clé étrangère Table de la clé étrangère
    visit_occurrence_id*

    Ce champ permet d’identifier de manière unique une interaction entre un patient et le système de santé.

    Cet identifiant est utilisé par les autres tables du CDM pour associer des évènements à une visite.

    integer Oui Non
    person_id* integer Non Oui PERSON
    visit_concept_id*

    Ce champ contient un concept id qui représente le type de visite, comme les patients hospitalisés au moins une nuit (inpatient) ou les visites en ambulatoire (outpatient).

    Tous les concepts de ce champ sont standards et appartiennent au domaine Visit.

    integer Non Oui CONCEPT
    visit_start_date*

    Pour les séjours (inpatient visits), la date de début est généralement la date d’admission.

    Pour les visites en ambulatoire, la date de début et la date de fin sont égales.

    date Non Non
    visit_start_datetime datetime Non Non
    visit_end_date* Pour les séjours (inpatient visits), la date de fin est généralement la date de sortie. date Non Non
    visit_end_datetime datetime Non Non
    visit_type_concept_id* Ce champ est utilisé pour comprendre la provenance de l’enregistrement des données concernant la visite (provenance des données) Integer Non Oui CONCEPT
    provider_id Il n’y a qu’un seul professionnel de santé par visite et le document de l’ETL doit clairement définir comment il est choisi (traitant, prescripteur, etc). S’il y a plusieurs professionnels de santé qui interviennent au cours d’une visite, ils peuvent être pris en compte dans les tables évènements (CONDITION_OCCURRENCE, PROCEDURE_OCCURRENCE, etc.) ou dans la table VISIT_DETAIL. integer Non Oui PROVIDER
    care_site_id Ce champ indique dans quel centre de soin a eu lieu la visite. integer Non Oui CARE_SITE
    visit_source_value Ce champ contient la valeur des données source qui indique le type de visite dont il s’agit (séjour, ambulatoire, urgence, etc.) varchar(50) Non Non

    # PMSI Inpatient visit

    # Commentaires généraux

    • Dans cette partie, on traite le cas des hospitalisations.

    • Les tables C désignent les tables T_MCOaaC, T_RIPaaC, T_HADaaC, T_SSRaaC.

    • On sélectionne uniquement les séjours valides, c'est-à-dire pour lesquels la date de début d'exécution des soins (exe_soi_dtd) est renseignée.

    • On supprime les séjours avec codes retours erronés, c'est-à-dire qu'on garde les lignes pour lesquelles les codes retours valent 0 (nir_ret, nai_ret, sex_ret, sej_ret, fho_ret, pms_ret, dat_ret, coh_nai_ret, coh_sex_ret des tables C).

    • Jusqu'en 2017, les hôpitaux de l'APHP, l'APHM et les HCL les séjours sont transmis en double, à la fois avec eta_num = finess juridique et eta_num = finess géographique. Cette fiche conseille de prendre en compte seulement les séjours transmis à travers leur finess juridique. On supprime les séjours transmis à travers leur finess géographique, c'est à dire pour lesquels eta_num.

      • APHM : 130780521, 130783236, 130783293, 130784234, 130804297

      • HCL : 690784137, 690784152, 690784178,830100558

    • APHP : 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

    # Tables et variables utilisées dans le SNDS

    T_MCOaaC
    • eta_num
    • rsa_num
    • exe_soi_dtd
    • exe_soi_dtf
    T_RIPaaC
    • eta_num_epmsi
    • rip_num
    • exe_soi_dtd
    • exe_soi_dtf
    • sej_idt
    T_SSRaaC
    • eta_num
    • rha_num
    • exe_soi_dtd
    • exe_soi_dtf
    • nir_ano_17
    T_SSRaaB
    • eta_num
    • rha_num
    • eta_num_geo
    • hos_typ_um
    T_HADaaC
    • rhad_num
    • eta_num_epmsi
    • exe_soi_dtd
    • exe_soi_dtf
    • nir_ano_17
    • eta_num_geo (après 2017)
    • eta_num_two (avant 2017)
    T_HADaaB
    • rhad_num
    • eta_num_epmsi
    • ent_mod ou ent_prv
    • sor_mod ou sor_des

    # Règles de transformation

    Variables Règles Jointure Filtre
    Gauche

    Droite

    visit_occurrence_id* hash (visit_occurrence_source_value)
    person_id* person_id de la table PERSON

    Tables C

    nir_ano_17

    PERSON

    person_source_value

    visit_concept_id*

    T_MCOaaB

    • Si ent_prv = 5 : 262 (emergency room and inpatient visit)

    • Sinon 9201 (inpatient)

    T_MCOaaC

    eta_num, rsa_num

    T_MCOaaB

    eta_num, rsa_num

    T_SSRaaB : Pour hos_typ_num =

    • 1 (hospitalisation complète ou de semaine) : 9201

    • 2 (hospitalisation partielle de jour) : 9202

    • 3 (hospitalisation partielle de nuit) : 9201

    • 4 (séances) : 9202

    T_SSRaaC

    eta_num, rsa_num

    T_SSRaaB

    eta_num, rsa_num

    HAD et RIP (tables C)

    • 9201

    visit_start_date* exe_soi_dtd des tables C
    visit_start_datetime visit_start_date + ‘00:00:0000’
    visit_end_date*

    exe_soi_dtf des tables C

    Pour RIP, la date de fin d’un séjour n’est renseigné que pour la dernière séquence du séjour : il faut récupérer l’exe_soi_dtf correspondant au sej_idt

    visit_end_datetime visit_end_date + ‘00:00:0000’

    visit_type_

    concept_id*

    32810
    provider_id 0
    care_site_id care_site_id de la table CARE_SITE

    T_MCOaaC

    eta_num

    CARE_SITE

    care_site_source_value

    T_SSRaaB

    COALESCE(eta_num_geo, eta_num)

    CARE_SITE

    care_site_source_value

    T_RIPaaC

    eta_num_epmsi

    CARE_SITE

    care_site_source_value

    T_HADaaC:

    eta_num_two avant 2017

    eta_num_geo à partir de 2017

    CARE_SITE

    care_site_source_value

    visit_occurrence_

    source_value

    T_MCOaaC: ‘mcoaa’ || ‘_ ‘ || eta_num || ‘_ ‘ || rsa_num

    T_SSRaaC: ‘ssr’ || ‘_ ‘ || eta_num || ‘_ ‘ || rha_num || ‘_’ || exe_soi_dtd

    T_HADaaC : ‘hadaa’ || ‘_ ‘ || eta_num_epmsi || ‘_ ‘ || rhad_num

    T_RIPaaC : ‘rip’ || ‘_ ‘ || eta_num_epmsi || ‘_ ‘ || ‘sej_idt’ || ‘exe_soi_dtd’ || (de T_RIPaaRSA)

    T_RIPaaC

    finess_nb, visit_nb

    T_RIPaaRSA

    finess_nb, visit_nb

    visit_source_value

    SSR : hos_typ_um de T_SSRaaB

    HAD : “Hospitalisation à domicile”

    T_SSRaaC

    eta_num, rha_num

    T_SSRaaB

    eta_num, rha_num

    admitting_

    source_value

    T_MCOaaB, T_HADaaB , T_SSRaaB et T_RIPaaRSA : ent_prv

    Tables C

    finess_nb, visit_nb

    Tables B (RSA pour RIP)

    finess_nb, visit_nb

    discharge_to_

    source_value

    T_MCOaaB, T_HADaaB et T_SSRaaB et T_RIPaaRSA : sor_des

    Tables C

    finess_nb, visit_nb

    Tables B (RSA pour RIP)

    finess_nb, visit_nb

    admitting_source_

    concept_id

    target_concept_id de SOURCE_TO_CONCEPT_MAP

    Tables C

    finess_nb, visit_nb

    Tables B (RSA pour RIP)

    finess_nb, visit_nb

    Tables B (RSA pour RIP): ent_prv

    SOURCE_TO_

    CONCEPT_MAP

    source_code

    source_vocabulary_id = ‘MS_ENT_V’

    discharge_to_

    concept_id

    target_concept_id de SOURCE_TO_CONCEPT_MAP

    Tables C

    finess_nb, visit_nb

    Tables B (RSA pour RIP)

    finess_nb, visit_nb

    Tables B (RSa pour RIP)

    sor_des

    SOURCE_TO_CONCEPT_MAP

    source_code

    source_vocabulary_id = ‘MS_SOR_V’

    # PMSI Outpatient visit

    # Commentaires généraux

    • Dans cette partie, on traite les actes et consultations externes (ACE).

    • Les tables CSTC désignent les tables T_MCOaaCSTC et T_SSRaaCSTC

    • On sélectionne uniquement les séjours valides, c'est-à-dire pour lesquels la date de début d'exécution des soins (exe_soi_dtd) est renseignée.

    • On supprime les séjours avec codes retours erronés, c'est-à-dire qu'on garde les lignes pour lesquelles les codes retours valent 0 (nir_ret, nai_ret, sex_ret, ias_ret, ent_dat_ret des tables CSTC)

    # Tables et variables utilisées dans le SNDS

    T_MCOaaCSTC

    • eta_num
    • seq_num
    • exe_soi_dtd
    • exe_soi_std

    T_MCOaaFBSTC

    • eta_num
    • seq_num
    • act_cod
    • exe_spe
    • eta_num_geo

    T_SSRaaCSTC

    • eta_num
    • seq_num
    • exe_soi_dtd
    • exe_soi_dtf

    T_SSRaaFBSTC

    • eta_num
    • seq_num
    • exe_spe
    • eta_num_geo à partir de 2017

    # Règles de transformation

    Variables

    Règles

    Jointure

    Gauche

    Droite

    Filtre

    visit_occurrence_id* hash (visit_occurrence_source_value)
    person_id* person_id de la table PERSON

    Tables CSTC

    nir_ano_17

    PERSON

    person_source_value

    visit_concept_id*

    TablesT_MCOaaFBSTC

    • Si pour un couple eta_num, seq_num, il y a une occurrence de act_cod = “ATU” (forfait d'accueil et de traitement des urgences) : 9203 (emergency room visit)

    • Sinon : 9202 (outpatient)

    Tables CSTC

    eta_num, seq_num

    Tables FBSTC

    eta_num, seq_num

    Pour T_MCOaaFBSTC:

    substr(reverse(act_cod),1,2) NOT IN (‘F ‘, ‘N ‘)

    On retire les lignes de majoration pour consultation un jour férié ou de nuit (duplication de la donnée)

    SSR : 9202 (outpatient)
    visit_start_date* exe_soi_dtd des tables CSTC
    visit_start_datetime visit_start_date + ‘00:00:0000’
    visit_end_date* COALESCE(exe_soi_dtf, exe_soi_dtd) des tables CSTC
    visit_end_datetime visit_end_date + ‘00:00:0000’
    visit_type_concept_id* 32810
    provider_id provider_id de PROVIDER

    T_MCOaaFBSTC et T_SSRaaFBSTC

    exe_spe

    PROVIDER

    provider_source_value

    Tables CSTC

    eta_num, seq_num

    Tables FBSTC

    eta_num, seq_num

    SSR :Jointure 2:

    T_SSRaaFBSTC

    exe_spe

    SSR : Jointure 2:

    PROVIDER

    provider_source_value

    care_site_id care_site_id de la table CARE_SITE

    T_MCOaaFBSTC

    eta_num_geo à partir de 2016

    eta_num avant

    CARE_SITE

    care_site_source_value

    T_SSRaaFBSTC

    eta_num_geo à partir de 2017

    eta_num avant

    CARE_SITE

    care_site_source_value

    visit_occurrence_source_value
    • T_MCOaaCSTC: ‘mcoaaace’ || ‘_ ‘ || eta_num || ‘_ ‘ || seq_num

    T_SSRaaCSTC: ‘ssrace’ || ‘_ ‘ || eta_num || ‘_ ‘ || seq_num

    # DCIR _ER_ETE_F

    # Commentaires généraux

    • Dans cette partie, on traite les visites en établissement de santé (_ER_ETE_F).

    • Comme pour les tables LOCATION et CARE_SITE, on garde les établissements de _ER_ETE_F pour lesquels( etb_cat_rg1 > 1203 ET ete_cat_cod ≠ 114 ) OU ( ete_cat_cod ∊ [362 ; 422 ] ) (cf partie LOCATION)

    # Règles de transformation

    Variable Règles Jointure Filtre
    Gauche Droite
    visit_occurrence_id* hash (visit_occurrence_source_value)
    person_id* person_id de la table PERSON

    _ER_ETE_F

    ben_nir_psa

    PERSON

    person_source_value

    visit_concept_id*
    • Si prs_nat_ref de _ER_ETE_F existe dans correspondance_prs_nat_ref_omop, mapped_omop

    • Sinon 9202

    _ER_ETE_F

    prs_nat_ref

    correspondance_prs_

    nat_ref_omop

    prs_nat_ref

    visit_start_date* exe_soi_dtd de _ER_ETE_F
    visit_start_datetime visit_start_date + ‘00:00:0000’
    visit_end_date* exe_soi_dtf de _ER_ETE_F si rempli, sinon exe_soi_dtd
    visit_end_datetime visit_end_date + ‘00:00:0000’
    visit_type_concept_id* 32810
    provider_id provider_id de PROVIDER

    _ER_ETE_F

    pse_spe_cod

    PROVIDER

    provider_source_value

    pse_spe_cod NOT IN (0,99)

    _ER_ETE_F

    pse_act_nat

    PROVIDER

    provider_source_value

    pse_act_nat NOT IN (0,99)
    0 pse_act_nat AND pse_spe_cod IN (0,99)
    care_site_id care_site_id de CARE_SITE

    _ER_ETE_F

    etb_exe_fin

    CARE_SITE

    care_site_source_value

    etb_pre_fin != null
    visit_occurrence_source_value dcir_visit_id

    # DCIR _ER_PRS_F\ER_ETE_F

    # Commentaires généraux

    Dans cette partie, sont concernées les visites de _ER_PRS_F qui ne sont pas dans _ER_ETE_F (elles ont déjà été prises en compte dans la partie précédente)

    # Règles de transformation

    Champ Règles Jointure Filtre
    Gauche Droite
    visit_occurrence_id* hash (visit_occurrence_source_value)
    person_id* person_id de la table PERSON

    _ER_PRS_F

    ben_nir_psa

    PERSON

    person_source_value

    visit_concept_id*
    • Si prs_nat_ref de _ER_PRS_F existe dans correspondance_prs_nat_ref_omop, mapped_omop

    • Si prs_nat_ref ∊ (1191, 1192, 1193, 3103, 3104, 3105, 1096) : 5083 (Telehealth visit)

    • Sinon 9202

    _ER_PRS_F

    prs_nat_ref

    correspondance_prs_nat_ref_omop

    prs_nat_ref

    visit_start_date* exe_soi_dtd de _ER_PRS_F
    visit_start_datetime visit_start_date + ‘00:00:0000’
    visit_end_date*
    • exe_soi_dtf de _ER_PRS_F si rempli,

    • sinon exe_soi_dtd

    visit_end_datetime visit_end_date + ‘00:00:0000’
    visit_type_concept_id* 32810
    provider_id provider_id de PROVIDER

    _ER_PRS_F

    pse_spe_cod

    PROVIDER

    provider_source_value

    pse_spe_cod NOT IN (0,99)

    _ER_PRS_F

    pse_act_nat

    PROVIDER

    provider_source_value

    pse_act_nat NOT IN (0,99)
    0 pse_act_nat AND pse_spe_cod IN (0,99)
    care_site_id care_site_id de CARE_SITE

    _ER_PRS_F

    etb_pre_fin

    CARE_SITE

    care_site_source_value

    visit_occurrence_source_value dcir_visit_id