OMOP_5.4_ER_ALL

OMOP_5.4_ER : Model

Entity - measurement link

Properties
Name Value
Description

 

MEASUREMENT

Table Description

The MEASUREMENT table contains records of Measurements, i.e. structured values (numerical or categorical) obtained through systematic and standardized examination or testing of a Person or Person’s sample. The MEASUREMENT table contains both orders and results of such Measurements as laboratory tests, vital signs, quantitative findings from pathology reports, etc. Measurements are stored as attribute value pairs, with the attribute as the Measurement Concept and the value representing the result. The value can be a Concept (stored in VALUE_AS_CONCEPT), or a numerical value (VALUE_AS_NUMBER) with a Unit (UNIT_CONCEPT_ID). The Procedure for obtaining the sample is housed in the PROCEDURE_OCCURRENCE table, though it is unnecessary to create a PROCEDURE_OCCURRENCE record for each measurement if one does not exist in the source data. Measurements differ from Observations in that they require a standardized test or some other activity to generate a quantitative or qualitative result. If there is no result, it is assumed that the lab test was conducted but the result was not captured.

User Guide

Measurements are predominately lab tests with a few exceptions, like blood pressure or function tests. Results are given in the form of a value and unit combination. When investigating measurements, look for operator_concept_ids (<, >, etc.).

ETL Conventions

Only records where the source value maps to a Concept in the measurement domain should be included in this table. Even though each Measurement always has a result, the fields VALUE_AS_NUMBER and VALUE_AS_CONCEPT_ID are not mandatory as often the result is not given in the source data. When the result is not known, the Measurement record represents just the fact that the corresponding Measurement was carried out, which in itself is already useful information for some use cases. For some Measurement Concepts, the result is included in the test. For example, ICD10 CONCEPT_ID 45548980 ‘Abnormal level of unspecified serum enzyme’ indicates a Measurement and the result (abnormal). In those situations, the CONCEPT_RELATIONSHIP table in addition to the ‘Maps to’ record contains a second record with the relationship_id set to ‘Maps to value’. In this example, the ‘Maps to’ relationship directs to 4046263 ‘Enzyme measurement’ as well as a ‘Maps to value’ record to 4135493 ‘Abnormal’.

