OMOP/BigQuery/OMOP CDM bigquery ddl.txt

654 lines
20 KiB
Plaintext

/*OMOP CDM v5.3.1 14June2018*/
#standardsql
create table concept (
concept_id INT64 not null ,
concept_name STRING not null ,
domain_id STRING not null ,
vocabulary_id STRING not null ,
concept_class_id STRING not null ,
standard_concept STRING ,
concept_code STRING not null ,
valid_start_DATE DATE not null ,
valid_end_DATE DATE not null ,
invalid_reason STRING
)
;
create table vocabulary (
vocabulary_id STRING not null,
vocabulary_name STRING not null,
vocabulary_reference STRING not null,
vocabulary_version STRING ,
vocabulary_concept_id INT64 not null
)
;
create table domain (
domain_id STRING not null,
domain_name STRING not null,
domain_concept_id INT64 not null
)
;
create table concept_class (
concept_class_id STRING not null,
concept_class_name STRING not null,
concept_class_concept_id INT64 not null
)
;
create table concept_relationship (
concept_id_1 INT64 not null,
concept_id_2 INT64 not null,
relationship_id STRING not null,
valid_start_DATE DATE not null,
valid_end_DATE DATE not null,
invalid_reason STRING
)
;
create table relationship (
relationship_id STRING not null,
relationship_name STRING not null,
is_hierarchical STRING not null,
defines_ancestry STRING not null,
reverse_relationship_id STRING not null,
relationship_concept_id INT64 not null
)
;
create table concept_synonym (
concept_id INT64 not null,
concept_synonym_name STRING not null,
language_concept_id INT64 not null
)
;
create table concept_ancestor (
ancestor_concept_id INT64 not null,
descendant_concept_id INT64 not null,
min_levels_of_separation INT64 not null,
max_levels_of_separation INT64 not null
)
;
create table source_to_concept_map (
source_code STRING not null,
source_concept_id INT64 not null,
source_vocabulary_id STRING not null,
source_code_description STRING ,
target_concept_id INT64 not null,
target_vocabulary_id STRING not null,
valid_start_DATE DATE not null,
valid_end_DATE DATE not null,
invalid_reason STRING
)
;
create table drug_strength (
drug_concept_id INT64 not null,
ingredient_concept_id INT64 not null,
amount_value FLOAT64 ,
amount_unit_concept_id INT64 ,
numerator_value FLOAT64 ,
numerator_unit_concept_id INT64 ,
denominator_value FLOAT64 ,
denominator_unit_concept_id INT64 ,
box_size INT64 ,
valid_start_DATE DATE not null,
valid_end_DATE DATE not null,
invalid_reason STRING
)
;
create table cohort_definition (
cohort_definition_id INT64 not null,
cohort_definition_name STRING not null,
cohort_definition_description STRING ,
definition_type_concept_id INT64 not null,
cohort_definition_syntax STRING ,
subject_concept_id INT64 not null,
cohort_initiation_DATE DATE
)
;
create table attribute_definition (
attribute_definition_id INT64 not null,
attribute_name STRING not null,
attribute_description STRING ,
attribute_type_concept_id INT64 not null,
attribute_syntax STRING
)
;
create table cdm_source
(
cdm_source_name STRING not null ,
cdm_source_abbreviation STRING ,
cdm_holder STRING ,
source_description STRING ,
source_documentation_reference STRING ,
cdm_etl_reference STRING ,
source_release_DATE DATE ,
cdm_release_DATE DATE ,
cdm_version STRING ,
vocabulary_version STRING
)
;
create table metadata
(
metadata_concept_id INT64 not null ,
metadata_type_concept_id INT64 not null ,
name STRING not null ,
value_as_string STRING ,
value_as_concept_id INT64 ,
metadata_DATE DATE ,
metadata_DATETIME DATETIME
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table person
(
person_id INT64 not null ,
gender_concept_id INT64 not null ,
year_of_birth INT64 not null ,
month_of_birth INT64 ,
day_of_birth INT64 ,
birth_DATETIME DATETIME ,
race_concept_id INT64 not null,
ethnicity_concept_id INT64 not null,
location_id INT64 ,
provider_id INT64 ,
care_site_id INT64 ,
person_source_value STRING ,
gender_source_value STRING ,
gender_source_concept_id INT64 ,
race_source_value STRING ,
race_source_concept_id INT64 ,
ethnicity_source_value STRING ,
ethnicity_source_concept_id INT64
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table observation_period
(
observation_period_id INT64 not null ,
person_id INT64 not null ,
observation_period_start_DATE DATE not null ,
observation_period_end_DATE DATE not null ,
period_type_concept_id INT64 not null
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table specimen
(
specimen_id INT64 not null ,
person_id INT64 not null ,
specimen_concept_id INT64 not null ,
specimen_type_concept_id INT64 not null ,
specimen_DATE DATE not null ,
specimen_DATETIME DATETIME ,
quantity FLOAT64 ,
unit_concept_id INT64 ,
anatomic_site_concept_id INT64 ,
disease_status_concept_id INT64 ,
specimen_source_id STRING ,
specimen_source_value STRING ,
unit_source_value STRING ,
anatomic_site_source_value STRING ,
disease_status_source_value STRING
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table death
(
person_id INT64 not null ,
death_DATE DATE not null ,
death_DATETIME DATETIME ,
death_type_concept_id INT64 not null ,
cause_concept_id INT64 ,
cause_source_value STRING ,
cause_source_concept_id INT64
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table visit_occurrence
(
visit_occurrence_id INT64 not null ,
person_id INT64 not null ,
visit_concept_id INT64 not null ,
visit_start_DATE DATE not null ,
visit_start_DATETIME DATETIME ,
visit_end_DATE DATE not null ,
visit_end_DATETIME DATETIME ,
visit_type_concept_id INT64 not null ,
provider_id INT64 ,
care_site_id INT64 ,
visit_source_value STRING ,
visit_source_concept_id INT64 ,
admitting_source_concept_id INT64 ,
admitting_source_value STRING ,
discharge_to_concept_id INT64 ,
discharge_to_source_value STRING ,
preceding_visit_occurrence_id INT64
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table visit_detail
(
visit_detail_id INT64 not null ,
person_id INT64 not null ,
visit_detail_concept_id INT64 not null ,
visit_detail_start_DATE DATE not null ,
visit_detail_start_DATETIME DATETIME ,
visit_detail_end_DATE DATE not null ,
visit_detail_end_DATETIME DATETIME ,
visit_deatil_type_concept_id INT64 not null ,
provider_id INT64 ,
care_site_id INT64 ,
admitting_source_concept_id INT64 ,
discharge_to_concept_id INT64 ,
preceding_visit_detail_id INT64 ,
visit_detail_source_value STRING ,
visit_deatil_source_concept_id INT64 ,
admitting_source_value STRING ,
discharge_to_source_value STRING ,
visit_detail_parent_id INT64 ,
visit_occurrence_id INT64 not null
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table procedure_occurrence
(
procedure_occurrence_id INT64 not null ,
person_id INT64 not null ,
procedure_concept_id INT64 not null ,
procedure_DATE DATE not null ,
procedure_DATETIME DATETIME ,
procedure_type_concept_id INT64 not null ,
modifier_concept_id INT64 ,
quantity INT64 ,
provider_id INT64 ,
visit_occurrence_id INT64 ,
visit_detail_id INT64 ,
procedure_source_value STRING ,
procedure_source_concept_id INT64 ,
modifier_source_value STRING
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table drug_exposure
(
drug_exposure_id INT64 not null ,
person_id INT64 not null ,
drug_concept_id INT64 not null ,
drug_exposure_start_DATE DATE not null ,
drug_exposure_start_DATETIME DATETIME ,
drug_exposure_end_DATE DATE not null ,
drug_exposure_end_DATETIME DATETIME ,
verbatim_end_DATE DATE ,
drug_type_concept_id INT64 not null ,
stop_reason STRING ,
refills INT64 ,
quantity FLOAT64 ,
days_supply INT64 ,
sig STRING ,
route_concept_id INT64 ,
lot_number STRING ,
provider_id INT64 ,
visit_occurrence_id INT64 ,
visit_detail_id INT64 ,
drug_source_value STRING ,
drug_source_concept_id INT64 ,
route_source_value STRING ,
dose_unit_source_value STRING
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table device_exposure
(
device_exposure_id INT64 not null ,
person_id INT64 not null ,
device_concept_id INT64 not null ,
device_exposure_start_DATE DATE not null ,
device_exposure_start_DATETIME DATETIME ,
device_exposure_end_DATE DATE ,
device_exposure_end_DATETIME DATETIME ,
device_type_concept_id INT64 not null ,
unique_device_id STRING ,
quantity INT64 ,
provider_id INT64 ,
visit_occurrence_id INT64 ,
visit_detail_id INT64 ,
device_source_value STRING ,
device_source_concept_id INT64
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table condition_occurrence
(
condition_occurrence_id INT64 not null ,
person_id INT64 not null ,
condition_concept_id INT64 not null ,
condition_start_DATE DATE not null ,
condition_start_DATETIME DATETIME ,
condition_end_DATE DATE ,
condition_end_DATETIME DATETIME ,
condition_type_concept_id INT64 not null ,
stop_reason STRING ,
provider_id INT64 ,
visit_occurrence_id INT64 ,
visit_detail_id INT64 ,
condition_source_value STRING ,
condition_source_concept_id INT64 ,
condition_status_source_value STRING ,
condition_status_concept_id INT64
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table measurement
(
measurement_id INT64 not null ,
person_id INT64 not null ,
measurement_concept_id INT64 not null ,
measurement_DATE DATE not null ,
measurement_DATETIME DATETIME ,
measurement_time STRING ,
measurement_type_concept_id INT64 not null ,
operator_concept_id INT64 ,
value_as_number FLOAT64 ,
value_as_concept_id INT64 ,
unit_concept_id INT64 ,
range_low FLOAT64 ,
range_high FLOAT64 ,
provider_id INT64 ,
visit_occurrence_id INT64 ,
visit_detail_id INT64 ,
measurement_source_value STRING ,
measurement_source_concept_id INT64 ,
unit_source_value STRING ,
value_source_value STRING
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table note
(
note_id INT64 not null ,
person_id INT64 not null ,
note_DATE DATE not null ,
note_DATETIME DATETIME ,
note_type_concept_id INT64 not null ,
note_class_concept_id INT64 not null ,
note_title STRING ,
note_text STRING ,
encoding_concept_id INT64 not null ,
language_concept_id INT64 not null ,
provider_id INT64 ,
visit_occurrence_id INT64 ,
visit_detail_id INT64 ,
note_source_value STRING
)
;
create table note_nlp
(
note_nlp_id INT64 ,
note_id INT64 ,
section_concept_id INT64 ,
snippet STRING ,
"offset" STRING ,
lexical_variant STRING not null ,
note_nlp_concept_id INT64 ,
note_nlp_source_concept_id INT64 ,
nlp_system STRING ,
nlp_DATE DATE not null ,
nlp_DATETIME DATETIME ,
term_exists STRING ,
term_temporal STRING ,
term_modifiers STRING
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table observation
(
observation_id INT64 not null ,
person_id INT64 not null ,
observation_concept_id INT64 not null ,
observation_DATE DATE not null ,
observation_DATETIME DATETIME ,
observation_type_concept_id INT64 not null ,
value_as_number FLOAT64 ,
value_as_string STRING ,
value_as_concept_id INT64 ,
qualifier_concept_id INT64 ,
unit_concept_id INT64 ,
provider_id INT64 ,
visit_occurrence_id INT64 ,
visit_detail_id INT64 ,
observation_source_value STRING ,
observation_source_concept_id INT64 ,
unit_source_value STRING ,
qualifier_source_value STRING
)
;
create table fact_relationship
(
domain_concept_id_1 INT64 not null ,
fact_id_1 INT64 not null ,
domain_concept_id_2 INT64 not null ,
fact_id_2 INT64 not null ,
relationship_concept_id INT64 not null
)
;
create table location
(
location_id INT64 not null ,
address_1 STRING ,
address_2 STRING ,
city STRING ,
state STRING ,
zip STRING ,
county STRING ,
location_source_value STRING
)
;
create table care_site
(
care_site_id INT64 not null ,
care_site_name STRING ,
place_of_service_concept_id INT64 ,
location_id INT64 ,
care_site_source_value STRING ,
place_of_service_source_value STRING
)
;
create table provider
(
provider_id INT64 not null ,
provider_name STRING ,
npi STRING ,
dea STRING ,
specialty_concept_id INT64 ,
care_site_id INT64 ,
year_of_birth INT64 ,
gender_concept_id INT64 ,
provider_source_value STRING ,
specialty_source_value STRING ,
specialty_source_concept_id INT64 ,
gender_source_value STRING ,
gender_source_concept_id INT64
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table payer_plan_period
(
payer_plan_period_id INT64 not null ,
person_id INT64 not null ,
payer_plan_period_start_DATE DATE not null ,
payer_plan_period_end_DATE DATE not null ,
payer_concept_id INT64 ,
payer_source_value STRING ,
payer_source_concept_id INT64 ,
plan_concept_id INT64 ,
plan_source_value STRING ,
plan_source_concept_id INT64 ,
sponsor_concept_id INT64 ,
sponsor_source_value STRING ,
sponsor_source_concept_id INT64 ,
family_source_value STRING ,
stop_reason_concept_id INT64 ,
stop_reason_source_value STRING ,
stop_reason_source_concept_id INT64
)
;
create table cost
(
cost_id INT64 not null ,
cost_event_id INT64 not null ,
cost_domain_id STRING not null ,
cost_type_concept_id INT64 not null ,
currency_concept_id INT64 ,
total_charge FLOAT64 ,
total_cost FLOAT64 ,
total_paid FLOAT64 ,
paid_by_payer FLOAT64 ,
paid_by_patient FLOAT64 ,
paid_patient_copay FLOAT64 ,
paid_patient_coinsurance FLOAT64 ,
paid_patient_deductible FLOAT64 ,
paid_by_primary FLOAT64 ,
paid_ingredient_cost FLOAT64 ,
paid_dispensing_fee FLOAT64 ,
payer_plan_period_id INT64 ,
amount_allowed FLOAT64 ,
revenue_code_concept_id INT64 ,
revenue_code_source_value STRING ,
drg_concept_id INT64 ,
drg_source_value STRING
)
;
--HINT DISTRIBUTE_ON_KEY(subject_id)
create table cohort
(
cohort_definition_id INT64 not null ,
subject_id INT64 not null ,
cohort_start_DATE DATE not null ,
cohort_end_DATE DATE not null
)
;
--HINT DISTRIBUTE_ON_KEY(subject_id)
create table cohort_attribute
(
cohort_definition_id INT64 not null ,
subject_id INT64 not null ,
cohort_start_DATE DATE not null ,
cohort_end_DATE DATE not null ,
attribute_definition_id INT64 not null ,
value_as_number FLOAT64 ,
value_as_concept_id INT64
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table drug_era
(
drug_era_id INT64 not null ,
person_id INT64 not null ,
drug_concept_id INT64 not null ,
drug_era_start_DATE DATE not null ,
drug_era_end_DATE DATE not null ,
drug_exposure_count INT64 ,
gap_days INT64
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table dose_era
(
dose_era_id INT64 not null ,
person_id INT64 not null ,
drug_concept_id INT64 not null ,
unit_concept_id INT64 not null ,
dose_value FLOAT64 not null ,
dose_era_start_DATE DATE not null ,
dose_era_end_DATE DATE not null
)
;
--HINT DISTRIBUTE_ON_KEY(person_id)
create table condition_era
(
condition_era_id INT64 not null ,
person_id INT64 not null ,
condition_concept_id INT64 not null ,
condition_era_start_DATE DATE not null ,
condition_era_end_DATE DATE not null ,
condition_occurrence_count INT64
)
;