Skip to content

Peanut Allergy

Tiffany J. Callahan edited this page Jul 19, 2021 · 14 revisions

Documentation


See the SQL query to identify the cohort below and note that the mapping between the bolded words at the beginning of each of the case criteria and the named query chunks

Cohort Criteria

Case Criteria:
CASE TYPE 1

CASE TYPE 2


Control Criteria:

  • No control group defined


Cohort Logic Table

COHORT CHUNK LOGICAL OPERATOR
CASE TYPE 1 all_case_inclusion_criteria_1 AND
CASE TYPE 1 mx_case_inclusion_criteria_1 OR
CASE TYPE 1 px_inclusion_criteria_1 ---
CASE TYPE 2 all_case_inclusion_criteria_1 AND
CASE TYPE 2 px_inclusion_criteria_2 OR
CASE TYPE 2 px_inclusion_criteria_3 OR
CASE TYPE 2 px_inclusion_criteria_4 ---

Covariates

  • No covariates specified

SQL Query

WITH all_case_inclusion_criteria_1 AS (
SELECT person_id, {code_set_group} AS code_set FROM
(SELECT co.person_id
FROM 
  {database}.condition_occurrence co, 
  {database}.PEANUTALLERGY_COHORT_VARS cohort 
WHERE 
  co.condition_concept_id = CAST(cohort.standard_concept_id AS int64) 
  AND cohort.phenotype_definition_number = 1 
  AND cohort.standard_code_set = {code_set_group}
GROUP BY 
  co.person_id, cohort.standard_code_set
HAVING 
  COUNT(DISTINCT co.condition_concept_id) >= 1
UNION DISTINCT
SELECT de.person_id
FROM 
  {database}.drug_exposure de, 
  {database}.PEANUTALLERGY_COHORT_VARS cohort 
WHERE 
  de.drug_concept_id = CAST(cohort.standard_concept_id AS int64) 
  AND cohort.phenotype_definition_number = 1 
  AND cohort.standard_code_set = {code_set_group}
GROUP BY 
  de.person_id, cohort.standard_code_set
HAVING 
  COUNT(DISTINCT de.drug_concept_id) >= 1
UNION DISTINCT
SELECT m.person_id
FROM 
  {database}.measurement m, 
  {database}.PEANUTALLERGY_COHORT_VARS cohort 
WHERE 
  m.measurement_concept_id = CAST(cohort.standard_concept_id AS int64) 
  AND cohort.phenotype_definition_number = 1 
  AND cohort.standard_code_set = {code_set_group}
GROUP BY 
  m.person_id, cohort.standard_code_set
HAVING 
  COUNT(DISTINCT m.measurement_concept_id) >= 1
UNION DISTINCT
SELECT o.person_id
FROM 
  {database}.observation o, 
  {database}.PEANUTALLERGY_COHORT_VARS cohort 
WHERE 
  o.observation_concept_id = CAST(cohort.standard_concept_id AS int64) 
  AND cohort.phenotype_definition_number = 1 
  AND cohort.standard_code_set = {code_set_group}
GROUP BY 
  o.person_id, cohort.standard_code_set
HAVING 
  COUNT(DISTINCT o.observation_concept_id) >= 1
UNION DISTINCT
SELECT pr.person_id
FROM 
  {database}.procedure_occurrence pr, 
  {database}.PEANUTALLERGY_COHORT_VARS cohort 
WHERE 
  pr.procedure_concept_id = CAST(cohort.standard_concept_id AS int64) 
  AND cohort.phenotype_definition_number = 1 
  AND cohort.standard_code_set = {code_set_group}
GROUP BY 
  pr.person_id, cohort.standard_code_set
HAVING 
  COUNT(DISTINCT pr.procedure_concept_id) >= 1
)),

