Observation
type: StructureDefinition
node role: treeRoot
id:
  v: Observation
language:
  v: en
text:
  status:
    v: extensions
  div:
    v: Generated Narrative: StructureDefinition Observation Name Flags Card. Type Description & Constraints<img src="[binary]" alt="doco" style="background-color: inherit"/> Observation 0..* Base Observation OMOP Table Instances of this logical model can be the target of a Reference #xD; observation_id 1..1 integer Observation Identifier #xD; person_id 1..1 integer Person #xD; observation_concept_id 1..1 code Observation #xD; observation_date 1..1 date Observation Date #xD; observation_datetime 0..1 dateTime Observation Datetime #xD; observation_type_concept_id 1..1 code Observation Type #xD; value_as_number 0..1 integer Value as Number #xD; value_as_string 0..1 string Value as String #xD; <a href="StructureDefinition-Observation-definitions.html#Observation.value-as-concept-id" title="It is possible that some records destined for the Observation table have two clinical ideas represented in one source code. This is common with ICD10 codes that describe a family history of some Condition, for example. In OMOP the Vocabulary breaks these two clinical ideas into two codes; one becomes the OBSERVATION_CONCEPT_ID and the other becomes the VALUE_AS_CONCEPT_ID. It is important when using the Observation table to keep this possibility in mind and to examine the VALUE_AS_CONCEPT_ID field for relevant information.">value_as_concept_id 0..1 code Value as Concept #xD; qualifier_concept_id 0..1 code Qualifier #xD; unit_concept_id 0..1 code Unit #xD; provider_id 0..1 integer Provider #xD; visit_occurrence_id 0..1 integer Visit Occurence #xD; visit_detail_id 0..1 integer Visit Detail #xD; observation_source_value 0..1 string Observation Source Value #xD; <a href="StructureDefinition-Observation-definitions.html#Observation.observation-source-concept-id" title="This is the concept representing the OBSERVATION_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 OHDS…
extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics
    l: structuredefinition-type-characteristics
  value: Code
    v: can-be-target
extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/structuredefinition-wg
    l: structuredefinition-wg
  value: Code
    v: brr
extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm
    l: structuredefinition-fmm
  value: Integer
    v: 2
    extension:
      url:
        v: http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom
        l: structuredefinition-conformance-derivedFrom
      value: Canonical
        v: http://hl7.org/fhir/uv/omop/ImplementationGuide/hl7.fhir.uv.omop
        l: hl7.fhir.uv.omop
extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status
    l: structuredefinition-standards-status
  value: Code
    v: informative
    extension:
      url:
        v: http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom
        l: structuredefinition-conformance-derivedFrom
      value: Canonical
        v: http://hl7.org/fhir/uv/omop/ImplementationGuide/hl7.fhir.uv.omop
        l: hl7.fhir.uv.omop
url:
  v: http://hl7.org/fhir/uv/omop/StructureDefinition/Observation
  l: Observation
version:
  v: 1.0.0
name:
  v: Observation
title:
  v: Observation OMOP Table
status:
  v: active
date:
  v: 2026-04-30T00:07:42+10:00
publisher:
  v: HL7 International / Biomedical Research and Regulation
contact:
  name:
    v: HL7 International / Biomedical Research and Regulation
  telecom:
    system:
      v: url
    value:
      v: http://www.hl7.org/Special/committees/rcrim
description:
  v: The OBSERVATION table captures clinical facts about a Person obtained in the context of examination, questioning or a procedure. Any data that cannot be represented by any other domains, such as social and lifestyle facts, medical history, family history, etc. are recorded here.
jurisdiction:
  coding:
    system:
      v: http://unstats.un.org/unsd/methods/m49/m49.htm
      l: m49.htm
    code:
      v: 001
    display:
      v: World
fhir version:
  v: 5.0.0
mapping:
  identity:
    v: rim
  uri:
    v: http://hl7.org/v3
    l: v3
  name:
    v: RIM Mapping
kind:
  v: logical
abstract:
  v: false
type:
  v: http://hl7.org/fhir/uv/omop/StructureDefinition/Observation
  l: Observation
base definition:
  v: http://hl7.org/fhir/StructureDefinition/Base
  l: Base
derivation:
  v: specialization