CDM Field User Guide ETL Conventions Datatype Required Primary Key Foreign Key FK Table FK Domain
measurement_id The unique key given to a Measurement record for a Person. Refer to the ETL for how duplicate Measurements during the same Visit were handled. Each instance of a measurement present in the source data should be assigned this unique key. In some cases, a person can have multiple records of the same measurement within the same visit. It is valid to keep these duplicates and assign them individual, unique, MEASUREMENT_IDs, though it is up to the ETL how they should be handled. integer Yes Yes No
person_id The PERSON_ID of the Person for whom the Measurement is recorded. This may be a system generated code. integer Yes No Yes PERSON
measurement_concept_id The MEASUREMENT_CONCEPT_ID field is recommended for primary use in analyses, and must be used for network studies. The CONCEPT_ID that the MEASUREMENT_SOURCE_CONCEPT_ID maps to. Only records whose SOURCE_CONCEPT_IDs map to Standard Concepts with a domain of “Measurement” should go in this table. integer Yes No Yes CONCEPT Measurement
measurement_date Use this date to determine the date of the measurement. If there are multiple dates in the source data associated with a record such as order_date, draw_date, and result_date, choose the one that is closest to the date the sample was drawn from the patient. date Yes No No
measurement_datetime This is not required, though it is in v6. If a source does not specify datetime the convention is to set the time to midnight (00:00:0000) datetime No No No
measurement_time This is present for backwards compatibility and will be deprecated in an upcoming version. varchar(10) No No No
measurement_type_concept_id This field can be used to determine the provenance of the Measurement record, as in whether the measurement was from an EHR system, insurance claim, registry, or other sources. Choose the MEASUREMENT_TYPE_CONCEPT_ID that best represents the provenance of the record, for example 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
operator_concept_id The meaning of Concept 4172703 for ‘=’ is identical to omission of a OPERATOR_CONCEPT_ID value. Since the use of this field is rare, it’s important when devising analyses to not to forget testing for the content of this field for values different from =. Operators are =, > and these concepts belong to the ‘Meas Value Operator’ domain. Accepted Concepts. integer No No Yes CONCEPT
value_as_number This is the numerical value of the Result of the Measurement, if available. Note that measurements such as blood pressures will be split into their component parts i.e. one record for systolic, one record for diastolic. If there is a negative value coming from the source, set the VALUE_AS_NUMBER to NULL, with the exception of the following Measurements (listed as LOINC codes):
- 1925-7 Base excess in Arterial blood by calculation - 1927-3 Base excess in Venous blood by calculation - 8632-2 QRS-Axis - 11555-0 Base excess in Blood by calculation - 1926-5 Base excess in Capillary blood by calculation - 28638-5 Base excess in Arterial cord blood by calculation 28639-3 Base excess in Venous cord blood by calculation
float No No No
value_as_concept_id If the raw data gives a categorial result for measurements those values are captured and mapped to standard concepts in the ‘Meas Value’ domain. If the raw data provides categorial results as well as continuous results for measurements, it is a valid ETL choice to preserve both values. The continuous value should go in the VALUE_AS_NUMBER field and the categorical value should be mapped to a standard concept in the ‘Meas Value’ domain and put in the VALUE_AS_CONCEPT_ID field. This is also the destination for the ‘Maps to value’ relationship. integer No No Yes CONCEPT
unit_concept_id There is currently no recommended unit for individual measurements, i.e. it is not mandatory to represent Hemoglobin a1C measurements as a percentage. UNIT_SOURCE_VALUES should be mapped to a Standard Concept in the Unit domain that best represents the unit as given in the source data. There is no standardization requirement for units associated with MEASUREMENT_CONCEPT_IDs, however, it is the responsibility of the ETL to choose the most plausible unit. integer No No Yes CONCEPT Unit
range_low Ranges have the same unit as the VALUE_AS_NUMBER. These ranges are provided by the source and should remain NULL if not given. If reference ranges for upper and lower limit of normal as provided (typically by a laboratory) these are stored in the RANGE_HIGH and RANGE_LOW fields. This should be set to NULL if not provided. float No No No
range_high Ranges have the same unit as the VALUE_AS_NUMBER. These ranges are provided by the source and should remain NULL if not given. If reference ranges for upper and lower limit of normal as provided (typically by a laboratory) these are stored in the RANGE_HIGH and RANGE_LOW fields. This should be set to NULL if not provided. float No No No
provider_id The provider associated with measurement record, e.g. the provider who ordered the test or the provider who recorded the result. The ETL may need to make a choice as to which PROVIDER_ID to put here. Based on what is available this may or may not be different than the provider associated with the overall VISIT_OCCURRENCE record. For example the admitting vs attending physician on an EHR record. integer No No Yes PROVIDER
visit_occurrence_id The visit during which the Measurement occurred. Depending on the structure of the source data, this may have to be determined based on dates. If a MEASUREMENT_DATE occurs within the start and end date of a Visit it is a valid ETL choice to choose the VISIT_OCCURRENCE_ID from the visit that subsumes it, even if not explicitly stated in the data. While not required, an attempt should be made to locate the VISIT_OCCURRENCE_ID of the measurement record. If a measurement is related to a visit explicitly in the source data, it is possible that the result date of the Measurement falls outside of the bounds of the Visit dates. integer No No Yes VISIT_OCCURRENCE
visit_detail_id The VISIT_DETAIL record during which the Measurement occurred. For example, if the Person was in the ICU at the time the VISIT_OCCURRENCE record would reflect the overall hospital stay and the VISIT_DETAIL record would reflect the ICU stay during the hospital visit. Same rules apply as for the VISIT_OCCURRENCE_ID. integer No No Yes VISIT_DETAIL
measurement_source_value This field houses the verbatim value from the source data representing the Measurement that occurred. For example, this could be an ICD10 or Read code. This code is mapped to a Standard Measurement Concept in the Standardized Vocabularies and the original code is stored here for reference. varchar(50) No No No
measurement_source_concept_id This is the concept representing the MEASUREMENT_SOURCE_VALUE and may not necessarily be standard. This field is discouraged from use in analysis because it is not required to contain Standard Concepts that are used across the OHDSI community, and should only be used when Standard Concepts do not adequately represent the source detail for the Measurement necessary for a given analytic use case. Consider using MEASUREMENT_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network. If the MEASUREMENT_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
unit_source_value This field houses the verbatim value from the source data representing the unit of the Measurement that occurred. This code is mapped to a Standard Condition Concept in the Standardized Vocabularies and the original code is stored here for reference. varchar(50) No No No
unit_source_concept_id “This is the concept representing the UNIT_SOURCE_VALUE and may not necessarily be standard. This field is discouraged from use in analysis because it is not required to contain Standard Concepts that are used across the OHDSI community, and should only be used when Standard Concepts do not adequately represent the source detail for the Measurement necessary for a given analytic use case. Consider using UNIT_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.” If the UNIT_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
value_source_value This field houses the verbatim result value of the Measurement from the source data . If both a continuous and categorical result are given in the source data such that both VALUE_AS_NUMBER and VALUE_AS_CONCEPT_ID are both included, store the verbatim value that was mapped to VALUE_AS_CONCEPT_ID here. varchar(50) No No No
measurement_event_id If the Measurement record is related to another record in the database, this field is the primary key of the linked record. Put the primary key of the linked record, if applicable, here. integer No No No
meas_event_field_concept_id If the Measurement record is related to another record in the database, this field is the CONCEPT_ID that identifies which table the primary key of the linked record came from. Put the CONCEPT_ID that identifies which table and field the MEASUREMENT_EVENT_ID came from. integer No No Yes CONCEPT