mx_case_inclusion_criteria_1 AS (
SELECT m.person_id, cohort.standard_code_set AS code_set
FROM 
  {database}.measurement m,
  {database}.PEANUTALLERGY_COHORT_VARS cohort
WHERE 
  m.measurement_concept_id = CAST(cohort.standard_concept_id AS int64)
  AND cohort.phenotype_definition_number = 2
  AND cohort.standard_code_set = {code_set_group}
GROUP BY m.person_id, cohort.standard_code_set
HAVING 
  COUNT(DISTINCT m.measurement_concept_id) >= 1
),

px_case_inclusion_criteria_1 AS (
SELECT pr.person_id, cohort.standard_code_set AS code_set
FROM 
  {database}.procedure_occurrence pr,
  {database}.PEANUTALLERGY_COHORT_VARS cohort
WHERE 
  pr.procedure_concept_id = CAST(cohort.standard_concept_id AS int64)
  AND cohort.phenotype_definition_number = 3
  AND cohort.standard_code_set = {code_set_group}
GROUP BY pr.person_id, cohort.standard_code_set
HAVING 
  COUNT(DISTINCT pr.procedure_concept_id) >= 1
),

px_case_inclusion_criteria_2 AS (
SELECT pr.person_id, cohort.standard_code_set AS code_set
FROM 
  {database}.procedure_occurrence pr,
  {database}.PEANUTALLERGY_COHORT_VARS cohort
WHERE 
  pr.procedure_concept_id = CAST(cohort.standard_concept_id AS int64)
  AND cohort.phenotype_definition_number = 4
  AND cohort.standard_code_set = {code_set_group}
GROUP BY pr.person_id, cohort.standard_code_set
HAVING 
  COUNT(DISTINCT pr.procedure_concept_id) >= 1
),

px_case_inclusion_criteria_3 AS (
SELECT pr.person_id, cohort.standard_code_set AS code_set
FROM 
  {database}.procedure_occurrence pr,
  {database}.PEANUTALLERGY_COHORT_VARS cohort
WHERE 
  pr.procedure_concept_id = CAST(cohort.standard_concept_id AS int64)
  AND cohort.phenotype_definition_number = 5
  AND cohort.standard_code_set = {code_set_group}
GROUP BY pr.person_id, cohort.standard_code_set
HAVING 
  COUNT(DISTINCT pr.procedure_concept_id) >= 1
),

px_case_inclusion_criteria_4 AS (
SELECT pr.person_id, cohort.standard_code_set AS code_set
FROM 
  {database}.procedure_occurrence pr,
  {database}.PEANUTALLERGY_COHORT_VARS cohort
WHERE 
  pr.procedure_concept_id = CAST(cohort.standard_concept_id AS int64)
  AND cohort.phenotype_definition_number = 6
  AND cohort.standard_code_set = {code_set_group}
GROUP BY pr.person_id, cohort.standard_code_set
HAVING 
  COUNT(DISTINCT pr.procedure_concept_id) >= 1
)

SELECT * FROM
  (SELECT person_id, code_set, 'PEANUTALLERGY_CASE_TYPE1' AS cohort_type
    FROM (
    SELECT person_id, code_set FROM all_case_inclusion_criteria_1
      INTERSECT DISTINCT 
     (SELECT person_id, code_set FROM mx_case_inclusion_criteria_1
      UNION DISTINCT
      SELECT person_id, code_set FROM px_case_inclusion_criteria_1)
   GROUP BY person_id, code_set, cohort_type))

  UNION ALL

  (SELECT person_id, code_set, 'PEANUTALLERGY_CASE_TYPE2' AS cohort_type
    FROM (
     SELECT person_id, code_set FROM all_case_inclusion_criteria_1
      INTERSECT DISTINCT 
    (SELECT person_id, code_set FROM px_case_inclusion_criteria_2
      UNION DISTINCT
     SELECT person_id, code_set FROM px_case_inclusion_criteria_3
      UNION DISTINCT
     SELECT person_id, code_set FROM px_case_inclusion_criteria_4))
   GROUP BY person_id, code_set, cohort_type)
;

This query can can also be accessed via a GitHub Gist here