snapshot:
  extension:
    url:
      v: http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version
      l: snapshot-base-version
    value: String
      v: 5.0.0
  element:
    id:
      v: Observation
    path:
      v: Observation
    short:
      v: Observation OMOP Table
    definition:
      v: The OBSERVATION table captures clinical facts about a Person obtained in the context of examination, questioning or a procedure. Any data that cannot be represented by any other domains, such as social and lifestyle facts, medical history, family history, etc. are recorded here.
    min:
      v: 0
    max:
      v: *
    base:
      path:
        v: Base
      min:
        v: 0
      max:
        v: *
    is modifier:
      v: false
    mapping:
      identity:
        v: rim
      map:
        v: n/a
  element:
    id:
      v: Observation.observation-id
    path:
      v: Observation.observation_id
    short:
      v: Observation Identifier
    definition:
      v: Observation Identifier
    min:
      v: 1
    max:
      v: 1
    base:
      path:
        v: Observation.observation_id
      min:
        v: 1
      max:
        v: 1
    type:
      code:
        v: integer
        l: integer
  element:
    id:
      v: Observation.person-id
    path:
      v: Observation.person_id
    short:
      v: Person
    definition:
      v: The PERSON_ID of the Person for whom the Observation is recorded. This may be a system generated code.
    min:
      v: 1
    max:
      v: 1
    base:
      path:
        v: Observation.person_id
      min:
        v: 1
      max:
        v: 1
    type:
      code:
        v: integer
        l: integer
  element:
    id:
      v: Observation.observation-concept-id
    path:
      v: Observation.observation_concept_id
    short:
      v: Observation
    definition:
      v: The OBSERVATION_CONCEPT_ID field is recommended for primary use in analyses, and must be used for network studies.
    min:
      v: 1
    max:
      v: 1
    base:
      path:
        v: Observation.observation_concept_id

v: 1

v: 1

code:
  v: code
  l: code

id:
  v: Observation.observation-date
path:
  v: Observation.observation_date
short:
  v: Observation Date
definition:
  v: The date of the Observation. Depending on what the Observation represents this could be the date of a lab test, the date of a survey, or the date a patient's family history was taken.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Observation.observation_date
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: date
    l: date

id:
  v: Observation.observation-datetime
path:
  v: Observation.observation_datetime
short:
  v: Observation Datetime
definition:
  v: Observation Datetime
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.observation_datetime
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: dateTime
    l: dateTime

id:
  v: Observation.observation-type-concept-id
path:
  v: Observation.observation_type_concept_id
short:
  v: Observation Type
definition:
  v: This field can be used to determine the provenance of the Observation record, as in whether the measurement was from an EHR system, insurance claim, registry, or other sources.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Observation.observation_type_concept_id
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: code
    l: code

id:
  v: Observation.value-as-number
path:
  v: Observation.value_as_number
short:
  v: Value as Number
definition:
  v: This is the numerical value of the Result of the Observation, if applicable and available. It is not expected that all Observations will have numeric results, rather, this field is here to house values should they exist.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.value_as_number
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: integer
    l: integer

id:
  v: Observation.value-as-string
path:
  v: Observation.value_as_string
short:
  v: Value as String
definition:
  v: This is the categorical value of the Result of the Observation, if applicable and available.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.value_as_string
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: Observation.value-as-concept-id
path:
  v: Observation.value_as_concept_id
short:
  v: Value as Concept
definition:
  v: It is possible that some records destined for the Observation table have two clinical ideas represented in one source code. This is common with ICD10 codes that describe a family history of some Condition, for example. In OMOP the Vocabulary breaks these two clinical ideas into two codes; one becomes the OBSERVATION_CONCEPT_ID and the other becomes the VALUE_AS_CONCEPT_ID. It is important when using the Observation table to keep this possibility in mind and to examine the VALUE_AS_CONCEPT_ID field for relevant information.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.value_as_concept_id
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code

id:
  v: Observation.qualifier-concept-id
path:
  v: Observation.qualifier_concept_id
short:
  v: Qualifier
definition:
  v: This field contains all attributes specifying the clinical fact further, such as as degrees, severities, drug-drug interaction alerts etc.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.qualifier_concept_id
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code

id:
  v: Observation.unit-concept-id
path:
  v: Observation.unit_concept_id
short:
  v: Unit