Data Model Physical
Primary Key Constraint Name xpk_measurement
Primary Key Clustered Unspecified
Unlogged false

Columns Summary
Column Name Data Type PK / FK Nullable Description
measurement_id int4 PK No
person_id int4 PK / FK No
provider_id int4 PK / FK No
visit_occurrence_id int4 PK / FK No
visit_detail_id int4 PK / FK No
measurement_concept_id int4 PK / FK No
measurement_date date No
measurement_datetime timestamp(0) Yes
measurement_time varchar(10) Yes
measurement_type_concept_id int4 PK / FK No
operator_concept_id int4 PK / FK No
value_as_number numeric(19) Yes
value_as_concept_id int4 PK / FK No
unit_concept_id int4 PK / FK No
range_low numeric(19) Yes
range_high numeric(19) Yes
measurement_source_value varchar(50) Yes
measurement_source_concept_id int4 PK / FK No
unit_source_value varchar(50) Yes
unit_source_concept_id int4 PK / FK No
value_source_value varchar(50) Yes
measurement_event_id int8 Yes
meas_event_field_concept_id int4 PK / FK No

Relationships Summary
Name Begin End
 fpk_measurement_person_id : Relationship
 person : Entity
 measurement : Entity
 fpk_measurement_measurement_concept_id : Relationship
 concept : Entity
 measurement : Entity
 fpk_measurement_measurement_type_concept_id : Relationship
 concept : Entity
 measurement : Entity
 fpk_measurement_operator_concept_id : Relationship
 concept : Entity
 measurement : Entity
 fpk_measurement_value_as_concept_id : Relationship
 concept : Entity
 measurement : Entity
 fpk_measurement_unit_concept_id : Relationship
 concept : Entity
 measurement : Entity
 fpk_measurement_provider_id : Relationship
 provider : Entity
 measurement : Entity
 fpk_measurement_visit_occurrence_id : Relationship
 visit_occurrence : Entity
 measurement : Entity
 fpk_measurement_visit_detail_id : Relationship
 visit_detail : Entity
 measurement : Entity
 fpk_measurement_measurement_source_concept_id : Relationship
 concept : Entity
 measurement : Entity
 fpk_measurement_unit_source_concept_id : Relationship
 concept : Entity
 measurement : Entity
 fpk_measurement_meas_event_field_concept_id : Relationship
 concept : Entity
 measurement : Entity

Columns Detail
Name Value
Name measurement_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 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 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_occurrence_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_detail_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 measurement_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 measurement_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 measurement_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 measurement_time
Type varchar
Nullable true
Unique false
Primary Key false
Index false
Type Name varchar
Length 10
Scale 0
Id Generator native
Foreign Key false
Generated Unspecified
Sync To Attribute Yes

Name Value
Name measurement_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 operator_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 value_as_number
Type numeric
Nullable true
Unique false
Primary Key false
Index false
Type Name numeric
Length 19
Scale 0
Id Generator native
Foreign Key false
Generated Unspecified
Sync To Attribute Yes

Name Value
Name value_as_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 unit_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 range_low
Type numeric
Nullable true
Unique false
Primary Key false
Index false
Type Name numeric
Length 19
Scale 0
Id Generator native
Foreign Key false
Generated Unspecified
Sync To Attribute Yes

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

Name Value
Name measurement_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 measurement_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 unit_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 unit_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 value_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 measurement_event_id
Type int8
Nullable true
Unique false
Primary Key false
Index false
Type Name int8
Length 0
Scale 0
Id Generator native
Foreign Key false
Generated Unspecified
Sync To Attribute Yes

Name Value
Name meas_event_field_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

Relationships Detail
Name Value
Name fpk_measurement_person_id
Foreign Key
measurement
 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_measurement_measurement_concept_id
Foreign Key
measurement
 measurement_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_measurement_measurement_type_concept_id
Foreign Key
measurement
 measurement_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_measurement_operator_concept_id
Foreign Key
measurement
 operator_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_measurement_value_as_concept_id
Foreign Key
measurement
 value_as_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_measurement_unit_concept_id
Foreign Key
measurement
 unit_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_measurement_provider_id
Foreign Key
measurement
 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_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_measurement_visit_detail_id
Foreign Key
measurement
 visit_detail_id : Column
Primary Key
visit_detail
 visit_detail_id : Column
To Multiplicity 0..*
From Multiplicity 1
Sync To Association Yes
Data Model Physical

Name Value
Name fpk_measurement_measurement_source_concept_id
Foreign Key
measurement
 measurement_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_measurement_unit_source_concept_id
Foreign Key
measurement
 unit_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_measurement_meas_event_field_concept_id
Foreign Key
measurement
 meas_event_field_concept_id : Column
Primary Key
concept
 concept_id : Column
To Multiplicity 0..*
From Multiplicity 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