Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DT-683-684] Use death table for is deceased attribute and group dempgraphic #652

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,84 +33,51 @@ SELECT p.person_id,
CASE
WHEN svd.sample_name IS NULL THEN 0 ELSE 1 END has_structural_variant_data,
CASE
WHEN ehr.person_id IS NULL THEN 0 ELSE 1 END has_ehr_data
WHEN ehr.person_id IS NULL THEN 0 ELSE 1 END has_ehr_data,
CASE
WHEN d.death_date is null THEN 0 ELSE 1 END is_deceased
FROM `${omopDataset}.person` p

LEFT JOIN `${omopDataset}.concept` gc
ON gc.concept_id = p.gender_concept_id

LEFT JOIN `${omopDataset}.concept` rc
ON rc.concept_id = p.race_concept_id

LEFT JOIN `${omopDataset}.concept` ec
ON ec.concept_id = p.ethnicity_concept_id

LEFT JOIN `${omopDataset}.concept` sc
ON sc.concept_id = p.sex_at_birth_concept_id

LEFT JOIN
(SELECT DISTINCT person_id
FROM `${omopDataset}.activity_summary`) asum ON (p.person_id = asum.person_id)
LEFT JOIN
(SELECT DISTINCT person_id
FROM `${omopDataset}.heart_rate_minute_level`) hrml ON (p.person_id = hrml.person_id)
LEFT JOIN
(SELECT DISTINCT person_id
FROM `${omopDataset}.heart_rate_summary`) hrs ON (p.person_id = hrs.person_id)
LEFT JOIN
(SELECT DISTINCT person_id
FROM `${omopDataset}.steps_intraday`) si ON (p.person_id = si.person_id)
LEFT JOIN
(SELECT DISTINCT person_id
FROM `${omopDataset}.sleep_daily_summary`) sds ON (p.person_id = sds.person_id)
LEFT JOIN
(SELECT DISTINCT person_id
FROM `${omopDataset}.sleep_level`) sl ON (p.person_id = sl.person_id)
LEFT JOIN
(SELECT DISTINCT sample_name
FROM `${omopDataset}.prep_wgs_metadata`) wgv ON (CAST(p.person_id AS STRING) = wgv.sample_name)
LEFT JOIN
(SELECT DISTINCT sample_name
FROM `${omopDataset}.prep_microarray_metadata`) mad ON (CAST(p.person_id AS STRING) = mad.sample_name)
LEFT JOIN
(SELECT DISTINCT sample_name
FROM `${omopDataset}.prep_longreads_metadata`) lrwgv ON (CAST(p.person_id AS STRING) = lrwgv.sample_name)
LEFT JOIN
(SELECT DISTINCT sample_name
FROM `${omopDataset}.prep_structural_variants_metadata`) svd ON (CAST(p.person_id AS STRING) = svd.sample_name)
LEFT JOIN
(SELECT DISTINCT person_id
FROM`${omopDataset}.measurement` as a
LEFT JOIN`${omopDataset}.measurement_ext` as b on a.measurement_id = b.measurement_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id
FROM`${omopDataset}.condition_occurrence` as a
LEFT JOIN`${omopDataset}.condition_occurrence_ext` as b on a.condition_occurrence_id = b.condition_occurrence_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id
FROM`${omopDataset}.device_exposure` as a
LEFT JOIN`${omopDataset}.device_exposure_ext` as b on a.device_exposure_id = b.device_exposure_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id
FROM`${omopDataset}.drug_exposure` as a
LEFT JOIN`${omopDataset}.drug_exposure_ext` as b on a.drug_exposure_id = b.drug_exposure_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id
FROM`${omopDataset}.observation` as a
LEFT JOIN`${omopDataset}.observation_ext` as b on a.observation_id = b.observation_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id
FROM`${omopDataset}.procedure_occurrence` as a
LEFT JOIN`${omopDataset}.procedure_occurrence_ext` as b on a.procedure_occurrence_id = b.procedure_occurrence_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id
FROM`${omopDataset}.visit_occurrence` as a
LEFT JOIN`${omopDataset}.visit_occurrence_ext` as b on a.visit_occurrence_id = b.visit_occurrence_id
WHERE lower(b.src_id) like 'ehr site%'
) ehr ON (p.person_id = ehr.person_id)
LEFT JOIN `${omopDataset}.concept` gc ON gc.concept_id = p.gender_concept_id
LEFT JOIN `${omopDataset}.concept` rc ON rc.concept_id = p.race_concept_id
LEFT JOIN `${omopDataset}.concept` ec ON ec.concept_id = p.ethnicity_concept_id
LEFT JOIN `${omopDataset}.concept` sc ON sc.concept_id = p.sex_at_birth_concept_id
LEFT JOIN (SELECT DISTINCT person_id FROM `${omopDataset}.activity_summary`) asum ON (p.person_id = asum.person_id)
LEFT JOIN (SELECT DISTINCT person_id FROM `${omopDataset}.heart_rate_minute_level`) hrml ON (p.person_id = hrml.person_id)
LEFT JOIN (SELECT DISTINCT person_id FROM `${omopDataset}.heart_rate_summary`) hrs ON (p.person_id = hrs.person_id)
LEFT JOIN (SELECT DISTINCT person_id FROM `${omopDataset}.steps_intraday`) si ON (p.person_id = si.person_id)
LEFT JOIN (SELECT DISTINCT person_id FROM `${omopDataset}.sleep_daily_summary`) sds ON (p.person_id = sds.person_id)
LEFT JOIN (SELECT DISTINCT person_id FROM `${omopDataset}.sleep_level`) sl ON (p.person_id = sl.person_id)
LEFT JOIN (SELECT DISTINCT sample_name FROM `${omopDataset}.prep_wgs_metadata`) wgv ON (CAST(p.person_id AS STRING) = wgv.sample_name)
LEFT JOIN (SELECT DISTINCT sample_name FROM `${omopDataset}.prep_microarray_metadata`) mad ON (CAST(p.person_id AS STRING) = mad.sample_name)
LEFT JOIN (SELECT DISTINCT sample_name FROM `${omopDataset}.prep_longreads_metadata`) lrwgv ON (CAST(p.person_id AS STRING) = lrwgv.sample_name)
LEFT JOIN (SELECT DISTINCT sample_name FROM `${omopDataset}.prep_structural_variants_metadata`) svd ON (CAST(p.person_id AS STRING) = svd.sample_name)
LEFT JOIN (SELECT DISTINCT person_id FROM`${omopDataset}.measurement` as a
LEFT JOIN`${omopDataset}.measurement_ext` as b on a.measurement_id = b.measurement_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id FROM`${omopDataset}.condition_occurrence` as a
LEFT JOIN`${omopDataset}.condition_occurrence_ext` as b on a.condition_occurrence_id = b.condition_occurrence_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id FROM`${omopDataset}.device_exposure` as a
LEFT JOIN`${omopDataset}.device_exposure_ext` as b on a.device_exposure_id = b.device_exposure_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id FROM`${omopDataset}.drug_exposure` as a
LEFT JOIN`${omopDataset}.drug_exposure_ext` as b on a.drug_exposure_id = b.drug_exposure_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id FROM`${omopDataset}.observation` as a
LEFT JOIN`${omopDataset}.observation_ext` as b on a.observation_id = b.observation_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id FROM`${omopDataset}.procedure_occurrence` as a
LEFT JOIN`${omopDataset}.procedure_occurrence_ext` as b on a.procedure_occurrence_id = b.procedure_occurrence_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id FROM`${omopDataset}.visit_occurrence` as a
LEFT JOIN`${omopDataset}.visit_occurrence_ext` as b on a.visit_occurrence_id = b.visit_occurrence_id
WHERE lower(b.src_id) like 'ehr site%'
) ehr ON (p.person_id = ehr.person_id)
LEFT JOIN (SELECT person_id, max(death_date) as death_date FROM `${omopDataset}.death` GROUP BY person_id) d
ON (p.person_id = d.person_id)
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@
{ "name": "has_whole_genome_variant", "dataType": "INT64", "isComputeDisplayHint": true },
{ "name": "has_lr_whole_genome_variant", "dataType": "INT64", "isComputeDisplayHint": true },
{ "name": "has_structural_variant_data", "dataType": "INT64", "isComputeDisplayHint": true },
{ "name": "has_ehr_data", "dataType": "INT64", "isComputeDisplayHint": true }
{ "name": "has_ehr_data", "dataType": "INT64", "isComputeDisplayHint": true },
{ "name": "is_deceased", "dataType": "INT64", "isComputeDisplayHint": true }
],
"idAttribute": "id",
"optimizeGroupByAttributes": [ "gender", "race", "age" ]
"optimizeGroupByAttributes": [ "gender", "race", "age", "ethnicity" ]
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,72 +25,47 @@ SELECT p.person_id,
WHEN asum.person_id IS NULL AND hrml.person_id IS NULL AND hrs.person_id IS NULL
AND si.person_id IS NULL AND sds.person_id IS NULL AND sl.person_id IS NULL THEN 0 ELSE 1 END has_fitbit,
CASE
WHEN ehr.person_id IS NULL THEN 0 ELSE 1 END has_ehr_data
WHEN ehr.person_id IS NULL THEN 0 ELSE 1 END has_ehr_data,
CASE
WHEN d.death_date is null THEN 0 ELSE 1 END is_deceased
FROM `${omopDataset}.person` p