definition:
  v: There is currently no recommended unit for individual observation concepts. 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.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.unit_concept_id
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code

id:
  v: Observation.provider-id
path:
  v: Observation.provider_id
short:
  v: Provider
definition:
  v: The provider associated with the observation record, e.g. the provider who ordered the test or the provider who recorded the result.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.provider_id
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: integer
    l: integer

id:
  v: Observation.visit-occurrence-id
path:
  v: Observation.visit_occurrence_id
short:
  v: Visit Occurence
definition:
  v: The visit during which the Observation occurred.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.visit_occurrence_id
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: integer
    l: integer

id:
  v: Observation.visit-detail-id
path:
  v: Observation.visit_detail_id
short:
  v: Visit Detail
definition:
  v: The VISIT_DETAIL record during which the Observation 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.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.visit_detail_id
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: integer
    l: integer

id:
  v: Observation.observation-source-value
path:
  v: Observation.observation_source_value
short:
  v: Observation Source Value
definition:
  v: This field houses the verbatim value from the source data representing the Observation that occurred. For example, this could be an ICD10 or Read code.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.observation_source_value
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: Observation.observation-source-concept-id
path:
  v: Observation.observation_source_concept_id
short:
  v: Observation Source
definition:
  v: This is the concept representing the OBSERVATION_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 Observation necessary for a given analytic use case. Consider using OBSERVATION_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.observation_source_concept_id
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code

id:
  v: Observation.unit-source-value
path:
  v: Observation.unit_source_value
short:
  v: Unit Source Value
definition:
  v: This field houses the verbatim value from the source data representing the unit of the Observation that occurred.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.unit_source_value
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: Observation.qualifier-source-value
path:
  v: Observation.qualifier_source_value
short:
  v: Qualifier Source Value
definition:
  v: This field houses the verbatim value from the source data representing the qualifier of the Observation that occurred.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.qualifier_source_value
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: Observation.value-source-value
path:
  v: Observation.value_source_value
short:
  v: Value Source Value
definition:
  v: This field houses the verbatim result value of the Observation from the source data. Do not get confused with the Observation_source_value which captures source value of the observation mapped to observation_concept_id. This field is the observation result value from the source.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.value_source_value
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: Observation.observation-event-id
path:
  v: Observation.observation_event_id
short:
  v: Observation Event
definition:
  v: If the Observation record is related to another record in the database, this field is the primary key of the linked record.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.observation_event_id
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: Observation.obs-event-field-concept-id
path:
  v: Observation.obs_event_field_concept_id
short:
  v: Observation Event Field Concept
definition:
  v: If the Observation 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.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Observation.obs_event_field_concept_id
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code

element:
  id:
    v: Observation
  path:
    v: Observation
  short:
    v: Observation OMOP Table
  definition:
    v: The OBSERVATION table captures clinical facts about a Person obtained in the context of examination, questioning or a procedure. Any data that cannot be represented by any other domains, such as social and lifestyle facts, medical history, family history, etc. are recorded here.
element:
  id:
    v: Observation.observation-id
  path:
    v: Observation.observation_id
  short:
    v: Observation Identifier
  definition:
    v: Observation Identifier
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: integer
      l: integer
element:
  id:
    v: Observation.person-id
  path:
    v: Observation.person_id
  short:
    v: Person
  definition:
    v: The PERSON_ID of the Person for whom the Observation is recorded. This may be a system generated code.
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: integer
      l: integer
element:
  id:
    v: Observation.observation-concept-id
  path:
    v: Observation.observation_concept_id
  short:
    v: Observation
  definition:
    v: The OBSERVATION_CONCEPT_ID field is recommended for primary use in analyses, and must be used for network studies.
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: code
      l: code
element:
  id:
    v: Observation.observation-date
  path:
    v: Observation.observation_date
  short:
    v: Observation Date
  definition:
    v: The date of the Observation. Depending on what the Observation represents this could be the date of a lab test, the date of a survey, or the date a patient's family history was taken.
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: date
      l: date
element:
  id:
    v: Observation.observation-datetime
  path:
    v: Observation.observation_datetime
  short:
    v: Observation Datetime
  definition:
    v: Observation Datetime
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: dateTime
      l: dateTime
