Proposal for Visit_detail: Represent granular encounters or microvisits
Proposal
- Current VISIT_OCCURRENCE table does not meet use-cases that need the granular information, such as movement of person while in a hospital.
- The intent of this proposal is to capture detail information about a record in visit_occurrence. Examples of detail information may be encounters, micro-visits etc., and will be collected as is from the source data.
- We propose a new VISIT_DETAIL table with a structure that is similar to current VISIT_OCCURRENCE table. For every record in visit_occurrence there maybe 0 or more records in visit_detail.
- Records in visit_detail will be related to each other sequentially or hierarchically, AND will be related to visit_occurrence table (using chaining/sequential method or parent-child/part-of).
- All information will belong to the domain visit.
- Example: an entire inpatient stay maybe one record in visit_occurrence table. This may have one or more detail information such as ER, ICU, medical floor, rehabilitation floor etc. Each of these visit_details may have different start/end date-times, different concept_id's and fact_id's - that would be separate record in visit_detail with a FK link to visit_occurrence. Each record within visit_detail maybe related to each other, sequentially –> ER leading to ICU leading to medical floor, leading to rehabilitation, or in hierarchical parent-child visit –> a visit for dialysis while in ICU.
New VISIT_DETAIL table
This table will have the same structure as current VISIT_OCCURRENCE table, except for two changes:
- Two new foreign keys pointing to itself (visit_detail_parent_id) and to visit_occurrence table (visit_occurrence_id)
- Removal of _date fields.
| Field |
Required |
Type |
Description |
| visit_detail_id |
Yes |
integer |
A unique identifier for each Person's visit-detail at a healthcare provider. |
| person_id |
Yes |
integer |
A foreign key identifier to the Person for whom the visit is recorded. The demographic details of that Person are stored in the PERSON table. |
| visit_detail_concept_id |
Yes |
integer |
A foreign key that refers to a visit Concept identifier in the Standardized Vocabularies. |
| visit_start_date |
Yes |
date |
The start date of the visit. |
| visit_start_datetime |
Yes |
datetime |
The date and time of the visit-detail started. |
| visit_end_date |
Yes |
date |
The end date of the visit. |
| visit_end_datetime |
No |
datetime |
The date and time of the visit end. |
| visit_type_concept_id |
Yes |
integer |
A foreign key to the predefined Concept identifier in the Standardized Vocabularies reflecting the type of source data from which the visit record is derived. |
| provider_id |
No |
integer |
A foreign key to the provider in the provider table who was associated with the visit. |
| care_site_id |
No |
integer |
A foreign key to the care site in the care site table where visit occurred |
| admitting_source_concept_id |
No |
integer |
A foreign key to the predefined concept in the Place of Service Vocabulary reflecting the admitting source for a visit. |
| discharge_to_concept_id |
No |
integer |
A foreign key to the predefined concept in the Place of Service Vocabulary reflecting the discharge disposition (destination) for a visit. |
| preceding_visit_detail_id |
No |
integer |
A foreign key to the visit_occurrence table record of the visit immediately preceding this visit. |
| visit_source_value |
No |
string |
The source code for the visit as it appears in the source data. |
| visit_source_concept_id |
No |
Integer |
A foreign key to a Concept that refers to the code used in the source. |
| admitting_source_value |
No |
string |
The source code for the admitting source as it appears in the source data. |
| discharge_to_source_value |
No |
string |
The source code for the discharge disposition as it appears in the source data. |
| visit_detail_parent_id |
No |
integer |
A foreign key to the visit_detail table record to represent the immediate parent visit-detail record. |
| visit_occurrence_id |
Yes |
integer |
A foreign key that refers to the record in the visit_occurrence table |
Relationship between VISIT_DETAIL and clinical events tables
We will add a new optional foreign key pointing from a clinical-event table to visit_detail table.
PROCEDURE_OCCURRENCE
| Field |
Required |
Type |
Description |
| procedure_occurrence_id |
Yes |
integer |
A system-generated unique identifier for each Procedure Occurrence. |
| person_id |
Yes |
integer |
A foreign key identifier to the Person who is subjected to the Procedure. The demographic details of that Person are stored in the PERSON table. |
| procedure_concept_id |
Yes |
integer |
A foreign key that refers to a standard procedure Concept identifier in the Standardized Vocabularies. |
| procedure_date |
Yes |
date |
The date on which the Procedure was performed. |
| procedure_datetime |
No |
datetime |
The date and time on which the Procedure was performed. |
| procedure_type_concept_id |
Yes |
integer |
A foreign key to the predefined Concept identifier in the Standardized Vocabularies reflecting the type of source data from which the procedure record is derived. |
| modifier_concept_id |
No |
integer |
A foreign key to a Standard Concept identifier for a modifier to the Procedure (e.g. bilateral) |
| quantity |
No |
integer |
The quantity of procedures ordered or administered. |
| provider_id |
No |
integer |
A foreign key to the provider in the provider table who was responsible for carrying out the procedure. |
| visit_occurrence_id |
No |
integer |
A foreign key to the visit in the visit table during which the Procedure was carried out. |
| visit_detail_id |
No |
integer |
A foreign key to the visit in the visit-detail table during which the Procedure was carried out. |
| procedure_source_value |
No |
varchar(50) |
The source code for the Procedure as it appears in the source data. This code is mapped to a standard procedure Concept in the Standardized Vocabularies and the original code is, stored here for reference. Procedure source codes are typically ICD-9-Proc, CPT-4, HCPCS or OPCS-4 codes. |
| procedure_source_concept_id |
No |
integer |
A foreign key to a Procedure Concept that refers to the code used in the source. |
| qualifier_source_value |
No |
varchar(50) |
The source code for the qualifier as it appears in the source data. |
DRUG_EXPOSURE
| Field |
Required |
Type |
Description |
| drug_exposure_id |
Yes |
integer |
A system-generated unique identifier for each Drug utilization event. |
| person_id |
Yes |
integer |
A foreign key identifier to the person who is subjected to the Drug. The demographic details of that person are stored in the person table. |
| drug_concept_id |
Yes |
integer |
A foreign key that refers to a Standard Concept identifier in the Standardized Vocabularies for the Drug concept. |
| drug_exposure_start_date |
Yes |
date |
The start date for the current instance of Drug utilization. Valid entries include a start date of a prescription, the date a prescription was filled, or the date on which a Drug administration procedure was recorded. |
| drug_exposure_start_datetime |
No |
datetime |
The start date and time for the current instance of Drug utilization. Valid entries include a start date of a prescription, the date a prescription was filled, or the date on which a Drug administration procedure was recorded. |
| drug_exposure_end_date |
No |
date |
The end date for the current instance of Drug utilization. It is not available from all sources. |
| drug_exposure_end_datetime |
No |
datetime |
The end date and time for the current instance of Drug utilization. It is not available from all sources. |
| drug_type_concept_id |
Yes |
integer |
A foreign key to the predefined Concept identifier in the Standardized Vocabularies reflecting the type of Drug Exposure recorded. It indicates how the Drug Exposure was represented in the source data. |
| stop_reason |
No |
varchar(20) |
The reason the Drug was stopped. Reasons include regimen completed, changed, removed, etc. |
| refills |
No |
integer |
The number of refills after the initial prescription. The initial prescription is not counted, values start with 0. |
| quantity |
No |
float |
The quantity of drug as recorded in the original prescription or dispensing record. |
| days_supply |
No |
integer |
The number of days of supply of the medication as recorded in the original prescription or dispensing record. |
| sig |
No |
clob |
The directions ("signetur") on the Drug prescription as recorded in the original prescription (and printed on the container) or dispensing record. |
| route_concept_id |
No |
integer |
A foreign key to a predefined concept in the Standardized Vocabularies reflecting the route of administration. |
| effective_drug_dose |
No |
float |
Numerical value of Drug dose for this Drug Exposure record. |
| dose_unit_concept_ id |
No |
integer |
A foreign key to a predefined concept in the Standardized Vocabularies reflecting the unit the effective_drug_dose value is expressed. |
| lot_number |
No |
varchar(50) |
An identifier assigned to a particular quantity or lot of Drug product from the manufacturer. |
| provider_id |
No |
integer |
A foreign key to the provider in the provider table who initiated (prescribed or administered) the Drug Exposure. |
| visit_occurrence_id |
No |
integer |
A foreign key to the visit in the visit table during which the Drug Exposure was initiated. |
| visit_detail_id |
No |
integer |
A foreign key to the visit in the visit-detail table during which the Drug Exposure was initiated. |
| drug_source_value |
No |
varchar(50) |
The source code for the Drug as it appears in the source data. This code is mapped to a Standard Drug concept in the Standardized Vocabularies and the original code is, stored here for reference. |
| drug_source_concept_id |
No |
integer |
A foreign key to a Drug Concept that refers to the code used in the source. |
| route_source_value |
No |
varchar(50) |
The information about the route of administration as detailed in the source. |
| dose_unit_source_value |
No |
varchar(50) |
The information about the dose unit as detailed in the source. |
DEVICE_EXPOSURE
| Field |
Required |
Type |
Description |
| device_exposure_id |
Yes |
integer |
A system-generated unique identifier for each Device Exposure. |
| person_id |
Yes |
integer |
A foreign key identifier to the Person who is subjected to the Device. The demographic details of that person are stored in the Person table. |
| device_concept_id |
Yes |
integer |
A foreign key that refers to a Standard Concept identifier in the Standardized Vocabularies for the Device concept. |
| device_exposure_start_date |
Yes |
date |
The date the Device or supply was applied or used. |
| device_exposure_start_datetime |
No |
datetime |
The date and time the Device or supply was applied or used. |
| device_exposure_end_date |
No |
date |
The date the Device or supply was removed from use. |
| device_exposure_end_datetime |
No |
datetime |
The date and time the Device or supply was removed from use. |
| device_type_concept_id |
Yes |
integer |
A foreign key to the predefined Concept identifier in the Standardized Vocabularies reflecting the type of Device Exposure recorded. It indicates how the Device Exposure was represented in the source data. |
| unique_device_id |
No |
varchar(50) |
A UDI or equivalent identifying the instance of the Device used in the Person. |
| quantity |
No |
integer |
The number of individual Devices used for the exposure. |
| provider_id |
No |
integer |
A foreign key to the provider in the PROVIDER table who initiated of administered the Device. |
| visit_occurrence_id |
No |
integer |
A foreign key to the visit in the VISIT table during which the device was used. |
| visit_detail_id |
No |
integer |
A foreign key to the visit in the VISIT_DETAIL table during which the device was used. |
| device_source_value |
No |
varchar(50) |
The source code for the Device as it appears in the source data. This code is mapped to a standard Device Concept in the Standardized Vocabularies and the original code is stored here for reference. |
| device_source_ concept_id |
No |
integer |
A foreign key to a Device Concept that refers to the code used in the source. |
CONDITION_OCCURRENCE
| Field |
Required |
Type |
Description |
| condition_occurrence_id |
Yes |
integer |
A unique identifier for each Condition Occurrence event. |
| person_id |
Yes |
integer |
A foreign key identifier to the Person who is experiencing the condition. The demographic details of that Person are stored in the PERSON table. |
| condition_concept_id |
Yes |
integer |
A foreign key that refers to a Standard Condition Concept identifier in the Standardized Vocabularies. |
| condition_start_date |
Yes |
date |
The date when the instance of the Condition is recorded. |
| condition_start_datetime |
No |
datetime |
The date and time when the instance of the Condition is recorded. |
| condition_end_date |
No |
date |
The date when the instance of the Condition is considered to have ended. |
| condition_end_datetime |
No |
date |
The date when the instance of the Condition is considered to have ended. |
| condition_type_concept_id |
Yes |
integer |
A foreign key to the predefined Concept identifier in the Standardized Vocabularies reflecting the source data from which the condition was recorded, the level of standardization, and the type of occurrence. |
| stop_reason |
No |
varchar(20) |
The reason that the condition was no longer present, as indicated in the source data. |
| provider_id |
No |
integer |
A foreign key to the Provider in the PROVIDER table who was responsible for capturing (diagnosing) the Condition. |
| visit_occurrence_id |
No |
integer |
A foreign key to the visit in the VISIT table during which the Condition was determined (diagnosed). |
| visit_detail_id |
No |
integer |
A foreign key to the visit in the VISIT_DETAIL table during which the Condition was determined (diagnosed). |
| condition_status_concept_id |
No |
integer |
A foreign key to the predefined concept in the standard vocabulary reflecting the condition status. |
| condition_source_concept_id |
No |
integer |
A foreign key to a Condition Concept that refers to the code used in the source. |
| condition_source_value |
No |
varchar(50) |
The source code for the condition as it appears in the source data. This code is mapped to a standard condition concept in the Standardized Vocabularies and the original code is stored here for reference. |
| condition_status_source_value |
No |
varchar(50) |
|
MEASUREMENT
| Field |
Required |
Type |
Description |
| measurement_id |
Yes |
integer |
A unique identifier for each Measurement. |
| person_id |
Yes |
integer |
A foreign key identifier to the Person about whom the measurement was recorded. The demographic details of that Person are stored in the PERSON table. |
| measurement_concept_id |
Yes |
integer |
A foreign key to the standard measurement concept identifier in the Standardized Vocabularies. |
| measurement_date |
Yes |
date |
The date of the Measurement. |
| measurement_datetime |
No |
datetime |
The date and time of the Measurement. (Some database systems don't have a datatype of time. To accomodate all temporal analyses, datatype datetime can be used (combining measurement_date and measurement_time)[[http://forums.ohdsi.org/t/date-time-and-datetime-problem-and-the-world-of-hours-and-1day/314 |
| measurement_type_concept_id |
Yes |
integer |
A foreign key to the predefined Concept in the Standardized Vocabularies reflecting the provenance from where the Measurement record was recorded. |
| operator_concept_id |
No |
integer |
A foreign key identifier to the predefined Concept in the Standardized Vocabularies reflecting the mathematical operator that is applied to the value_as_number. Operators are <, ≤, =, ≥, >. |
| value_as_number |
No |
float |
A Measurement result where the result is expressed as a numeric value. |
| value_as_concept_id |
No |
integer |
A foreign key to a Measurement result represented as a Concept from the Standardized Vocabularies (e.g., positive/negative, present/absent, low/high, etc.). |
| unit_concept_id |
No |
integer |
A foreign key to a Standard Concept ID of Measurement Units in the Standardized Vocabularies. |
| range_low |
No |
float |
The lower limit of the normal range of the Measurement result. The lower range is assumed to be of the same unit of measure as the Measurement value. |
| range_high |
No |
float |
The upper limit of the normal range of the Measurement. The upper range is assumed to be of the same unit of measure as the Measurement value. |
| provider_id |
No |
integer |
A foreign key to the provider in the PROVIDER table who was responsible for initiating or obtaining the measurement. |
| visit_occurrence_id |
No |
integer |
A foreign key to the Visit in the VISIT_OCCURRENCE table during which the Measurement was recorded. |
| visit_detail_id |
No |
integer |
A foreign key to the Visit in the VISIT_DETAIL table during which the Measurement was recorded. |
| measurement_source_value |
No |
varchar(50) |
The Measurement name as it appears in the source data. This code is mapped to a Standard Concept in the Standardized Vocabularies and the original code is stored here for reference. |
| measurement_source_concept_id |
No |
integer |
A foreign key to a Concept in the Standard Vocabularies that refers to the code used in the source. |
| unit_source_value |
No |
varchar(50) |
The source code for the unit as it appears in the source data. This code is mapped to a standard unit concept in the Standardized Vocabularies and the original code is stored here for reference. |
| value_source_value |
No |
varchar(50) |
The source value associated with the content of the value_as_number or value_as_concept_id as stored in the source data. |
NOTE
| Field |
Required |
Type |
Description |
| note_id |
Yes |
integer |
A unique identifier for each note. |
| person_id |
Yes |
integer |
A foreign key identifier to the Person about whom the Note was recorded. The demographic details of that Person are stored in the PERSON table. |
| note_date |
Yes |
date |
The date the note was recorded. |
| note_datetime |
No |
datetime |
The date and time the note was recorded. |
| note_type_concept_id |
Yes |
integer |
A foreign key to the predefined Concept in the Standardized Vocabularies reflecting the type, origin or provenance of the Note. |
| note_class_concept_id |
Yes |
integer |
A foreign key to the predefined Concept in the Standardized Vocabularies reflecting the HL7 LOINC Document Type Vocabulary classification of the note. |
| note_title |
No |
string(250) |
The title of the Note as it appears in the source. |
| note_text |
Yes |
RBDMS dependent text |
The content of the Note. |
| encoding_concept_id |
Yes |
integer |
A foreign key to the predefined Concept in the Standardized Vocabularies reflecting the note character encoding type. |
| language_concept_id |
Yes |
integer |
A foreign key to the predefined Concept in the Standardized Vocabularies reflecting the language of the note. |
| provider_id |
No |
integer |
A foreign key to the Provider in the PROVIDER table who took the Note. |
| visit_occurrence_id |
No |
integer |
Foreign key to the Visit in the VISIT_OCCURRENCE table when the Note was taken. |
| visit_detail_id |
No |
integer |
Foreign key to the Visit in the VISIT_DETAIL table when the Note was taken. |
OBSERVATION
| Field |
Required |
Type |
Description |
| observation_id |
Yes |
integer |
A unique identifier for each observation. |
| person_id |
Yes |
integer |
A foreign key identifier to the Person about whom the observation was recorded. The demographic details of that Person are stored in the PERSON table. |
| observation_concept_id |
Yes |
integer |
A foreign key to the standard observation concept identifier in the Standardized Vocabularies. |
| observation_date |
Yes |
date |
The date of the observation. |
| observation_datetime |
No |
datetime |
The date and time of the observation. |
| observation_type_concept_id |
Yes |
integer |
A foreign key to the predefined concept identifier in the Standardized Vocabularies reflecting the type of the observation. |
| value_as_number |
No |
float |
The observation result stored as a number. This is applicable to observations where the result is expressed as a numeric value. |
| value_as_string |
No |
varchar(60) |
The observation result stored as a string. This is applicable to observations where the result is expressed as verbatim text. |
| value_as_concept_id |
No |
Integer |
A foreign key to an observation result stored as a Concept ID. This is applicable to observations where the result can be expressed as a Standard Concept from the Standardized Vocabularies (e.g., positive/negative, present/absent, low/high, etc.). |
| qualifier_concept_id |
No |
integer |
A foreign key to a Standard Concept ID for a qualifier (e.g., severity of drug-drug interaction alert) |
| unit_concept_id |
No |
integer |
A foreign key to a Standard Concept ID of measurement units in the Standardized Vocabularies. |
| provider_id |
No |
integer |
A foreign key to the provider in the PROVIDER table who was responsible for making the observation. |
| visit_occurrence_id |
No |
integer |
A foreign key to the visit in the VISIT_OCCURRENCE table during which the observation was recorded. |
| visit_detail_id |
No |
integer |
A foreign key to the visit in the VISIT_DETAIL table during which the observation was recorded. |
| observation_source_value |
No |
varchar(50) |
The observation code as it appears in the source data. This code is mapped to a Standard Concept in the Standardized Vocabularies and the original code is, stored here for reference. |
| observation_source_concept_id |
No |
integer |
A foreign key to a Concept that refers to the code used in the source. |
| unit_source_value |
No |
varchar(50) |
The source code for the unit as it appears in the source data. This code is mapped to a standard unit concept in the Standardized Vocabularies and the original code is, stored here for reference. |
| qualifier_source_value |
No |
varchar(50) |
The source value associated with a qualifier to characterize the observation |
Conventions
Representation of US claim data
US claims data generally has two-levels
- Header/summary data that summarizes the entire claim
- Line/detail that details a claim.
Detail is thus a child of the summary, and for every record in summary there is one or more records in detail. i.e. there will be atleast one FK link from visit_detail to visit_occurrence.
Use Cases