OMOP_5.4_ER_ALL

OMOP_5.4_ER : Model

Entity - visit_occurrence link

Properties
Name Value
Description

 

VISIT_OCCURRENCE

Table Description

This table contains Events where Persons engage with the healthcare system for a duration of time. They are often also called “Encounters”. Visits are defined by a configuration of circumstances under which they occur, such as (i) whether the patient comes to a healthcare institution, the other way around, or the interaction is remote, (ii) whether and what kind of trained medical staff is delivering the service during the Visit, and (iii) whether the Visit is transient or for a longer period involving a stay in bed.

User Guide

The configuration defining the Visit are described by Concepts in the Visit Domain, which form a hierarchical structure, but rolling up to generally familiar Visits adopted in most healthcare systems worldwide:

  • Inpatient Visit: Person visiting hospital, at a Care Site, in bed, for duration of more than one day, with physicians and other Providers permanently available to deliver service around the clock
  • Emergency Room Visit: Person visiting dedicated healthcare institution for treating emergencies, at a Care Site, within one day, with physicians and Providers permanently available to deliver service around the clock
  • Emergency Room and Inpatient Visit: Person visiting ER followed by a subsequent Inpatient Visit, where Emergency department is part of hospital, and transition from the ER to other hospital departments is undefined
  • Non-hospital institution Visit: Person visiting dedicated institution for reasons of poor health, at a Care Site, long-term or permanently, with no physician but possibly other Providers permanently available to deliver service around the clock
  • Outpatient Visit: Person visiting dedicated ambulatory healthcare institution, at a Care Site, within one day, without bed, with physicians or medical Providers delivering service during Visit
  • Home Visit: Provider visiting Person, without a Care Site, within one day, delivering service
  • Telehealth Visit: Patient engages with Provider through communication media
  • Pharmacy Visit: Person visiting pharmacy for dispensing of Drug, at a Care Site, within one day
  • Laboratory Visit: Patient visiting dedicated institution, at a Care Site, within one day, for the purpose of a Measurement.
  • Ambulance Visit: Person using transportation service for the purpose of initiating one of the other Visits, without a Care Site, within one day, potentially with Providers accompanying the Visit and delivering service
  • Case Management Visit: Person interacting with healthcare system, without a Care Site, within a day, with no Providers involved, for administrative purposes

The Visit duration, or ‘length of stay’, is defined as VISIT_END_DATE - VISIT_START_DATE. For all Visits this is <1 day, except Inpatient Visits and Non-hospital institution Visits. The CDM also contains the VISIT_DETAIL table where additional information about the Visit is stored, for example, transfers between units during an inpatient Visit.

ETL Conventions

Visits can be derived easily if the source data contain coding systems for Place of Service or Procedures, like CPT codes for well visits. In those cases, the codes can be looked up and mapped to a Standard Visit Concept. Otherwise, Visit Concepts have to be identified in the ETL process. This table will contain concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. Visits can be adjacent to each other, i.e. the end date of one can be identical with the start date of the other. As a consequence, more than one-day Visits or their descendants can be recorded for the same day. Multi-day visits must not overlap, i.e. share days other than start and end days. It is often the case that some logic should be written for how to define visits and how to assign Visit_Concept_Id. For example, in US claims outpatient visits that appear to occur within the time period of an inpatient visit can be rolled into one with the same Visit_Occurrence_Id. In EHR data inpatient visits that are within one day of each other may be strung together to create one visit. It will all depend on the source data and how encounter records should be translated to visit occurrences. Providers can be associated with a Visit through the PROVIDER_ID field, or indirectly through PROCEDURE_OCCURRENCE records linked both to the VISIT and PROVIDER tables.