element:
  id:
    v: Observation.observation-type-concept-id
  path:
    v: Observation.observation_type_concept_id
  short:
    v: Observation Type
  definition:
    v: This field can be used to determine the provenance of the Observation record, as in whether the measurement was from an EHR system, insurance claim, registry, or other sources.
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: code
      l: code
element:
  id:
    v: Observation.value-as-number
  path:
    v: Observation.value_as_number
  short:
    v: Value as Number
  definition:
    v: This is the numerical value of the Result of the Observation, if applicable and available. It is not expected that all Observations will have numeric results, rather, this field is here to house values should they exist.
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: integer
      l: integer
element:
  id:
    v: Observation.value-as-string
  path:
    v: Observation.value_as_string
  short:
    v: Value as String
  definition:
    v: This is the categorical value of the Result of the Observation, if applicable and available.
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: string
      l: string
element:
  id:
    v: Observation.value-as-concept-id
  path:
    v: Observation.value_as_concept_id
  short:
    v: Value as Concept
  definition:
    v: It is possible that some records destined for the Observation table have two clinical ideas represented in one source code. This is common with ICD10 codes that describe a family history of some Condition, for example. In OMOP the Vocabulary breaks these two clinical ideas into two codes; one becomes the OBSERVATION_CONCEPT_ID and the other becomes the VALUE_AS_CONCEPT_ID. It is important when using the Observation table to keep this possibility in mind and to examine the VALUE_AS_CONCEPT_ID field for relevant information.
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: code
      l: code
element:
  id:
    v: Observation.qualifier-concept-id
  path:
    v: Observation.qualifier_concept_id
  short:
    v: Qualifier
  definition:
    v: This field contains all attributes specifying the clinical fact further, such as as degrees, severities, drug-drug interaction alerts etc.
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: code
      l: code
element:
  id:
    v: Observation.unit-concept-id
  path:
    v: Observation.unit_concept_id
  short:
    v: Unit
  definition:
    v: There is currently no recommended unit for individual observation concepts. 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.
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: code
      l: code
element:
  id:
    v: Observation.provider-id
  path:
    v: Observation.provider_id

v: Provider

v: The provider associated with the observation record, e.g. the provider who ordered the test or the provider who recorded the result.

v: 0

v: 1

code:
  v: integer
  l: integer

id:
  v: Observation.visit-occurrence-id
path:
  v: Observation.visit_occurrence_id
short:
  v: Visit Occurence
definition:
  v: The visit during which the Observation occurred.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: integer
    l: integer

id:
  v: Observation.visit-detail-id
path:
  v: Observation.visit_detail_id
short:
  v: Visit Detail
definition:
  v: The VISIT_DETAIL record during which the Observation 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.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: integer
    l: integer

id:
  v: Observation.observation-source-value
path:
  v: Observation.observation_source_value
short:
  v: Observation Source Value
definition:
  v: This field houses the verbatim value from the source data representing the Observation that occurred. For example, this could be an ICD10 or Read code.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: Observation.observation-source-concept-id
path:
  v: Observation.observation_source_concept_id
short:
  v: Observation Source
definition:
  v: This is the concept representing the OBSERVATION_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 Observation necessary for a given analytic use case. Consider using OBSERVATION_CONCEPT_ID instead to enable standardized analytics that can be consistent across the network.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: code
    l: code

id:
  v: Observation.unit-source-value
path:
  v: Observation.unit_source_value
short:
  v: Unit Source Value
definition:
  v: This field houses the verbatim value from the source data representing the unit of the Observation that occurred.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: Observation.qualifier-source-value
path:
  v: Observation.qualifier_source_value
short:
  v: Qualifier Source Value
definition:
  v: This field houses the verbatim value from the source data representing the qualifier of the Observation that occurred.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: Observation.value-source-value
path:
  v: Observation.value_source_value
short:
  v: Value Source Value
definition:
  v: This field houses the verbatim result value of the Observation from the source data. Do not get confused with the Observation_source_value which captures source value of the observation mapped to observation_concept_id. This field is the observation result value from the source.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: Observation.observation-event-id
path:
  v: Observation.observation_event_id
short:
  v: Observation Event
definition:
  v: If the Observation record is related to another record in the database, this field is the primary key of the linked record.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: Observation.obs-event-field-concept-id
path:
  v: Observation.obs_event_field_concept_id
short:
  v: Observation Event Field Concept
definition:
  v: If the Observation 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.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: code
    l: code