LEFT JOIN `${omopDataset}.concept` gc
ON gc.concept_id = p.gender_concept_id

LEFT JOIN `${omopDataset}.concept` rc
ON rc.concept_id = p.race_concept_id

LEFT JOIN `${omopDataset}.concept` ec
ON ec.concept_id = p.ethnicity_concept_id

LEFT JOIN `${omopDataset}.concept` sc
ON sc.concept_id = p.sex_at_birth_concept_id

LEFT JOIN
(SELECT DISTINCT person_id
FROM `${omopDataset}.activity_summary`) asum ON (p.person_id = asum.person_id)
LEFT JOIN
(SELECT DISTINCT person_id
FROM `${omopDataset}.heart_rate_minute_level`) hrml ON (p.person_id = hrml.person_id)
LEFT JOIN
(SELECT DISTINCT person_id
FROM `${omopDataset}.heart_rate_summary`) hrs ON (p.person_id = hrs.person_id)
LEFT JOIN
(SELECT DISTINCT person_id
FROM `${omopDataset}.steps_intraday`) si ON (p.person_id = si.person_id)
LEFT JOIN
(SELECT DISTINCT person_id
FROM `${omopDataset}.sleep_daily_summary`) sds ON (p.person_id = sds.person_id)
LEFT JOIN
(SELECT DISTINCT person_id
FROM `${omopDataset}.sleep_level`) sl ON (p.person_id = sl.person_id)
LEFT JOIN
(SELECT DISTINCT person_id
FROM`${omopDataset}.measurement` as a
LEFT JOIN`${omopDataset}.measurement_ext` as b on a.measurement_id = b.measurement_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id
FROM`${omopDataset}.condition_occurrence` as a
LEFT JOIN`${omopDataset}.condition_occurrence_ext` as b on a.condition_occurrence_id = b.condition_occurrence_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id
FROM`${omopDataset}.device_exposure` as a
LEFT JOIN`${omopDataset}.device_exposure_ext` as b on a.device_exposure_id = b.device_exposure_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id
FROM`${omopDataset}.drug_exposure` as a
LEFT JOIN`${omopDataset}.drug_exposure_ext` as b on a.drug_exposure_id = b.drug_exposure_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id
FROM`${omopDataset}.observation` as a
LEFT JOIN`${omopDataset}.observation_ext` as b on a.observation_id = b.observation_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id
FROM`${omopDataset}.procedure_occurrence` as a
LEFT JOIN`${omopDataset}.procedure_occurrence_ext` as b on a.procedure_occurrence_id = b.procedure_occurrence_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id
FROM`${omopDataset}.visit_occurrence` as a
LEFT JOIN`${omopDataset}.visit_occurrence_ext` as b on a.visit_occurrence_id = b.visit_occurrence_id
WHERE lower(b.src_id) like 'ehr site%'
) ehr ON (p.person_id = ehr.person_id)
LEFT JOIN `${omopDataset}.concept` gc ON gc.concept_id = p.gender_concept_id
LEFT JOIN `${omopDataset}.concept` rc ON rc.concept_id = p.race_concept_id
LEFT JOIN `${omopDataset}.concept` ec ON ec.concept_id = p.ethnicity_concept_id
LEFT JOIN `${omopDataset}.concept` sc ON sc.concept_id = p.sex_at_birth_concept_id
LEFT JOIN (SELECT DISTINCT person_id FROM `${omopDataset}.activity_summary`) asum ON (p.person_id = asum.person_id)
LEFT JOIN (SELECT DISTINCT person_id FROM `${omopDataset}.heart_rate_minute_level`) hrml ON (p.person_id = hrml.person_id)
LEFT JOIN (SELECT DISTINCT person_id FROM `${omopDataset}.heart_rate_summary`) hrs ON (p.person_id = hrs.person_id)
LEFT JOIN (SELECT DISTINCT person_id FROM `${omopDataset}.steps_intraday`) si ON (p.person_id = si.person_id)
LEFT JOIN (SELECT DISTINCT person_id FROM `${omopDataset}.sleep_daily_summary`) sds ON (p.person_id = sds.person_id)
LEFT JOIN (SELECT DISTINCT person_id FROM `${omopDataset}.sleep_level`) sl ON (p.person_id = sl.person_id)
LEFT JOIN (SELECT DISTINCT person_id FROM`${omopDataset}.measurement` as a
LEFT JOIN`${omopDataset}.measurement_ext` as b on a.measurement_id = b.measurement_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id FROM`${omopDataset}.condition_occurrence` as a
LEFT JOIN`${omopDataset}.condition_occurrence_ext` as b on a.condition_occurrence_id = b.condition_occurrence_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id FROM`${omopDataset}.device_exposure` as a
LEFT JOIN`${omopDataset}.device_exposure_ext` as b on a.device_exposure_id = b.device_exposure_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id FROM`${omopDataset}.drug_exposure` as a
LEFT JOIN`${omopDataset}.drug_exposure_ext` as b on a.drug_exposure_id = b.drug_exposure_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id FROM`${omopDataset}.observation` as a
LEFT JOIN`${omopDataset}.observation_ext` as b on a.observation_id = b.observation_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id FROM`${omopDataset}.procedure_occurrence` as a
LEFT JOIN`${omopDataset}.procedure_occurrence_ext` as b on a.procedure_occurrence_id = b.procedure_occurrence_id
WHERE lower(b.src_id) like 'ehr site%'
UNION DISTINCT
SELECT DISTINCT person_id FROM`${omopDataset}.visit_occurrence` as a
LEFT JOIN`${omopDataset}.visit_occurrence_ext` as b on a.visit_occurrence_id = b.visit_occurrence_id
WHERE lower(b.src_id) like 'ehr site%'
) ehr ON (p.person_id = ehr.person_id)
LEFT JOIN (SELECT person_id, max(death_date) as death_date FROM `${omopDataset}.death` GROUP BY person_id) d
ON (p.person_id = d.person_id)
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@
{ "name": "has_fitbit_sleep_daily_summary", "dataType": "INT64", "isComputeDisplayHint": true },
{ "name": "has_fitbit_sleep_level", "dataType": "INT64", "isComputeDisplayHint": true },
{ "name": "has_fitbit", "dataType": "INT64", "isComputeDisplayHint": true },
{ "name": "has_ehr_data", "dataType": "INT64", "isComputeDisplayHint": true }
{ "name": "has_ehr_data", "dataType": "INT64", "isComputeDisplayHint": true },
{ "name": "is_deceased", "dataType": "INT64", "isComputeDisplayHint": true }
],
"idAttribute": "id",
"optimizeGroupByAttributes": [ "gender", "race", "age" ]
"optimizeGroupByAttributes": [ "gender", "race", "age", "ethnicity" ]
}
44 changes: 26 additions & 18 deletions underlay/src/main/resources/config/underlay/aouSC2023Q3R1/ui.json
Original file line number Diff line number Diff line change
Expand Up @@ -601,6 +601,13 @@
"start_date_group_by_count"
]
},
{
"type": "attribute",
"id": "tanagra-has-ehr-data",
"title": "Has EHR Data",
"category": "Domains",
"attribute": "has_ehr_data"
},
{
"type": "classification",
"id": "tanagra-cpt4",
Expand Down Expand Up @@ -785,45 +792,46 @@
},
{
"type": "attribute",
"id": "tanagra-has-ehr-data",
"title": "Has EHR Data",
"category": "Program data",
"attribute": "has_ehr_data"
"id": "tanagra-age",
"title": "Age",
"category": "Demographics",
"attribute": "age"
},
{
"type": "attribute",
"id": "tanagra-is-deceased",
"title": "Deceased",
"category": "Demographics",
"attribute": "is_deceased"
},
{

"type": "attribute",
"id": "tanagra-ethnicity",
"title": "Ethnicity",
"category": "Program data",
"category": "Demographics",
"attribute": "ethnicity"
},
{
"type": "attribute",
"id": "tanagra-gender",
"title": "Gender identity",
"category": "Program data",
"category": "Demographics",
"attribute": "gender"
},
{
"type": "attribute",
"id": "tanagra-sex-at-birth",
"title": "Sex At Birth",
"category": "Program data",
"attribute": "sex_at_birth"
},
{
"type": "attribute",
"id": "tanagra-race",
"title": "Race",
"category": "Program data",
"category": "Demographics",
"attribute": "race"
},
{
"type": "attribute",
"id": "tanagra-age",
"title": "Age",
"category": "Program data",
"attribute": "age"
"id": "tanagra-sex-at-birth",
"title": "Sex At Birth",
"category": "Demographics",
"attribute": "sex_at_birth"
},
{
"type": "attribute",
Expand Down
Loading