CDM Field User Guide ETL Conventions Datatype Required Primary Key Foreign Key FK Table FK Domain
visit_occurrence_id Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit. This should be populated by creating a unique identifier for each unique interaction between a person and the healthcare system where the person receives a medical good or service over a span of time. integer Yes Yes No
person_id integer Yes No Yes PERSON
visit_concept_id This field contains a concept id representing the kind of visit, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain. Populate this field based on the kind of visit that took place for the person. For example this could be “Inpatient Visit”, “Outpatient Visit”, “Ambulatory Visit”, etc. This table will contain standard concepts in the Visit domain. These concepts are arranged in a hierarchical structure to facilitate cohort definitions by rolling up to generally familiar Visits adopted in most healthcare systems worldwide. Accepted Concepts. integer Yes No Yes CONCEPT Visit
visit_start_date For inpatient visits, the start date is typically the admission date. For outpatient visits the start date and end date will be the same. When populating VISIT_START_DATE, you should think about the patient experience to make decisions on how to define visits. In the case of an inpatient visit this should be the date the patient was admitted to the hospital or institution. In all other cases this should be the date of the patient-provider interaction. date Yes No No
visit_start_datetime If no time is given for the start date of a visit, set it to midnight (00:00:0000). datetime No No No
visit_end_date For inpatient visits the end date is typically the discharge date. If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_date, then set the visit_end_date to the date of the data pull. Visit end dates are mandatory. If end dates are not provided in the source there are three ways in which to derive them: - Outpatient Visit: visit_end_datetime = visit_start_datetime - Emergency Room Visit: visit_end_datetime = visit_start_datetime - Inpatient Visit: Usually there is information about discharge. If not, you should be able to derive the end date from the sudden decline of activity or from the absence of inpatient procedures/drugs. - Non-hospital institution Visits: Particularly for claims data, if end dates are not provided assume the visit is for the duration of month that it occurs. For Inpatient Visits ongoing at the date of ETL, put date of processing the data into visit_end_datetime and visit_type_concept_id with 32220 “Still patient” to identify the visit as incomplete. - All other Visits: visit_end_datetime = visit_start_datetime. If this is a one-day visit the end date should match the start date. date Yes No No
visit_end_datetime If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_datetime, then set the visit_end_datetime to the datetime of the data pull. If no time is given for the end date of a visit, set it to midnight (00:00:0000). datetime No No No
visit_type_concept_id Use this field to understand the provenance of the visit record, or where the record comes from. Populate this field based on the provenance of the visit record, as in whether it came from an EHR record or billing claim. Accepted Concepts. A more detailed explanation of each Type Concept can be found on the vocabulary wiki. Integer Yes No Yes CONCEPT Type Concept
provider_id There will only be one provider per visit record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). If there are multiple providers associated with a visit in the source, this can be reflected in the event tables (CONDITION_OCCURRENCE, PROCEDURE_OCCURRENCE, etc.) or in the VISIT_DETAIL table. If there are multiple providers associated with a visit, you will need to choose which one to put here. The additional providers can be stored in the VISIT_DETAIL table. integer No No Yes PROVIDER
care_site_id This field provides information about the Care Site where the Visit took place. There should only be one Care Site associated with a Visit. integer No No Yes CARE_SITE
visit_source_value This field houses the verbatim value from the source data representing the kind of visit that took place (inpatient, outpatient, emergency, etc.) If there is information about the kind of visit in the source data that value should be stored here. If a visit is an amalgamation of visits from the source then use a hierarchy to choose the visit source value, such as IP -> ER-> OP. This should line up with the logic chosen to determine how visits are created. varchar(50) No No No
visit_source_concept_id If the visit source value is coded in the source data using an OMOP supported vocabulary put the concept id representing the source value here. integer No No Yes CONCEPT
admitted_from_concept_id Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example. If available, map the admitted_from_source_value to a standard concept in the visit domain. Accepted Concepts. If a person was admitted from home, set this to 0. integer No No Yes CONCEPT Visit
admitted_from_source_value This information may be called something different in the source data but the field is meant to contain a value indicating where a person was admitted from. Typically this applies only to visits that have a length of stay, like inpatient visits or long-term care visits. varchar(50) No No No
discharged_to_concept_id Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was transferred to another hospital or sent to a long-term care facility, for example. It is assumed that a person is discharged to home therefore there is not a standard concept id for “home”. Use concept id = 0 when a person is discharged to home. If available, map the discharged_to_source_value to a standard concept in the visit domain. Accepted Concepts. integer No No Yes CONCEPT Visit
discharged_to_source_value This information may be called something different in the source data but the field is meant to contain a value indicating where a person was discharged to after a visit, as in they went home or were moved to long-term care. Typically this applies only to visits that have a length of stay of a day or more. varchar(50) No No No
preceding_visit_occurrence_id Use this field to find the visit that occurred for the person prior to the given visit. There could be a few days or a few years in between. This field can be used to link a visit immediately preceding the current visit. Note this is not symmetrical, and there is no such thing as a “following_visit_id”. integer No No Yes VISIT_OCCURRENCE

 

