Skip to content

Systemic Lupus Erythematosus

Tiffany J. Callahan edited this page Jul 19, 2021 · 16 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

"The algorithm with the highest PPV at 95% in the training set and 91% in the validation set was 3 or more counts of the SLE ICD-9 code, ANA positive (‡1:40), and ever use of both disease-modifying antirheumatic drugs and steroids, while excluding individuals with systemic sclerosis and dermatomyositis ICD-9 codes" PMID:27390187.

Case Criteria:

  • dx_case_inclusion_criteria_1: Presence of at least 3 ICD-9CM codes for systemic lupus erythematosus (ICD9 codes - criteria # 1)
  • mx_case_inclusion_criteria_1: Presence of positive antinuclear antibody (‡1:40) (measurement strings - criteria # 2)
  • rx_case_inclusion_criteria_1: Presence of antimalarials, systemic corticosteroids, or disease-modifying antirheumatic drugs (drug strings - criteria # 3)
  • dx_case_exclusion_criteria_1: NOT presence of diagnosis of certain codes (ICD9 codes - criteria # 4)

Control Criteria:

  • No control group will be defined


Cohort Logic Table

COHORT CHUNK LOGICAL OPERATOR
CASE dx_case_inclusion_criteria_1 AND
CASE mx_case_inclusion_criteria_1 AND
CASE rx_case_inclusion_criteria_1 AND
CASE dx_case_exclusion_criteria_1 ---

Covariates

  • No covariates provided

SQL Query

WITH dx_case_inclusion_criteria_1 AS (
SELECT co.person_id, cohort.standard_code_set AS code_set
  FROM 
   {database}.condition_occurrence co, 
   {database}.SYSTEMICLUPUSERYTHEMATOSUS_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, code_set
 HAVING
   COUNT(DISTINCT co.condition_concept_id) >= 3
),

mx_case_inclusion_criteria_1 AS (
SELECT m.person_id, cohort.standard_code_set AS code_set 
FROM 
  {database}.measurement m, 
  {database}.SYSTEMICLUPUSERYTHEMATOSUS_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}
  AND m.value_as_number > m.range_high
GROUP BY 
  m.person_id, cohort.standard_code_set
HAVING 
  COUNT(DISTINCT m.measurement_concept_id) >= 1
),

rx_case_inclusion_criteria_1 AS (
SELECT de.person_id, cohort.standard_code_set AS code_set 
FROM 
  {database}.drug_exposure de, 
  {database}.SYSTEMICLUPUSERYTHEMATOSUS_COHORT_VARS cohort  
WHERE 
  de.drug_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 
  de.person_id, cohort.standard_code_set
HAVING 
  COUNT(DISTINCT de.drug_concept_id) >= 1
),

dx_case_exclusion_criteria_1 AS (
  SELECT co.person_id, cohort.standard_code_set AS code_set
    FROM 
     {database}.condition_occurrence co, 
     {database}.SYSTEMICLUPUSERYTHEMATOSUS_COHORT_VARS cohort 
   WHERE co.condition_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
      co.person_id, code_set
   HAVING
     COUNT(DISTINCT co.condition_concept_id) >= 1
)

SELECT * FROM
  (SELECT person_id, code_set, 'SYSTEMICLUPUSERYTHEMATOSUS_CASE' AS cohort_type
    FROM (
    (SELECT person_id, code_set FROM dx_case_inclusion_criteria_1
      INTERSECT DISTINCT 
     SELECT person_id, code_set FROM mx_case_inclusion_criteria_1
      INTERSECT DISTINCT 
     SELECT person_id, code_set FROM rx_case_inclusion_criteria_1)
      EXCEPT DISTINCT
     SELECT person_id, code_set FROM dx_case_exclusion_criteria_1)
   GROUP BY person_id, code_set, cohort_type)
;

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