Data Model Physical
Discriminator
 visit_occurrence_id : Column
Primary Key Constraint Name xpk_visit_occurrence
Primary Key Clustered Unspecified
Unlogged false

Columns Summary
Column Name Data Type PK / FK Nullable Description
visit_occurrence_id int4 PK No
care_site_id int4 PK / FK No
person_id int4 PK / FK No
visit_concept_id int4 PK / FK No
visit_type_concept_id int4 PK / FK No
provider_id int4 PK / FK No
visit_source_concept_id int4 PK / FK No
admitted_from_concept_id int4 PK / FK No
discharged_to_concept_id int4 PK / FK No
preceding_visit_occurrence_id int4 FK Yes
visit_start_date date No
visit_start_datetime timestamp(0) Yes
visit_end_date date No
visit_end_datetime timestamp(0) Yes
visit_source_value varchar(50) Yes
admitted_from_source_value varchar(50) Yes
discharged_to_source_value varchar(50) Yes

Relationships Summary
Name Begin End
 fpk_condition_occurrence_visit_occurrence_id : Relationship
 visit_occurrence : Entity
 condition_occurrence : Entity
 fpk_device_exposure_visit_occurrence_id : Relationship
 visit_occurrence : Entity
 device_exposure : Entity
 fpk_drug_exposure_visit_occurrence_id : Relationship
 visit_occurrence : Entity
 drug_exposure : Entity
 fpk_measurement_visit_occurrence_id : Relationship
 visit_occurrence : Entity
 measurement : Entity
 fpk_note_visit_occurrence_id : Relationship
 visit_occurrence : Entity
 note : Entity
 fpk_observation_visit_occurrence_id : Relationship
 visit_occurrence : Entity
 observation : Entity
 fpk_procedure_occurrence_visit_occurrence_id : Relationship
 visit_occurrence : Entity
 procedure_occurrence : Entity
 fpk_visit_detail_visit_occurrence_id : Relationship
 visit_occurrence : Entity
 visit_detail : Entity
 fpk_visit_occurrence_preceding_visit_occurrence_id : Relationship
 visit_occurrence : Entity
 visit_occurrence : Entity
 fpk_visit_occurrence_person_id : Relationship
 person : Entity
 visit_occurrence : Entity
 fpk_visit_occurrence_visit_concept_id : Relationship
 concept : Entity
 visit_occurrence : Entity
 fpk_visit_occurrence_visit_type_concept_id : Relationship
 concept : Entity
 visit_occurrence : Entity
 fpk_visit_occurrence_provider_id : Relationship
 provider : Entity
 visit_occurrence : Entity
 fpk_visit_occurrence_care_site_id : Relationship
 care_site : Entity
 visit_occurrence : Entity
 fpk_visit_occurrence_visit_source_concept_id : Relationship
 concept : Entity
 visit_occurrence : Entity
 fpk_visit_occurrence_admitted_from_concept_id : Relationship
 concept : Entity
 visit_occurrence : Entity
 fpk_visit_occurrence_discharged_to_concept_id : Relationship
 concept : Entity
 visit_occurrence : Entity
 fpk_visit_occurrence_preceding_visit_occurrence_id : Relationship
 visit_occurrence : Entity
 visit_occurrence : Entity

Columns Detail
Name Value
Name visit_occurrence_id
Type int4
Nullable false
Unique false
Primary Key true
Index false
Length 0
Scale 0
Id Generator native
Foreign Key false
Generated Unspecified
Sync To Attribute Yes

Name Value
Name care_site_id
Type int4
Nullable false
Unique false
Primary Key true
Index false
Length 0
Scale 0
Id Generator native
Foreign Key true
Generated Unspecified
Sync To Attribute Yes

Name Value
Name person_id
Type int4
Nullable false
Unique false
Primary Key true
Index false
Length 0
Scale 0
Id Generator native
Foreign Key true
Generated Unspecified
Sync To Attribute Yes

Name Value
Name visit_concept_id
Type int4
Nullable false
Unique false
Primary Key true
Index false
Length 0
Scale 0
Id Generator native
Foreign Key true
Generated Unspecified
Sync To Attribute Yes

Name Value
Name visit_type_concept_id
Type int4
Nullable false
Unique false
Primary Key true
Index false
Length 0
Scale 0
Id Generator native
Foreign Key true
Generated Unspecified
Sync To Attribute Yes

Name Value
Name provider_id
Type int4
Nullable false
Unique false
Primary Key true
Index false
Length 0
Scale 0
Id Generator native
Foreign Key true
Generated Unspecified
Sync To Attribute Yes

Name Value
Name visit_source_concept_id
Type int4
Nullable false
Unique false
Primary Key true
Index false
Length 0
Scale 0
Id Generator native
Foreign Key true
Generated Unspecified
Sync To Attribute Yes

Name Value
Name admitted_from_concept_id
Type int4
Nullable false
Unique false
Primary Key true
Index false
Length 0
Scale 0
Id Generator native
Foreign Key true
Generated Unspecified
Sync To Attribute Yes

Name Value
Name discharged_to_concept_id
Type int4
Nullable false
Unique false
Primary Key true
Index false
Length 0
Scale 0
Id Generator native
Foreign Key true
Generated Unspecified
Sync To Attribute Yes

Name Value
Name preceding_visit_occurrence_id
Type int4
Nullable true
Unique false
Primary Key false
Index false
Length 0
Scale 0
Id Generator native
Foreign Key true
Generated Unspecified
Sync To Attribute Yes

Name Value
Name visit_start_date
Type date
Nullable false
Unique false
Primary Key false
Index false
Type Name date
Length 0
Scale 0
Id Generator native
Foreign Key false
Generated Unspecified
Sync To Attribute Yes

Name Value
Name visit_start_datetime
Type timestamp
Nullable true
Unique false
Primary Key false
Index false
Type Name timestamp
Length 0
Scale 0
Id Generator native
Foreign Key false
Generated Unspecified
Sync To Attribute Yes

Name Value
Name visit_end_date
Type date
Nullable false
Unique false
Primary Key false
Index false
Type Name date
Length 0
Scale 0
Id Generator native
Foreign Key false
Generated Unspecified
Sync To Attribute Yes

Name Value
Name visit_end_datetime
Type timestamp
Nullable true
Unique false
Primary Key false
Index false
Type Name timestamp
Length 0
Scale 0
Id Generator native
Foreign Key false
Generated Unspecified
Sync To Attribute Yes

Name Value
Name visit_source_value
Type varchar
Nullable true
Unique false
Primary Key false
Index false
Type Name varchar
Length 50
Scale 0
Id Generator native
Foreign Key false
Generated Unspecified
Sync To Attribute Yes

Name Value
Name admitted_from_source_value
Type varchar
Nullable true
Unique false
Primary Key false
Index false
Type Name varchar
Length 50
Scale 0
Id Generator native
Foreign Key false
Generated Unspecified
Sync To Attribute Yes

Name Value
Name discharged_to_source_value
Type varchar
Nullable true
Unique false
Primary Key false
Index false
Type Name varchar
Length 50
Scale 0
Id Generator native
Foreign Key false
Generated Unspecified
Sync To Attribute Yes

Relationships Detail
Name Value
Name fpk_condition_occurrence_visit_occurrence_id
Foreign Key
condition_occurrence
 visit_occurrence_id : Column
Primary Key
visit_occurrence
 visit_occurrence_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_device_exposure_visit_occurrence_id
Foreign Key
device_exposure
 visit_occurrence_id : Column
Primary Key
visit_occurrence
 visit_occurrence_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_drug_exposure_visit_occurrence_id
Foreign Key
drug_exposure
 visit_occurrence_id : Column
Primary Key
visit_occurrence
 visit_occurrence_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_measurement_visit_occurrence_id
Foreign Key
measurement
 visit_occurrence_id : Column
Primary Key
visit_occurrence
 visit_occurrence_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_note_visit_occurrence_id
Foreign Key
note
 visit_occurrence_id : Column
Primary Key
visit_occurrence
 visit_occurrence_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_observation_visit_occurrence_id
Foreign Key
observation
 visit_occurrence_id : Column
Primary Key
visit_occurrence
 visit_occurrence_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_procedure_occurrence_visit_occurrence_id
Foreign Key
procedure_occurrence
 visit_occurrence_id : Column
Primary Key
visit_occurrence
 visit_occurrence_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_visit_detail_visit_occurrence_id
Foreign Key
visit_detail
 visit_occurrence_id : Column
Primary Key
visit_occurrence
 visit_occurrence_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_visit_occurrence_preceding_visit_occurrence_id
Foreign Key
visit_occurrence
 preceding_visit_occurrence_id : Column
Primary Key
visit_occurrence
 visit_occurrence_id : Column
To Multiplicity 0..*
From Multiplicity 0..1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_visit_occurrence_person_id
Foreign Key
visit_occurrence
 person_id : Column
Primary Key
person
 person_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_visit_occurrence_visit_concept_id
Foreign Key
visit_occurrence
 visit_concept_id : Column
Primary Key
concept
 concept_id : Column
To Multiplicity 0..*
From Multiplicity 0..1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_visit_occurrence_visit_type_concept_id
Foreign Key
visit_occurrence
 visit_type_concept_id : Column
Primary Key
concept
 concept_id : Column
To Multiplicity 0..*
From Multiplicity 0..1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_visit_occurrence_provider_id
Foreign Key
visit_occurrence
 provider_id : Column
Primary Key
provider
 provider_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_visit_occurrence_care_site_id
Foreign Key
visit_occurrence
 care_site_id : Column
Primary Key
care_site
 care_site_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_visit_occurrence_visit_source_concept_id
Foreign Key
visit_occurrence
 visit_source_concept_id : Column
Primary Key
concept
 concept_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_visit_occurrence_admitted_from_concept_id
Foreign Key
visit_occurrence
 admitted_from_concept_id : Column
Primary Key
concept
 concept_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_visit_occurrence_discharged_to_concept_id
Foreign Key
visit_occurrence
 discharged_to_concept_id : Column
Primary Key
concept
 concept_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_visit_occurrence_preceding_visit_occurrence_id
Foreign Key
visit_occurrence
 preceding_visit_occurrence_id : Column
Primary Key
visit_occurrence
 visit_occurrence_id : Column
To Multiplicity 0..*
From Multiplicity 0..1
Sync To Association Yes
Data Model Physical

Appears In
Diagram
 Standardized_Tables : Entity Relationship Diagram
 Vocabulary_With_Standard : Entity Relationship Diagram
OMOP_5.4_ER_ALL